test: conditionally test compact depending on configured support
authorJani Nikula <jani@nikula.org>
Wed, 12 Mar 2014 17:26:04 +0000 (19:26 +0200)
committerDavid Bremner <david@tethera.net>
Tue, 25 Mar 2014 21:51:06 +0000 (18:51 -0300)
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
test/T020-compact.sh

index ae9db809a1e086f10787a147c7cbfe2c3ade5f32..2b18bdb92af1b43bcbe25dc15fd6f1e66fc935a2 100644 (file)
@@ -35,9 +35,17 @@ $(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)
+       ln -sf /bin/true $@
+else
+       ln -sf /bin/false $@
+endif
+
 .PHONY: test check
 
 TEST_BINARIES=$(dir)/arg-test \
+             $(dir)/have-compact \
              $(dir)/hex-xcode \
              $(dir)/random-corpus \
              $(dir)/parse-time \
index ac174cec7111e91e80f2274a83d56f32ff8620b7..77bb9632cb11ba99f0b691260157a47f119f0265 100755 (executable)
@@ -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"