From: Thomas Schwinge <tho...@schwinge.name> Flesh out what ``notmuch restore --accumulate'' is supposed to do. Its tests are currently XFAILed; the functionality will be added in another patch.
Also generally enhance the dump-restore testsuite, and make it more failure-proof. --- test/dump-restore | 77 ++++++++++++++++++++++++++++++++++++++++++----------- test/test-lib.sh | 3 +- 2 files changed, 63 insertions(+), 17 deletions(-) diff --git a/test/dump-restore b/test/dump-restore index a4de370..d253756 100755 --- a/test/dump-restore +++ b/test/dump-restore @@ -4,21 +4,66 @@ test_description="\"notmuch dump\" and \"notmuch restore\"" add_email_corpus -test_expect_success "Dumping all tags" "generate_message && -notmuch new && -notmuch dump dump.expected" - -test_begin_subtest "Clearing all tags" -sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected -notmuch restore clear.expected -notmuch dump clear.actual -test_expect_equal "$(< clear.actual)" "$(< clear.expected)" - -test_begin_subtest "Restoring original tags" -notmuch restore dump.expected -notmuch dump dump.actual -test_expect_equal "$(< dump.actual)" "$(< dump.expected)" - -test_expect_success "Restore with nothing to do" "notmuch restore dump.expected" +test_expect_success 'Dumping all tags' \ + 'generate_message && + notmuch new && + notmuch dump dump.expected' + +# This is rather arbitrary: it matches some of the email corpus' messages, but +# not all of them. +search_term=from:worth + +test_expect_success 'Dumping all tags to stdout' \ + 'notmuch tag +ABC +DEF -- $search_term && + notmuch dump > dump-ABC_DEF.expected && + ! cmp dump.expected dump-ABC_DEF.expected' + +test_expect_success 'Clearing all tags' \ + 'sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected && + notmuch restore clear.expected && + notmuch dump clear.actual && + test_cmp clear.expected clear.actual' + +# Missing notmuch restore --accumulate. +test_subtest_known_broken +test_expect_success 'Accumulate original tags' \ + 'notmuch tag +ABC +DEF -- $search_term && + notmuch restore --accumulate < dump.expected && + notmuch dump dump.actual && + test_cmp dump-ABC_DEF.expected dump.actual' + +test_expect_success 'Restoring original tags' \ + 'notmuch restore dump.expected && + notmuch dump dump.actual && + test_cmp dump.expected dump.actual' + +test_expect_success 'Restore with nothing to do' \ + 'notmuch restore < dump.expected && + notmuch dump > dump.actual && + test_cmp dump.expected dump.actual' + +# Missing notmuch restore --accumulate. +test_subtest_known_broken +test_expect_success 'Restore with nothing to do, II' \ + 'notmuch restore --accumulate dump.expected && + notmuch dump dump.actual && + test_cmp dump.expected dump.actual' + +# Missing notmuch restore --accumulate. +test_subtest_known_broken +test_expect_success 'Restore with nothing to do, III' \ + 'notmuch restore --accumulate < clear.expected && + notmuch dump dump.actual && + test_cmp dump.expected dump.actual' + +# notmuch restore currently only considers the first argument. +test_subtest_known_broken +test_expect_success 'Invalid restore invocation' \ + 'test_must_fail notmuch restore dump.expected another_one' + +# The follwing test already succeeds due to notmuch restore currently only +# considering the first argument. +test_expect_success 'Invalid restore invocation, II' \ + 'test_must_fail notmuch restore --accumulate dump.expected another_one' test_done diff --git a/test/test-lib.sh b/test/test-lib.sh index f8df6a5..f524ebf 100755 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -462,6 +462,7 @@ test_expect_equal () fi } +# Like test_expect_equal, but takes two filenames. test_expect_equal_file () { exec 1>&6 2>&7 # Restore stdout and stderr @@ -724,7 +725,7 @@ test_external_without_stderr () { fi } -# This is not among top-level (test_expect_success | test_expect_failure) +# This is not among top-level (test_expect_success) # but is a prefix that can be used in the test script, like: # # test_expect_success 'complain and die' ' -- tg: (f63d605..) t/restore-accumulate-test (depends on: master) _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch