summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /web/server/h2o/libh2o/deps/klib/test/kstring_test.c
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz
netdata-58daab21cd043e1dc37024a7f99b396788372918.zip
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'web/server/h2o/libh2o/deps/klib/test/kstring_test.c')
-rw-r--r--web/server/h2o/libh2o/deps/klib/test/kstring_test.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/deps/klib/test/kstring_test.c b/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
new file mode 100644
index 000000000..76f9532e7
--- /dev/null
+++ b/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
@@ -0,0 +1,76 @@
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "kstring.h"
+
+int nfail = 0;
+
+void check(const char *what, const kstring_t *ks, const char *correct)
+{
+ if (ks->l != strlen(correct) || strcmp(ks->s, correct) != 0) {
+ fprintf(stderr, "%s produced \"%.*s\" (\"%s\" is correct)\tFAIL\n", what, (int)(ks->l), ks->s, correct);
+ nfail++;
+ }
+}
+
+void test_kputw(kstring_t *ks, int n)
+{
+ char buf[16];
+
+ ks->l = 0;
+ kputw(n, ks);
+
+ sprintf(buf, "%d", n);
+ check("kputw()", ks, buf);
+}
+
+void test_kputl(kstring_t *ks, long n)
+{
+ char buf[24];
+
+ ks->l = 0;
+ kputl(n, ks);
+
+ sprintf(buf, "%ld", n);
+ check("kputl()", ks, buf);
+}
+
+int main()
+{
+ kstring_t ks;
+
+ ks.l = ks.m = 0;
+ ks.s = NULL;
+
+ test_kputw(&ks, 0);
+ test_kputw(&ks, 1);
+ test_kputw(&ks, 37);
+ test_kputw(&ks, 12345);
+ test_kputw(&ks, -12345);
+ test_kputw(&ks, INT_MAX);
+ test_kputw(&ks, -INT_MAX);
+ test_kputw(&ks, INT_MIN);
+
+ test_kputl(&ks, 0);
+ test_kputl(&ks, 1);
+ test_kputl(&ks, 37);
+ test_kputl(&ks, 12345);
+ test_kputl(&ks, -12345);
+ test_kputl(&ks, INT_MAX);
+ test_kputl(&ks, -INT_MAX);
+ test_kputl(&ks, INT_MIN);
+ test_kputl(&ks, LONG_MAX);
+ test_kputl(&ks, -LONG_MAX);
+ test_kputl(&ks, LONG_MIN);
+
+ free(ks.s);
+
+ if (nfail > 0) {
+ fprintf(stderr, "Total failures: %d\n", nfail);
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}