FreeBSD's `wc -l` includes some white space in front of the number. Instead, we add a test_expect_equal_num() to test-lib.sh, which ensures we do a proper numeric comparision, and in a portable way. --- test/count | 8 ++++---- test/test-lib.sh | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/test/count b/test/count index 300b171..902c7c6 100755 --- a/test/count +++ b/test/count @@ -7,22 +7,22 @@ add_email_corpus SEARCH="\"*\"" test_begin_subtest "message count is the default for notmuch count" -test_expect_equal \ +test_expect_equal_num \ "`notmuch search --output=messages ${SEARCH} | wc -l`" \ "`notmuch count ${SEARCH}`" test_begin_subtest "message count with --output=messages" -test_expect_equal \ +test_expect_equal_num \ "`notmuch search --output=messages ${SEARCH} | wc -l`" \ "`notmuch count --output=messages ${SEARCH}`" test_begin_subtest "thread count with --output=threads" -test_expect_equal \ +test_expect_equal_num \ "`notmuch search --output=threads ${SEARCH} | wc -l`" \ "`notmuch count --output=threads ${SEARCH}`" test_begin_subtest "thread count is the default for notmuch search" -test_expect_equal \ +test_expect_equal_num \ "`notmuch search ${SEARCH} | wc -l`" \ "`notmuch count --output=threads ${SEARCH}`" diff --git a/test/test-lib.sh b/test/test-lib.sh index da792b7..2ac92f7 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -512,6 +512,28 @@ test_expect_equal_file () fi } +# Like test_expect_equal, but does a numeric comparision instead of a +# string comparision +test_expect_equal_num () { + exec 1>&6 2>&7 # Restore stdout and stderr + inside_subtest= + 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 "$test_subtest_name" + then + if test "$output" -eq "$expected" + then + test_ok_ "$test_subtest_name" + else + test_failure_ "$test_subtest_name" "$output != $expected" + fi + fi +} + test_emacs_expect_t () { test "$#" = 2 && { prereq=$1; shift; } || prereq= test "$#" = 1 || -- 1.7.10.2