summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/jansson-e23f558/test/suites/api/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/jansson-e23f558/test/suites/api/util.h')
-rw-r--r--fluent-bit/lib/jansson-e23f558/test/suites/api/util.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/fluent-bit/lib/jansson-e23f558/test/suites/api/util.h b/fluent-bit/lib/jansson-e23f558/test/suites/api/util.h
new file mode 100644
index 000000000..d964c4930
--- /dev/null
+++ b/fluent-bit/lib/jansson-e23f558/test/suites/api/util.h
@@ -0,0 +1,93 @@
+/*
+ * 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.
+ */
+
+#ifndef UTIL_H
+#define UTIL_H
+
+#ifdef HAVE_CONFIG_H
+#include <jansson_private_config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#if HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#include <jansson.h>
+
+#define failhdr fprintf(stderr, "%s:%d: ", __FILE__, __LINE__)
+
+#define fail(msg) \
+ do { \
+ failhdr; \
+ fprintf(stderr, "%s\n", msg); \
+ exit(1); \
+ } while (0)
+
+/* Assumes json_error_t error */
+#define check_errors(code_, texts_, num_, source_, line_, column_, position_) \
+ do { \
+ int i_, found_ = 0; \
+ if (json_error_code(&error) != code_) { \
+ failhdr; \
+ fprintf(stderr, "code: %d != %d\n", json_error_code(&error), code_); \
+ exit(1); \
+ } \
+ for (i_ = 0; i_ < num_; i_++) { \
+ if (strcmp(error.text, texts_[i_]) == 0) { \
+ found_ = 1; \
+ break; \
+ } \
+ } \
+ if (!found_) { \
+ failhdr; \
+ if (num_ == 1) { \
+ fprintf(stderr, "text: \"%s\" != \"%s\"\n", error.text, texts_[0]); \
+ } else { \
+ fprintf(stderr, "text: \"%s\" does not match\n", error.text); \
+ } \
+ exit(1); \
+ } \
+ if (strcmp(error.source, source_) != 0) { \
+ failhdr; \
+ \
+ fprintf(stderr, "source: \"%s\" != \"%s\"\n", error.source, source_); \
+ exit(1); \
+ } \
+ if (error.line != line_) { \
+ failhdr; \
+ fprintf(stderr, "line: %d != %d\n", error.line, line_); \
+ exit(1); \
+ } \
+ if (error.column != column_) { \
+ failhdr; \
+ fprintf(stderr, "column: %d != %d\n", error.column, column_); \
+ exit(1); \
+ } \
+ if (error.position != position_) { \
+ failhdr; \
+ fprintf(stderr, "position: %d != %d\n", error.position, position_); \
+ exit(1); \
+ } \
+ } while (0)
+
+/* Assumes json_error_t error */
+#define check_error(code_, text_, source_, line_, column_, position_) \
+ check_errors(code_, &text_, 1, source_, line_, column_, position_)
+
+static void run_tests();
+
+int main() {
+#ifdef HAVE_SETLOCALE
+ setlocale(LC_ALL, "");
+#endif
+ run_tests();
+ return 0;
+}
+
+#endif