I still have one machine with old enough Xapian to not have compaction support. Make the tests check for unsupported compact operation when compact is not available. --- test/Makefile.local | 9 +++++++++ test/T020-compact.sh | 11 +++++++++++ 2 files changed, 20 insertions(+)
diff --git a/test/Makefile.local b/test/Makefile.local index 36b1c1b71de0..8befa40dfaa4 100644 --- a/test/Makefile.local +++ b/test/Makefile.local @@ -35,9 +35,18 @@ $(dir)/symbol-test: $(dir)/symbol-test.o lib/$(LINKER_NAME) $(dir)/parse-time: $(dir)/parse-time.o parse-time-string/parse-time-string.o $(call quiet,CC) $^ -o $@ +$(dir)/have-compact: Makefile.config +ifeq ($(HAVE_XAPIAN_COMPACT),1) + echo -n "#!/bin/sh\nexit 0\n" > $@ +else + echo -n "#!/bin/sh\nexit 1\n" > $@ +endif + chmod +x $@ + .PHONY: test check TEST_BINARIES=$(dir)/arg-test \ + $(dir)/have-compact \ $(dir)/hex-xcode \ $(dir)/random-corpus \ $(dir)/parse-time \ diff --git a/test/T020-compact.sh b/test/T020-compact.sh index ac174cec7111..77bb9632cb11 100755 --- a/test/T020-compact.sh +++ b/test/T020-compact.sh @@ -10,6 +10,17 @@ notmuch tag +tag1 \* notmuch tag +tag2 subject:Two notmuch tag -tag1 +tag3 subject:Three +if ! ${TEST_DIRECTORY}/have-compact; then + test_begin_subtest "Compact unsupported: error message" + output=$(notmuch compact --quiet 2>&1) + test_expect_equal "$output" "notmuch was compiled against a xapian version lacking compaction support. +Compaction failed: Unsupported operation" + + test_expect_code 1 "Compact unsupported: status code" "notmuch compact" + + test_done +fi + test_expect_success "Running compact" "notmuch compact --backup=${TEST_DIRECTORY}/xapian.old" test_begin_subtest "Compact preserves database" -- 1.9.0