git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCHv3 02/11] git-p4: test debug macro

From
Luke Diamand <luke@diamand.org>
Date
Dec 18, 2011, 17:10 UTC
Message-ID
<4EEE1E8B.2060808@diamand.org>
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.
Show 58 quoted lines
>
> 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
> +}
> +
Previous: Pete WyckoffNext: Junio C Hamano
Message 9 of 20 in “git-p4: asciidoc documentation and fixes”
  1. 00/11 git-p4: asciidoc documentation and fixesPete Wyckoff, Dec 17, 2011
  2. 01/11 git-p4: introduce asciidoc documentationPete Wyckoff, Dec 17, 2011
  3. 02/11 git-p4: test debug macroPete Wyckoff, Dec 17, 2011
  4. Luke DiamandDec 17, 2011
  5. 02/11 git-p4: test debug macroPete Wyckoff, Dec 18, 2011
  6. Jonathan NiederDec 18, 2011
  7. Pete WyckoffDec 18, 2011
  8. 02/11 git-p4: test debug macroPete Wyckoff, Dec 18, 2011
  9. Luke DiamandDec 18, 2011
  10. Junio C HamanoDec 18, 2011
  11. Pete WyckoffDec 20, 2011
  12. 03/11 git-p4: clone does not use --git-dirPete Wyckoff, Dec 17, 2011
  13. 04/11 git-p4: test cloning with two dirs, clarify docPete Wyckoff, Dec 17, 2011
  14. 05/11 git-p4: document and test clone --branchPete Wyckoff, Dec 17, 2011
  15. 06/11 git-p4: honor --changesfile option and testPete Wyckoff, Dec 17, 2011
  16. 07/11 git-p4: document and test --import-localPete Wyckoff, Dec 17, 2011
  17. 08/11 git-p4: test --max-changesPete Wyckoff, Dec 17, 2011
  18. 09/11 git-p4: test --keep-pathPete Wyckoff, Dec 17, 2011
  19. 10/11 git-p4: test and document --use-client-specPete Wyckoff, Dec 17, 2011
  20. 11/11 git-p4: document and test submit optionsPete Wyckoff, Dec 17, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.