summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-08-17 14:07:48 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-08-17 14:07:48 -0700
commit187c80ba93d6c4aa069d7b1bd9dd34f61f9dae2f (patch)
treed6e37eae62a2a76fdf8ba6f8c0ba7ce8ddae147a
parentMerge branch 'sg/reflog-past-root' (diff)
parentt/Makefile: ensure that paths are valid on platforms we care (diff)
downloadtgif-187c80ba93d6c4aa069d7b1bd9dd34f61f9dae2f.tar.xz
Merge branch 'js/test-lint-pathname'
The "t/" hierarchy is prone to get an unusual pathname; "make test" has been taught to make sure they do not contain paths that cannot be checked out on Windows (and the mechanism can be reusable to catch pathnames that are not portable to other platforms as need arises). * js/test-lint-pathname: t/Makefile: ensure that paths are valid on platforms we care
-rw-r--r--t/Makefile11
1 files changed, 10 insertions, 1 deletions
diff --git a/t/Makefile b/t/Makefile
index 18e2b28b26..d613935f14 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -52,7 +52,8 @@ clean-except-prove-cache:
clean: clean-except-prove-cache
$(RM) .prove
-test-lint: test-lint-duplicates test-lint-executable test-lint-shell-syntax
+test-lint: test-lint-duplicates test-lint-executable test-lint-shell-syntax \
+ test-lint-filenames
test-lint-duplicates:
@dups=`echo $(T) | tr ' ' '\n' | sed 's/-.*//' | sort | uniq -d` && \
@@ -67,6 +68,14 @@ test-lint-executable:
test-lint-shell-syntax:
@'$(PERL_PATH_SQ)' check-non-portable-shell.pl $(T) $(THELPERS)
+test-lint-filenames:
+ @# We do *not* pass a glob to ls-files but use grep instead, to catch
+ @# non-ASCII characters (which are quoted within double-quotes)
+ @bad="$$(git -c core.quotepath=true ls-files 2>/dev/null | \
+ grep '["*:<>?\\|]')"; \
+ test -z "$$bad" || { \
+ echo >&2 "non-portable file name(s): $$bad"; exit 1; }
+
aggregate-results-and-cleanup: $(T)
$(MAKE) aggregate-results
$(MAKE) clean