Eric Blake wrote: > On 06/21/2011 08:21 AM, Jim Meyering wrote: >> I suppose I should make them consistent, but it really doesn't matter, >> since each is invoked via "$(SHELL) test_name". >> Back when scripts were invoked via ./test_name it used to matter. > > You are right that when invoked by 'make check', it doesn't matter, > thanks to our use of $(SHELL). But the tests seem independently useful > - if they have a chance of running in isolation without having any of > the 'make check' TESTS_ENVIRONMENT, then they should probably be all > executable so that someone could do 'cd tests && ./test-foo' rather than > 'make -C tests check TESTS=test-foo' to rerun just a single test.
I do that rarely, and don't recommend it, because it requires manually defining srcdir, but I agree it's worthwhile, so I've done the following. Thanks! >From 0b07a1844274113033c06e556ece760b689bc588 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Tue, 21 Jun 2011 17:45:11 +0200 Subject: [PATCH] tests: ensure that each test script is executable This adds a rule run at "make check" time to ensure that test scripts are consistently executable. This change also makes each of the existing TESTS executable. * tests/Makefile.am (check_executable_TESTS): New rule. (check): Depend on it. * tests/{all_scripts}: chmod 755. Prompted by a report from Eric Blake. --- tests/Makefile.am | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) mode change 100644 => 100755 tests/backref mode change 100644 => 100755 tests/backref-multibyte-slow mode change 100644 => 100755 tests/backref-word mode change 100644 => 100755 tests/bogus-wctob mode change 100644 => 100755 tests/bre mode change 100644 => 100755 tests/case-fold-backref mode change 100644 => 100755 tests/case-fold-char-class mode change 100644 => 100755 tests/case-fold-char-range mode change 100644 => 100755 tests/case-fold-char-type mode change 100644 => 100755 tests/char-class-multibyte mode change 100644 => 100755 tests/dfaexec-multibyte mode change 100644 => 100755 tests/equiv-classes mode change 100644 => 100755 tests/ere mode change 100644 => 100755 tests/euc-mb mode change 100644 => 100755 tests/fedora mode change 100644 => 100755 tests/fgrep-infloop mode change 100644 => 100755 tests/file mode change 100644 => 100755 tests/grep-dev-null mode change 100644 => 100755 tests/grep-dir mode change 100644 => 100755 tests/high-bit-range mode change 100644 => 100755 tests/ignore-mmap mode change 100644 => 100755 tests/include-exclude mode change 100644 => 100755 tests/inconsistent-range mode change 100644 => 100755 tests/khadafy mode change 100644 => 100755 tests/options mode change 100644 => 100755 tests/pcre mode change 100644 => 100755 tests/prefix-of-multibyte mode change 100644 => 100755 tests/reversed-range-endpoints mode change 100644 => 100755 tests/sjis-mb mode change 100644 => 100755 tests/spencer1 mode change 100644 => 100755 tests/status mode change 100644 => 100755 tests/unibyte-bracket-expr mode change 100644 => 100755 tests/warn-char-classes mode change 100644 => 100755 tests/word-delim-multibyte mode change 100644 => 100755 tests/word-multi-file mode change 100644 => 100755 tests/yesno diff --git a/tests/Makefile.am b/tests/Makefile.am index 6829d30..a3a0f33 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -129,3 +129,14 @@ TESTS_ENVIRONMENT = \ ; $(SHELL) 9>&2 VERBOSE = yes + +check: check_executable_TESTS +.PHONY: check_executable_TESTS +check_executable_TESTS: Makefile + $(AM_V_GEN)fail=0; \ + cd $(srcdir) && for i in $(TESTS); do \ + test -x $$i || { fail=1; echo $$i >&2; }; \ + done; \ + test $$fail = 1 \ + && { echo the above test scripts are not executable >&2; exit 1; } \ + || : diff --git a/tests/backref b/tests/backref old mode 100644 new mode 100755 diff --git a/tests/backref-multibyte-slow b/tests/backref-multibyte-slow old mode 100644 new mode 100755 diff --git a/tests/backref-word b/tests/backref-word old mode 100644 new mode 100755 diff --git a/tests/bogus-wctob b/tests/bogus-wctob old mode 100644 new mode 100755 diff --git a/tests/bre b/tests/bre old mode 100644 new mode 100755 diff --git a/tests/case-fold-backref b/tests/case-fold-backref old mode 100644 new mode 100755 diff --git a/tests/case-fold-char-class b/tests/case-fold-char-class old mode 100644 new mode 100755 diff --git a/tests/case-fold-char-range b/tests/case-fold-char-range old mode 100644 new mode 100755 diff --git a/tests/case-fold-char-type b/tests/case-fold-char-type old mode 100644 new mode 100755 diff --git a/tests/char-class-multibyte b/tests/char-class-multibyte old mode 100644 new mode 100755 diff --git a/tests/dfaexec-multibyte b/tests/dfaexec-multibyte old mode 100644 new mode 100755 diff --git a/tests/equiv-classes b/tests/equiv-classes old mode 100644 new mode 100755 diff --git a/tests/ere b/tests/ere old mode 100644 new mode 100755 diff --git a/tests/euc-mb b/tests/euc-mb old mode 100644 new mode 100755 diff --git a/tests/fedora b/tests/fedora old mode 100644 new mode 100755 diff --git a/tests/fgrep-infloop b/tests/fgrep-infloop old mode 100644 new mode 100755 diff --git a/tests/file b/tests/file old mode 100644 new mode 100755 diff --git a/tests/grep-dev-null b/tests/grep-dev-null old mode 100644 new mode 100755 diff --git a/tests/grep-dir b/tests/grep-dir old mode 100644 new mode 100755 diff --git a/tests/high-bit-range b/tests/high-bit-range old mode 100644 new mode 100755 diff --git a/tests/ignore-mmap b/tests/ignore-mmap old mode 100644 new mode 100755 diff --git a/tests/include-exclude b/tests/include-exclude old mode 100644 new mode 100755 diff --git a/tests/inconsistent-range b/tests/inconsistent-range old mode 100644 new mode 100755 diff --git a/tests/khadafy b/tests/khadafy old mode 100644 new mode 100755 diff --git a/tests/options b/tests/options old mode 100644 new mode 100755 diff --git a/tests/pcre b/tests/pcre old mode 100644 new mode 100755 diff --git a/tests/prefix-of-multibyte b/tests/prefix-of-multibyte old mode 100644 new mode 100755 diff --git a/tests/reversed-range-endpoints b/tests/reversed-range-endpoints old mode 100644 new mode 100755 diff --git a/tests/sjis-mb b/tests/sjis-mb old mode 100644 new mode 100755 diff --git a/tests/spencer1 b/tests/spencer1 old mode 100644 new mode 100755 diff --git a/tests/status b/tests/status old mode 100644 new mode 100755 diff --git a/tests/unibyte-bracket-expr b/tests/unibyte-bracket-expr old mode 100644 new mode 100755 diff --git a/tests/warn-char-classes b/tests/warn-char-classes old mode 100644 new mode 100755 diff --git a/tests/word-delim-multibyte b/tests/word-delim-multibyte old mode 100644 new mode 100755 diff --git a/tests/word-multi-file b/tests/word-multi-file old mode 100644 new mode 100755 diff --git a/tests/yesno b/tests/yesno old mode 100644 new mode 100755 -- 1.7.6.rc2.295.gb63f3
