Re: [PATCH v2] t6026: ensure that long-running script really is

2 messages, 2 authors, 2016-11-11 · open the first message on its own page

Re: [PATCH v2] t6026: ensure that long-running script really is

From: Junio C Hamano <hidden>
Date: 2016-11-11 20:48:40

Johannes Sixt [off-list ref] writes:
Good point. Here is an updated version.
Unfortunately, I already took the version before this one and
started my integration cycle today.  I'll wiggle this in; it
essentially is about adding a big comment to explain what is going
on and then moving the when-finished down below it, right?

Thanks.
quoted hunk
If the pid file is not created, the kill command receives no
arguments. Here on Linux, it reports failure in this case.
This is good. I could have said

   test_when_finished "kill \"\$(cat sleep.pid)\""

but that is a bit too much quoting for my taste when it is
not strictly necessary.

 t/t6026-merge-attr.sh | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/t/t6026-merge-attr.sh b/t/t6026-merge-attr.sh
index 7a6e33e673..8f9b48a493 100755
--- a/t/t6026-merge-attr.sh
+++ b/t/t6026-merge-attr.sh
@@ -183,16 +183,24 @@ test_expect_success 'up-to-date merge without common ancestor' '
 
 test_expect_success 'custom merge does not lock index' '
 	git reset --hard anchor &&
-	write_script sleep-one-second.sh <<-\EOF &&
-		sleep 1 &
+	write_script sleep-an-hour.sh <<-\EOF &&
+		sleep 3600 &
 		echo $! >sleep.pid
 	EOF
-	test_when_finished "kill \$(cat sleep.pid)" &&
 
 	test_write_lines >.gitattributes \
-		"* merge=ours" "text merge=sleep-one-second" &&
+		"* merge=ours" "text merge=sleep-an-hour" &&
 	test_config merge.ours.driver true &&
-	test_config merge.sleep-one-second.driver ./sleep-one-second.sh &&
+	test_config merge.sleep-an-hour.driver ./sleep-an-hour.sh &&
+
+	# We are testing that the custom merge driver does not block
+	# index.lock on Windows due to an inherited file handle.
+	# To ensure that the backgrounded process ran sufficiently
+	# long (and has been started in the first place), we do not
+	# ignore the result of the kill command.
+	# By packaging the command in test_when_finished, we get both
+	# the correctness check and the clean-up.
+	test_when_finished "kill \$(cat sleep.pid)" &&
 	git merge master
 '

Re: [PATCH v2] t6026: ensure that long-running script really is

From: Johannes Sixt <hidden>
Date: 2016-11-11 20:55:04

Am 11.11.2016 um 21:48 schrieb Junio C Hamano:
Johannes Sixt [off-list ref] writes:
quoted
Good point. Here is an updated version.
Unfortunately, I already took the version before this one and
started my integration cycle today.  I'll wiggle this in; it
essentially is about adding a big comment to explain what is going
on and then moving the when-finished down below it, right?
Correct.

Thank you very much!
-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help