run-tests: warn about symlinks to non hg scripts
If you symlink /usr/bin/true to /something/hg and try to run
--with-hg=/something/hg, run-tests will end up running /usr/bin/hg,
not /usr/bin/true.
--- a/tests/run-tests.py Mon Feb 08 18:29:17 2016 +0900
+++ b/tests/run-tests.py Mon Feb 08 22:50:19 2016 +0000
@@ -285,7 +285,7 @@
options.pure = True
if options.with_hg:
- options.with_hg = os.path.expanduser(options.with_hg)
+ options.with_hg = os.path.realpath(os.path.expanduser(options.with_hg))
if not (os.path.isfile(options.with_hg) and
os.access(options.with_hg, os.X_OK)):
parser.error('--with-hg must specify an executable hg script')
--- a/tests/test-run-tests.t Mon Feb 08 18:29:17 2016 +0900
+++ b/tests/test-run-tests.t Mon Feb 08 22:50:19 2016 +0000
@@ -21,6 +21,27 @@
> run-tests.py --with-hg=`which hg` "$@"
> }
+error paths
+
+#if symlink
+ $ ln -s `which true` hg
+ $ run-tests.py --with-hg=./hg
+ warning: --with-hg should specify an hg script
+
+ # Ran 0 tests, 0 skipped, 0 warned, 0 failed.
+ $ rm hg
+#endif
+
+#if execbit
+ $ touch hg
+ $ run-tests.py --with-hg=./hg
+ Usage: run-tests.py [options] [tests]
+
+ run-tests.py: error: --with-hg must specify an executable hg script
+ [2]
+ $ rm hg
+#endif
+
a succesful test
=======================