notmuch new &&
notmuch dump > dump.expected'
+# The use of from:cworth is rather arbitrary: it matches some of the
+# email corpus' messages, but not all of them.
+
+test_expect_success 'Dumping all tags II' \
+ 'notmuch tag +ABC +DEF -- from:cworth &&
+ 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'
+test_subtest_known_broken # missing --accumuluate
+test_expect_success 'Accumulate original tags' \
+ 'notmuch tag +ABC +DEF -- from:cworth &&
+ 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 &&
notmuch dump > dump.actual &&
test_cmp dump.expected dump.actual'
+test_subtest_known_broken # missing --accumuluate
+test_expect_success 'Restore with nothing to do, II' \
+ 'notmuch restore --accumulate dump.expected &&
+ notmuch dump > dump.actual &&
+ test_cmp dump.expected dump.actual'
+
+test_subtest_known_broken # missing --accumuluate
+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' \