I tried running make in contrib/remote-helpers and it died with:
:: make
make -e -C ../../t test
rm -f -r test-results
duplicate test numbers: /Users/jszakmeister/sources/git
make[1]: *** [test-lint-duplicates] Error 1
make: *** [test] Error 2
The path shown is not quite correct. I have the sources extracted to
/Users/jszakmeister/sources/git-1.8.1.1. It appears that the Makefile
in contrib/remote-helpers is exporting T, which is causing the
duplicate test detection to fail.
Thought you'd like to know!
-John
On Tue, Jan 22, 2013 at 12:49:31AM -0500, John Szakmeister wrote:
I tried running make in contrib/remote-helpers and it died with:
:: make
make -e -C ../../t test
rm -f -r test-results
duplicate test numbers: /Users/jszakmeister/sources/git
make[1]: *** [test-lint-duplicates] Error 1
make: *** [test] Error 2
The path shown is not quite correct. I have the sources extracted to
/Users/jszakmeister/sources/git-1.8.1.1. It appears that the Makefile
in contrib/remote-helpers is exporting T, which is causing the
duplicate test detection to fail.
It has to set T, because that is how t/Makefile knows what the set of
tests is. The problem is that test-lint-duplicates does not understand
absolute pathnames, as its regex is too simplistic:
sed 's/-.*//' | sort | uniq -d
So it finds whatever is before the first "-", which would be the test
number in "t0000-basic.sh" or similar, and then looks for duplicates.
We can make the regex more strict to handle full paths, like:
perl -lne 'print $1 if m{(?:^|/)(t\d{4})-}'
but that still would not help, as the tests in remote-helpers do not
follow the tXXXX convention. So I think even running
test-lint-duplicates on them is nonsensical.
Maybe something like this would be more appropriate, though it kills off
all test-lint checks, not just test-lint-duplicates:
diff --git a/contrib/remote-helpers/Makefile b/contrib/remote-helpers/Makefile
index 9a76575..9c18ed8 100644
--- a/contrib/remote-helpers/Makefile
+++ b/contrib/remote-helpers/Makefile
@@ -3,6 +3,7 @@ export PATH := $(CURDIR):$(PATH)
export T := $(addprefix $(CURDIR)/,$(TESTS))
export MAKE := $(MAKE) -e
export PATH := $(CURDIR):$(PATH)
+export TEST_LINT :=
test:
$(MAKE) -C ../../t $@
On 22.01.13 20:41, Jeff King wrote:
On Tue, Jan 22, 2013 at 12:49:31AM -0500, John Szakmeister wrote:
quoted
I tried running make in contrib/remote-helpers and it died with:
:: make
make -e -C ../../t test
rm -f -r test-results
duplicate test numbers: /Users/jszakmeister/sources/git
make[1]: *** [test-lint-duplicates] Error 1
make: *** [test] Error 2
The path shown is not quite correct. I have the sources extracted to
/Users/jszakmeister/sources/git-1.8.1.1. It appears that the Makefile
in contrib/remote-helpers is exporting T, which is causing the
duplicate test detection to fail.
It has to set T, because that is how t/Makefile knows what the set of
tests is. The problem is that test-lint-duplicates does not understand
absolute pathnames, as its regex is too simplistic:
sed 's/-.*//' | sort | uniq -d
So it finds whatever is before the first "-", which would be the test
number in "t0000-basic.sh" or similar, and then looks for duplicates.
would it help to filter for numbered tests before sorting like this:
sed 's/-.*//' | grep "[0-9][0-9][0-9][0-9]"| sort | uniq -d