threads / patch / 39173

patchFixup test-lint error in git-p4 t9814 test

Subject: [PATCH] Fixup test-lint error in git-p4 t9814 test

## tl;dr

3 messages between Apr 27, 2015 and Apr 27, 2015. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Luke Diamand· Apr 27, 2015, 22:20 UTC · lore

While running the git-p4 tests, I noticed that t9814 has started failing due to the (very ingenious!) chain-lint detection introduced in:

   bb79af9 t/test-lib: introduce --chain-lint option

I think that what's going on is that the chain-lint test is getting itself confused by this test, which is designed to always succeed, regardless of whether the individual sub-commands succeed or not, since it's just setting up a pre-requisite for later use.

I've added an additional set of braces, which makes it clearer to the --chain-lint code what's going on, but I'd be interested to know if this is the right way to fix this.

Thanks, Luke

Luke Diamand (1):
  git-p4: prevent --chain-lint failure
 t/t9814-git-p4-rename.sh | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
-- 
2.3.4.48.g223ab37
Luke Diamand· Apr 27, 2015, 22:20 UTC · re: Luke Diamand · lore

[PATCH] git-p4: prevent --chain-lint failure

t9814 has a test that simply sets up a pre-requisite for another test, and as such, always succeeds. The way it was written doesn't quite work with the test lint checks introduced with the --chain-lint option.

Add an additional layer of {} to prevent the --chain-lint code getting confused.

Signed-off-by: Luke Diamand <luke@diamand.org>
---
 t/t9814-git-p4-rename.sh | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
Show changes to t/t9814-git-p4-rename.sh +9 −7
diff --git a/t/t9814-git-p4-rename.sh b/t/t9814-git-p4-rename.sh
index 99bb71b..14f9dc3 100755
--- a/t/t9814-git-p4-rename.sh
+++ b/t/t9814-git-p4-rename.sh
@@ -227,13 +227,15 @@ test_expect_success 'detect copies' '
 # See if configurables can be set, and in particular if the run.move.allow
 # variable exists, which allows admins to disable the "p4 move" command.
 test_expect_success 'p4 configure command and run.move.allow are available' '
-	p4 configure show run.move.allow >out ; retval=$? &&
-	test $retval = 0 &&
-	{
-		egrep ^run.move.allow: out &&
-		test_set_prereq P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW ||
-		true
-	} || true
+    {
+	    p4 configure show run.move.allow >out ; retval=$? &&
+	    test $retval = 0 &&
+	    {
+		    egrep ^run.move.allow: out &&
+		    test_set_prereq P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW ||
+		    true
+	    } || true
+    }
 '
 
 # If move can be disabled, turn it off and test p4 move handling
-- 
2.3.4.48.g223ab37
Jeff King· Apr 27, 2015, 23:02 UTC · re: Luke Diamand · lore

Re: [PATCH] git-p4: prevent --chain-lint failure

On Mon, Apr 27, 2015 at 11:20:28PM +0100, Luke Diamand wrote:
Show 7 quoted lines
> t9814 has a test that simply sets up a pre-requisite for
> another test, and as such, always succeeds. The way it was
> written doesn't quite work with the test lint checks introduced
> with the --chain-lint option.
> 
> Add an additional layer of {} to prevent the --chain-lint
> code getting confused.

Thanks for looking into this. I tried to fix any existing tests I could, but I missed ones whose prerequisites aren't met on my system.

Using {} is reasonable in general; that's how the fixes in 9ddc5ac (t: wrap complicated expect_code users in a block, 2015-03-20) worked. However, I think your case is somewhat simpler, in that you really just want a big conditional to set a prereq based on whether or not a command succeeds.

Would it make sense to convert this whole thing to just:
  test_lazy_prereq P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW '
	p4 configure show run.move.allow >out &&
	egrep ^run.move.allow: out
  '
?
-Peff

← back to recent threads