tests/hghave: implement #if true / #if false
For unconditionally testing / skipping a section. Useful for testing the test
infrastructure in test-run-tests.t and for debugging/developing tests.
--- a/tests/hghave Fri Jun 08 15:11:05 2012 +0200
+++ b/tests/hghave Fri Jun 08 15:11:05 2012 +0200
@@ -241,6 +241,8 @@
return os.getenv('MSYSTEM')
checks = {
+ "true": (lambda: True, "yak shaving"),
+ "false": (lambda: False, "nail clipper"),
"baz": (has_baz, "GNU Arch baz client"),
"bzr": (has_bzr, "Canonical's Bazaar client"),
"bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"),
--- a/tests/test-run-tests.t Fri Jun 08 15:11:05 2012 +0200
+++ b/tests/test-run-tests.t Fri Jun 08 15:11:05 2012 +0200
@@ -52,9 +52,27 @@
$ echo 'foo (re)'
foo (re)
+testing hghave
+
+ $ "$TESTDIR/hghave" true
+ $ "$TESTDIR/hghave" false
+ skipped: missing feature: nail clipper
+ [1]
+ $ "$TESTDIR/hghave" no-true
+ skipped: system supports yak shaving
+ [1]
+ $ "$TESTDIR/hghave" no-false
+
Conditional sections based on hghave:
-#if fifo no-fifo
+#if true
+ $ echo tested
+ tested
+#else
+ $ echo skipped
+#endif
+
+#if false
$ echo skipped
#else
$ echo tested