]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-tdb1-wronghash-fail.c
tdb2: Make TDB1 use the same tdb_hash() wrapper as TDB2
[ccan] / ccan / tdb2 / test / run-tdb1-wronghash-fail.c
index 368835ed7f263a73e0d34769da078b4965cc7c0c..42bc6c02f4dcb36cd456b17491fb9ce932b52a16 100644 (file)
@@ -11,6 +11,20 @@ static void log_fn(struct tdb1_context *tdb, enum tdb_log_level level,
                (*count)++;
 }
 
+static uint64_t jenkins_hashfn(const void *key, size_t len, uint64_t seed,
+                              void *unused)
+{
+       return hashlittle(key, len);
+}
+
+/* the tdb1_old_hash function is "magic" as it automatically makes us test the
+ * tdb1_incompatible_hash as well, so use this wrapper. */
+static uint64_t old_hash(const void *key, size_t len, uint64_t seed,
+                        void *unused)
+{
+       return tdb1_old_hash(key, len, seed, unused);
+}
+
 int main(int argc, char *argv[])
 {
        struct tdb1_context *tdb;
@@ -33,7 +47,7 @@ int main(int argc, char *argv[])
 
        /* Fail to open with different hash. */
        tdb = tdb1_open_ex("run-wronghash-fail.tdb", 0, 0, O_RDWR, 0,
-                         &log_ctx, tdb1_jenkins_hash);
+                         &log_ctx, jenkins_hashfn);
        ok1(!tdb);
        ok1(log_count == 1);
 
@@ -41,7 +55,7 @@ int main(int argc, char *argv[])
        log_count = 0;
        tdb = tdb1_open_ex("run-wronghash-fail.tdb", 0, 0,
                          O_CREAT|O_RDWR|O_TRUNC,
-                         0600, &log_ctx, tdb1_jenkins_hash);
+                         0600, &log_ctx, jenkins_hashfn);
        ok1(tdb);
        ok1(log_count == 0);
        tdb1_close(tdb);
@@ -49,26 +63,26 @@ int main(int argc, char *argv[])
        /* Endian should be no problem. */
        log_count = 0;
        tdb = tdb1_open_ex("test/jenkins-le-hash.tdb1", 0, 0, O_RDWR, 0,
-                         &log_ctx, tdb1_old_hash);
+                         &log_ctx, old_hash);
        ok1(!tdb);
        ok1(log_count == 1);
 
        log_count = 0;
        tdb = tdb1_open_ex("test/jenkins-be-hash.tdb1", 0, 0, O_RDWR, 0,
-                         &log_ctx, tdb1_old_hash);
+                         &log_ctx, old_hash);
        ok1(!tdb);
        ok1(log_count == 1);
 
        log_count = 0;
        /* Fail to open with old default hash. */
        tdb = tdb1_open_ex("run-wronghash-fail.tdb", 0, 0, O_RDWR, 0,
-                         &log_ctx, tdb1_old_hash);
+                         &log_ctx, old_hash);
        ok1(!tdb);
        ok1(log_count == 1);
 
        log_count = 0;
        tdb = tdb1_open_ex("test/jenkins-le-hash.tdb1", 0, 0, O_RDONLY,
-                         0, &log_ctx, tdb1_jenkins_hash);
+                         0, &log_ctx, tdb1_incompatible_hash);
        ok1(tdb);
        ok1(log_count == 0);
        ok1(tdb1_check(tdb, NULL, NULL) == 0);
@@ -76,7 +90,7 @@ int main(int argc, char *argv[])
 
        log_count = 0;
        tdb = tdb1_open_ex("test/jenkins-be-hash.tdb1", 0, 0, O_RDONLY,
-                         0, &log_ctx, tdb1_jenkins_hash);
+                         0, &log_ctx, tdb1_incompatible_hash);
        ok1(tdb);
        ok1(log_count == 0);
        ok1(tdb1_check(tdb, NULL, NULL) == 0);