summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c')
-rw-r--r--fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c b/fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c
new file mode 100644
index 000000000..2cd88fef3
--- /dev/null
+++ b/fluent-bit/lib/jansson-e23f558/test/suites/api/test_loadb.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2009-2016 Petri Lehtinen <petri@digip.org>
+ *
+ * Jansson is free software; you can redistribute it and/or modify
+ * it under the terms of the MIT license. See LICENSE for details.
+ */
+
+#include "util.h"
+#include <jansson.h>
+#include <string.h>
+
+static void run_tests() {
+ json_t *json;
+ json_error_t error;
+ const char str[] = "[\"A\", {\"B\": \"C\"}, 1, 2, 3]garbage";
+ size_t len = strlen(str) - strlen("garbage");
+
+ json = json_loadb(str, len, 0, &error);
+ if (!json) {
+ fail("json_loadb failed on a valid JSON buffer");
+ }
+ json_decref(json);
+
+ json = json_loadb(str, len - 1, 0, &error);
+ if (json) {
+ json_decref(json);
+ fail("json_loadb should have failed on an incomplete buffer, but it "
+ "didn't");
+ }
+ if (error.line != 1) {
+ fail("json_loadb returned an invalid line number on fail");
+ }
+ if (strcmp(error.text, "']' expected near end of file") != 0) {
+ fail("json_loadb returned an invalid error message for an unclosed "
+ "top-level array");
+ }
+}