public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Luke Diamand <luke@diamand•org>
To: Pete Wyckoff <pw@padd•com>
Cc: Jonathan Nieder <jrnieder@gmail•com>, git@vger•kernel.org
Subject: Re: [PATCHv3 02/11] git-p4: test debug macro
Date: Sun, 18 Dec 2011 17:10:35 +0000	[thread overview]
Message-ID: <4EEE1E8B.2060808@diamand.org> (raw)
In-Reply-To: <20111218140633.GB16487@padd.com>

On 18/12/11 14:06, Pete Wyckoff wrote:
> Call this from a test to have it pause and wait for you to
> investigate.  It prints out its current directory and the
> P4 environment variables.  It waits for ctrl-c before continuing
> the test.

Looks good, ack.

>
> Signed-off-by: Pete Wyckoff<pw@padd•com>
> ---
> jrnieder@gmail•com wrote on Sat, 17 Dec 2011 21:26 -0600:
>> Pete Wyckoff wrote:
>>
>>> +	# 2 is SIGINT, ash/dash does not know symbolic names
>>> +	trap echo 2
>>
>> 'trap "$cmd" INT' works, and it's even in POSIX. ;)
>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#trap
>
> Nicer to use the constant.  It works on both.  Unfortunately
> ash has other issues regarding handling ctrl-c from subprocesses.
> Point this out in the comments.
>
>   t/lib-git-p4.sh |   31 +++++++++++++++++++++++++++++++
>   1 files changed, 31 insertions(+), 0 deletions(-)
>
> diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
> index a870f9a..4c30960 100644
> --- a/t/lib-git-p4.sh
> +++ b/t/lib-git-p4.sh
> @@ -72,3 +72,34 @@ kill_p4d() {
>   cleanup_git() {
>   	rm -rf "$git"
>   }
> +
> +#
> +# This is a handy tool when developing or debugging tests.  Use
> +# it inline to pause the script, perhaps like this:
> +#
> +#	"$GITP4" clone ...&&
> +#	(
> +#		cd "$git"&&
> +#		debug&&
> +#		git log --oneline>lines&&
> +#		...
> +#
> +# Go investigate when it pauses, then hit ctrl-c to continue the
> +# test.  The other tests will run, and p4d will be cleaned up nicely.
> +#
> +# Note that the directory is deleted and created for every test run,
> +# so you have to do the "cd" again.
> +#
> +# The continuation feature only works in shells that do not propagate
> +# a child-caught ctrl-c, namely bash.  With ash, the entire test run
> +# will exit on the ctrl-c.
> +#
> +debug() {
> +	echo "*** Debug me, hit ctrl-c when done.  Useful shell commands:"
> +	echo cd \"$(pwd)\"
> +	echo export P4PORT=$P4PORT P4CLIENT=$P4CLIENT
> +	trap "echo" INT
> +	sleep $((3600 * 24 * 30))
> +	trap - INT
> +}
> +

  reply	other threads:[~2011-12-18 17:10 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-17 18:52 [PATCH 00/11] git-p4: asciidoc documentation and fixes Pete Wyckoff
2011-12-17 18:52 ` [PATCH 01/11] git-p4: introduce asciidoc documentation Pete Wyckoff
2011-12-17 18:52 ` [PATCH 02/11] git-p4: test debug macro Pete Wyckoff
2011-12-17 22:43   ` Luke Diamand
2011-12-18  1:36     ` [PATCHv2 " Pete Wyckoff
2011-12-18  3:26       ` Jonathan Nieder
2011-12-18 13:50         ` Pete Wyckoff
2011-12-18 14:06         ` [PATCHv3 " Pete Wyckoff
2011-12-18 17:10           ` Luke Diamand [this message]
2011-12-18 21:48           ` Junio C Hamano
2011-12-20  1:35             ` Pete Wyckoff
2011-12-17 18:52 ` [PATCH 03/11] git-p4: clone does not use --git-dir Pete Wyckoff
2011-12-17 18:52 ` [PATCH 04/11] git-p4: test cloning with two dirs, clarify doc Pete Wyckoff
2011-12-17 18:52 ` [PATCH 05/11] git-p4: document and test clone --branch Pete Wyckoff
2011-12-17 18:52 ` [PATCH 06/11] git-p4: honor --changesfile option and test Pete Wyckoff
2011-12-17 18:52 ` [PATCH 07/11] git-p4: document and test --import-local Pete Wyckoff
2011-12-17 18:52 ` [PATCH 08/11] git-p4: test --max-changes Pete Wyckoff
2011-12-17 18:52 ` [PATCH 09/11] git-p4: test --keep-path Pete Wyckoff
2011-12-17 18:52 ` [PATCH 10/11] git-p4: test and document --use-client-spec Pete Wyckoff
2011-12-17 18:52 ` [PATCH 11/11] git-p4: document and test submit options Pete Wyckoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EEE1E8B.2060808@diamand.org \
    --to=luke@diamand$(echo .)org \
    --cc=git@vger$(echo .)kernel.org \
    --cc=jrnieder@gmail$(echo .)com \
    --cc=pw@padd$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox