$NOTMUCH new > /dev/null
}
+tests=0
+test_failures=0
+
pass_if_equal ()
{
output=$1
expected=$2
+ tests=$((tests + 1))
+
if [ "$output" = "$expected" ]; then
echo " PASS"
else
echo " FAIL"
echo " Expected output: $expected"
echo " Actual output: $output"
+ test_failures=$((test_failures + 1))
fi
}
printf " Dumping all tags...\t\t\t\t"
$NOTMUCH dump dump.expected
-echo " PASS"
+pass_if_equal "$?" "0"
printf " Clearing all tags...\t\t\t\t"
sed -e 's/(\([^(]*\))$/()/' < dump.expected > clear.expected
$NOTMUCH restore clear.expected
$NOTMUCH dump clear.actual
-if diff clear.expected clear.actual > /dev/null; then
- echo " PASS"
-else
- echo " FAIL"
- echo " Expected output: See file clear.expected"
- echo " Actual output: See file clear.actual"
-fi
+pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
printf " Restoring original tags...\t\t\t"
$NOTMUCH restore dump.expected
$NOTMUCH dump dump.actual
-if diff dump.expected dump.actual > /dev/null; then
- echo " PASS"
-else
- echo " FAIL"
- echo " Expected output: See file dump.expected"
- echo " Actual output: See file dump.actual"
-fi
+pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
printf " Restore with nothing to do...\t\t\t"
$NOTMUCH restore dump.expected
-echo " PASS"
+pass_if_equal "$?" "0"
printf "\nTesting threading when messages received out of order:\n"
printf " Adding initial child message...\t\t"
output=$($NOTMUCH search foo | notmuch_search_sanitize)
pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
-cat <<EOF
-Notmuch test suite complete.
+echo ""
+echo "Notmuch test suite complete."
-Intermediate state can be examined in:
- ${TEST_DIR}
-EOF
+if [ "$test_failures" = "0" ]; then
+ echo "All $tests tests passed."
+ rm -rf ${TEST_DIR}
+else
+ echo "$test_failures/$tests tests failed. The failures can be investigated in:"
+ echo "${TEST_DIR}"
+fi
+
+echo ""
+
+exit $test_failures