Merge branch 'cc/no-gitk-build-dependency'
[gitweb.git] / t / t0000-basic.sh
index 384b0aee47ba1606435be6e48f8a49c4db881598..cefe33d6d1976e4017569507a6f76ad89c83e4ff 100755 (executable)
@@ -18,16 +18,6 @@ swapping compression and hashing order, the person who is making the
 modification *should* take notice and update the test vectors here.
 '
 
-################################################################
-# It appears that people try to run tests without building...
-
-../git >/dev/null
-if test $? != 1
-then
-       echo >&2 'You do not seem to have built git yet.'
-       exit 1
-fi
-
 . ./test-lib.sh
 
 ################################################################
@@ -145,13 +135,31 @@ test_expect_success 'pretend we have fixed a known breakage' "
        test_done
        EOF
        check_sub_test_lib_test passing-todo <<-\\EOF
-       > ok 1 - pretend we have fixed a known breakage # TODO known breakage
-       > # fixed 1 known breakage(s)
-       > # passed all 1 test(s)
+       > ok 1 - pretend we have fixed a known breakage # TODO known breakage vanished
+       > # 1 known breakage(s) vanished; please update test(s)
        > 1..1
        EOF
 "
 
+test_expect_success 'pretend we have fixed one of two known breakages (run in sub test-lib)' "
+       run_sub_test_lib_test partially-passing-todos \
+               '2 TODO tests, one passing' <<-\\EOF &&
+       test_expect_failure 'pretend we have a known breakage' 'false'
+       test_expect_success 'pretend we have a passing test' 'true'
+       test_expect_failure 'pretend we have fixed another known breakage' 'true'
+       test_done
+       EOF
+       check_sub_test_lib_test partially-passing-todos <<-\\EOF
+       > not ok 1 - pretend we have a known breakage # TODO known breakage
+       > ok 2 - pretend we have a passing test
+       > ok 3 - pretend we have fixed another known breakage # TODO known breakage vanished
+       > # 1 known breakage(s) vanished; please update test(s)
+       > # still have 1 known breakage(s)
+       > # passed all remaining 1 test(s)
+       > 1..3
+       EOF
+"
+
 test_expect_success 'pretend we have a pass, fail, and known breakage' "
        test_must_fail run_sub_test_lib_test \
                mixed-results1 'mixed results #1' <<-\\EOF &&
@@ -199,10 +207,10 @@ test_expect_success 'pretend we have a mix of all possible results' "
        > #     false
        > not ok 8 - pretend we have a known breakage # TODO known breakage
        > not ok 9 - pretend we have a known breakage # TODO known breakage
-       > ok 10 - pretend we have fixed a known breakage # TODO known breakage
-       > # fixed 1 known breakage(s)
+       > ok 10 - pretend we have fixed a known breakage # TODO known breakage vanished
+       > # 1 known breakage(s) vanished; please update test(s)
        > # still have 2 known breakage(s)
-       > # failed 3 among remaining 8 test(s)
+       > # failed 3 among remaining 7 test(s)
        > 1..10
        EOF
 "
@@ -244,6 +252,38 @@ then
        exit 1
 fi
 
+test_lazy_prereq LAZY_TRUE true
+havetrue=no
+test_expect_success LAZY_TRUE 'test runs if lazy prereq is satisfied' '
+       havetrue=yes
+'
+donthavetrue=yes
+test_expect_success !LAZY_TRUE 'missing lazy prereqs skip tests' '
+       donthavetrue=no
+'
+
+if test "$havetrue$donthavetrue" != yesyes
+then
+       say 'bug in test framework: lazy prerequisites do not work'
+       exit 1
+fi
+
+test_lazy_prereq LAZY_FALSE false
+nothavefalse=no
+test_expect_success !LAZY_FALSE 'negative lazy prereqs checked' '
+       nothavefalse=yes
+'
+havefalse=yes
+test_expect_success LAZY_FALSE 'missing negative lazy prereqs will skip' '
+       havefalse=no
+'
+
+if test "$nothavefalse$havefalse" != yesyes
+then
+       say 'bug in test framework: negative lazy prerequisites do not work'
+       exit 1
+fi
+
 clean=no
 test_expect_success 'tests clean up after themselves' '
        test_when_finished clean=yes