Add tests for the fsck command.
[tinc] / test / commandline.test
index 5e9fb85..ba3d717 100755 (executable)
@@ -1,6 +1,5 @@
 #!/bin/sh
 
-# shellcheck source=testlib.sh
 . ./testlib.sh
 
 echo [STEP] Initialize one node
@@ -29,9 +28,9 @@ tincd foo -D --net foo
 
 echo [STEP] Test tincd command line options that should not work
 
-must_fail tincd foo foo
-must_fail tincd foo --pidfile
-must_fail tincd foo --foo
+expect_code "$EXIT_FAILURE" tincd foo foo
+expect_code "$EXIT_FAILURE" tincd foo --pidfile
+expect_code "$EXIT_FAILURE" tincd foo --foo
 
 echo [STEP] Test tinc command line options that should work
 
@@ -43,7 +42,23 @@ tinc foo --net foo get name
 
 echo [STEP] Test tinc command line options that should not work
 
-must_fail tinc foo -n foo get somethingreallyunknown
-must_fail tinc foo --net
-must_fail tinc foo --net get name
-must_fail tinc foo foo
+expect_code "$EXIT_FAILURE" tinc foo -n foo get somethingreallyunknown
+expect_code "$EXIT_FAILURE" tinc foo --net
+expect_code "$EXIT_FAILURE" tinc foo --net get name
+expect_code "$EXIT_FAILURE" tinc foo foo
+
+# Most of these should fail with ASAN. Some leaks are only detected by Valgrind.
+echo [STEP] Trigger previously known memory leaks
+
+tincd foo -c . -c . --help
+tincd foo -n net -n net --help
+tincd foo -n net -o FakeOpt=42 --help
+tincd foo --logfile=one --logfile=two --help
+tincd foo --pidfile=one --pidfile=two --help
+expect_code "$EXIT_FAILURE" tincd foo -n net -o Compression= --help
+expect_code "$EXIT_FAILURE" tincd foo -c fakedir -n 'n/e\t'
+
+tinc foo -c conf -c conf --help
+tinc foo -n net -n net --help
+tinc foo --pidfile=pid --pidfile=pid --help
+expect_code "$EXIT_FAILURE" tinc foo -c conf -n 'n/e\t'