summaryrefslogtreecommitdiff
path: root/t/metadata_pointers_t.c
diff options
context:
space:
mode:
Diffstat (limited to 't/metadata_pointers_t.c')
-rw-r--r--t/metadata_pointers_t.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/metadata_pointers_t.c b/t/metadata_pointers_t.c
new file mode 100644
index 0000000..1c2e148
--- /dev/null
+++ b/t/metadata_pointers_t.c
@@ -0,0 +1,32 @@
+#include "maxminddb_test_helper.h"
+
+void run_tests(int mode, const char *mode_desc)
+{
+ const char *filename = "MaxMind-DB-test-metadata-pointers.mmdb";
+ const char *path = test_database_path(filename);
+ MMDB_s *mmdb = open_ok(path, mode, mode_desc);
+ free((void *)path);
+
+ char *repeated_string = "Lots of pointers in metadata";
+
+ is(mmdb->metadata.database_type, repeated_string,
+ "decoded pointer database_type");
+
+ for (uint16_t i = 0; i < mmdb->metadata.description.count; i++) {
+ const char *language =
+ mmdb->metadata.description.descriptions[i]->language;
+ const char *description =
+ mmdb->metadata.description.descriptions[i]->description;
+ is(description, repeated_string, "%s description", language);
+ }
+
+ MMDB_close(mmdb);
+ free(mmdb);
+}
+
+int main(void)
+{
+ plan(NO_PLAN);
+ for_all_modes(&run_tests);
+ done_testing();
+}