tdb: fix tdb_check() on other-endian tdbs.
[ccan] / ccan / tdb / test / run-check.c
index fe0842d3d0aa62f260e93ee307b21412b4d72eb6..4a57eb6f88d109819e2d54b096d40b65cffaeb82 100644 (file)
@@ -19,7 +19,7 @@ int main(int argc, char *argv[])
        struct tdb_context *tdb;
        TDB_DATA key, data;
 
-       plan_tests(9);
+       plan_tests(13);
        tdb = tdb_open_ex("run-check.tdb", 1, TDB_CLEAR_IF_FIRST,
                          O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
@@ -48,5 +48,18 @@ int main(int argc, char *argv[])
        ok1(tdb_error(tdb) == TDB_ERR_CORRUPT);
        tdb_close(tdb);
 
+       /* Big and little endian should work! */
+       tdb = tdb_open_ex("test/tdb-le.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
+       ok1(tdb);
+       ok1(tdb_check(tdb, NULL, NULL) == 0);
+       tdb_close(tdb);
+
+       tdb = tdb_open_ex("test/tdb-be.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
+       ok1(tdb);
+       ok1(tdb_check(tdb, NULL, NULL) == 0);
+       tdb_close(tdb);
+
        return exit_status();
 }