Thread (18 messages) flat view 18 messages, 3 authors, 2016-06-15

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#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
+}
+
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help