]> git.notmuchmail.org Git - notmuch/commitdiff
test: Add a new test_expect_equal_failure
authorCarl Worth <cworth@cworth.org>
Sat, 23 Oct 2010 00:01:34 +0000 (17:01 -0700)
committerCarl Worth <cworth@cworth.org>
Sat, 23 Oct 2010 00:01:34 +0000 (17:01 -0700)
Which allows us to have a known-broken test that would otherwise use
test_expect_equal.

test/README
test/test-lib.sh

index 1a5b516721fd24d0f4d28c201667c436a41f553f..ebaa3cfd2c732dde689ee6055883dabca54ab598 100644 (file)
@@ -147,6 +147,13 @@ library for your script to use.
    will generate a failure and print the difference of the two
    strings.
 
+ test_expect_equal_failure <output> <expected>
+
+   This works similar to test_expect_equal (see above) but is used to
+   mark a test that demonstrates a known breakage, (that is, the
+   author of the test expectes "output" and "expected" to differ until
+   the breakage is fixed). See test_expect_failure for details.
+
  test_debug <script>
 
    This takes a single argument, <script>, and evaluates it only
index f67fbd1b7c7ebb9e18b99172961363617085d893..6c9c93eb8a63c425f5f6da28df4048a63fdfb784 100644 (file)
@@ -414,6 +414,24 @@ test_expect_equal ()
     fi
 }
 
+test_expect_equal_failure ()
+{
+       test "$#" = 3 && { prereq=$1; shift; } || prereq=
+       test "$#" = 2 ||
+       error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
+
+       output="$1"
+       expected="$2"
+       if ! test_skip "$@"
+       then
+               if [ "$output" = "$expected" ]; then
+                       test_known_broken_ok_ "$test_subtest_name"
+               else
+                       test_known_broken_failure_ "$test_subtest_name"
+               fi
+    fi
+}
+
 NOTMUCH_NEW ()
 {
     notmuch new | grep -v -E -e '^Processed [0-9]*( total)? file|Found [0-9]* total file'