mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
test: Tool to build DB with specific version and features
This will let us test basic version and feature handling.
This commit is contained in:
parent
8363c90531
commit
d06adc52e0
3 changed files with 40 additions and 0 deletions
1
test/.gitignore
vendored
1
test/.gitignore
vendored
|
@ -5,5 +5,6 @@ parse-time
|
||||||
random-corpus
|
random-corpus
|
||||||
smtp-dummy
|
smtp-dummy
|
||||||
symbol-test
|
symbol-test
|
||||||
|
make-db-version
|
||||||
test-results
|
test-results
|
||||||
tmp.*
|
tmp.*
|
||||||
|
|
|
@ -35,6 +35,9 @@ $(dir)/symbol-test: $(dir)/symbol-test.o lib/$(LINKER_NAME)
|
||||||
$(dir)/parse-time: $(dir)/parse-time.o parse-time-string/parse-time-string.o
|
$(dir)/parse-time: $(dir)/parse-time.o parse-time-string/parse-time-string.o
|
||||||
$(call quiet,CC) $^ -o $@
|
$(call quiet,CC) $^ -o $@
|
||||||
|
|
||||||
|
$(dir)/make-db-version: $(dir)/make-db-version.o
|
||||||
|
$(call quiet,CXX) $^ -o $@ $(XAPIAN_LDFLAGS)
|
||||||
|
|
||||||
.PHONY: test check
|
.PHONY: test check
|
||||||
|
|
||||||
test_main_srcs=$(dir)/arg-test.c \
|
test_main_srcs=$(dir)/arg-test.c \
|
||||||
|
@ -43,6 +46,7 @@ test_main_srcs=$(dir)/arg-test.c \
|
||||||
$(dir)/parse-time.c \
|
$(dir)/parse-time.c \
|
||||||
$(dir)/smtp-dummy.c \
|
$(dir)/smtp-dummy.c \
|
||||||
$(dir)/symbol-test.cc \
|
$(dir)/symbol-test.cc \
|
||||||
|
$(dir)/make-db-version.cc \
|
||||||
|
|
||||||
test_srcs=$(test_main_srcs) $(dir)/database-test.c
|
test_srcs=$(test_main_srcs) $(dir)/database-test.c
|
||||||
|
|
||||||
|
|
35
test/make-db-version.cc
Normal file
35
test/make-db-version.cc
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/* Create an empty notmuch database with a specific version and
|
||||||
|
* features. */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <xapian.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (argc != 4) {
|
||||||
|
fprintf (stderr, "Usage: %s mailpath version features\n", argv[0]);
|
||||||
|
exit (2);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string nmpath (argv[1]);
|
||||||
|
nmpath += "/.notmuch";
|
||||||
|
if (mkdir (nmpath.c_str (), 0777) < 0) {
|
||||||
|
perror (("failed to create " + nmpath).c_str ());
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Xapian::WritableDatabase db (
|
||||||
|
nmpath + "/xapian", Xapian::DB_CREATE_OR_OPEN);
|
||||||
|
db.set_metadata ("version", argv[2]);
|
||||||
|
db.set_metadata ("features", argv[3]);
|
||||||
|
db.commit ();
|
||||||
|
} catch (const Xapian::Error &e) {
|
||||||
|
fprintf (stderr, "%s\n", e.get_description ().c_str ());
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue