Re: [PATCHv3 02/11] git-p4: test debug macro
From: Luke Diamand <hidden>
Date: 2016-06-15 22:52:40
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.
quoted hunk ↗ jump to hunk
Signed-off-by: Pete Wyckoff<redacted> --- jrnieder@gmail.com wrote on Sat, 17 Dec 2011 21:26 -0600:quoted
Pete Wyckoff wrote:quoted
+ # 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#trapNicer 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 +} +