aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/make-db-version.cc
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@mit.edu>2014-08-25 13:26:01 -0400
committerGravatar David Bremner <david@tethera.net>2014-08-30 10:43:46 -0700
commitd06adc52e03cefe6263aeffa01353ad59d13fb54 (patch)
treec19b129df885664d48af87848953b19e674317aa /test/make-db-version.cc
parent8363c9053152d349022b821a4a343f0ee2ade318 (diff)
test: Tool to build DB with specific version and features
This will let us test basic version and feature handling.
Diffstat (limited to 'test/make-db-version.cc')
-rw-r--r--test/make-db-version.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/make-db-version.cc b/test/make-db-version.cc
new file mode 100644
index 00000000..fa80cac9
--- /dev/null
+++ b/test/make-db-version.cc
@@ -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);
+ }
+}