summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2022-12-27 23:11:38 +0100
committerAlejandro Colomar <alx@kernel.org>2022-12-27 23:45:13 +0100
commitee1f8c0d8103d07809c536745c9c42376292729c (patch)
treece6706f5c421dd6e0b6e3410f83564d11b997f6b
parent2fce0b804ad4bc9c54c317da55eeea8d858431be (diff)
share/tests/libstp/stpe/00{2,3,4,5,6}/*: Add more tests
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--share/tests/libstp/stpe/002/test.c25
-rwxr-xr-xshare/tests/libstp/stpe/002/test.sh22
-rw-r--r--share/tests/libstp/stpe/003/test.c25
-rwxr-xr-xshare/tests/libstp/stpe/003/test.sh19
-rw-r--r--share/tests/libstp/stpe/004/test.c25
-rwxr-xr-xshare/tests/libstp/stpe/004/test.sh19
-rw-r--r--share/tests/libstp/stpe/005/test.c25
-rwxr-xr-xshare/tests/libstp/stpe/005/test.sh19
-rw-r--r--share/tests/libstp/stpe/006/test.c26
-rwxr-xr-xshare/tests/libstp/stpe/006/test.sh19
10 files changed, 224 insertions, 0 deletions
diff --git a/share/tests/libstp/stpe/002/test.c b/share/tests/libstp/stpe/002/test.c
new file mode 100644
index 0000000..e584c6c
--- /dev/null
+++ b/share/tests/libstp/stpe/002/test.c
@@ -0,0 +1,25 @@
+#include <stp/stpe/stpecpy.h>
+
+#include <stddef.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ char buf[13];
+ char *p, *end;
+ size_t len;
+
+ end = buf + sizeof(buf);
+ p = buf;
+ p = stpecpy(p, end, "Hello ");
+ p = stpecpy(p, end, "world");
+ p = stpecpy(p, end, "!");
+ if (p == end) {
+ p--;
+ puts("Truncated:");
+ }
+ len = p - buf;
+ printf("%zu: ", len);
+ puts(buf);
+}
diff --git a/share/tests/libstp/stpe/002/test.sh b/share/tests/libstp/stpe/002/test.sh
new file mode 100755
index 0000000..e5eadd2
--- /dev/null
+++ b/share/tests/libstp/stpe/002/test.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+
+set -Eefuo pipefail;
+shopt -s lastpipe;
+
+
+./test \
+| while read out; do
+ if echo $out | grep -q 'Truncated'; then
+ >&2 echo "$out";
+ exit 2;
+ fi;
+
+ echo $out;
+done \
+| while read out; do
+ if echo $out | grep -q -v '^12: Hello world!$'; then
+ >&2 echo "$out";
+ exit 3;
+ fi;
+done;
diff --git a/share/tests/libstp/stpe/003/test.c b/share/tests/libstp/stpe/003/test.c
new file mode 100644
index 0000000..3ce821e
--- /dev/null
+++ b/share/tests/libstp/stpe/003/test.c
@@ -0,0 +1,25 @@
+#include <stp/stpe/stpecpy.h>
+
+#include <stddef.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ char buf[12];
+ char *p, *end;
+ size_t len;
+
+ end = buf + sizeof(buf);
+ p = buf;
+ p = stpecpy(p, end, "Hello ");
+ p = stpecpy(p, end, "world");
+ p = stpecpy(p, end, "!");
+ if (p == end) {
+ p--;
+ puts("Truncated:");
+ }
+ len = p - buf;
+ printf("%zu: ", len);
+ puts(buf);
+}
diff --git a/share/tests/libstp/stpe/003/test.sh b/share/tests/libstp/stpe/003/test.sh
new file mode 100755
index 0000000..ee952ea
--- /dev/null
+++ b/share/tests/libstp/stpe/003/test.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+
+set -Eefuo pipefail;
+shopt -s lastpipe;
+
+
+./test \
+| if ! grep -q '^Truncated:$'; then
+ >&2 ./test;
+ exit 2;
+fi;
+
+
+./test \
+| if ! grep -q '^11: Hello world$'; then
+ >&2 ./test;
+ exit 3;
+fi;
diff --git a/share/tests/libstp/stpe/004/test.c b/share/tests/libstp/stpe/004/test.c
new file mode 100644
index 0000000..22e3677
--- /dev/null
+++ b/share/tests/libstp/stpe/004/test.c
@@ -0,0 +1,25 @@
+#include <stp/stpe/stpecpy.h>
+
+#include <stddef.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ char buf[11];
+ char *p, *end;
+ size_t len;
+
+ end = buf + sizeof(buf);
+ p = buf;
+ p = stpecpy(p, end, "Hello ");
+ p = stpecpy(p, end, "world");
+ p = stpecpy(p, end, "!");
+ if (p == end) {
+ p--;
+ puts("Truncated:");
+ }
+ len = p - buf;
+ printf("%zu: ", len);
+ puts(buf);
+}
diff --git a/share/tests/libstp/stpe/004/test.sh b/share/tests/libstp/stpe/004/test.sh
new file mode 100755
index 0000000..7eccc45
--- /dev/null
+++ b/share/tests/libstp/stpe/004/test.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+
+set -Eefuo pipefail;
+shopt -s lastpipe;
+
+
+./test \
+| if ! grep -q '^Truncated:$'; then
+ >&2 ./test;
+ exit 2;
+fi;
+
+
+./test \
+| if ! grep -q '^10: Hello worl$'; then
+ >&2 ./test;
+ exit 3;
+fi;
diff --git a/share/tests/libstp/stpe/005/test.c b/share/tests/libstp/stpe/005/test.c
new file mode 100644
index 0000000..808d701
--- /dev/null
+++ b/share/tests/libstp/stpe/005/test.c
@@ -0,0 +1,25 @@
+#include <stp/stpe/stpecpy.h>
+
+#include <stddef.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ char buf[1];
+ char *p, *end;
+ size_t len;
+
+ end = buf + sizeof(buf);
+ p = buf;
+ p = stpecpy(p, end, "Hello ");
+ p = stpecpy(p, end, "world");
+ p = stpecpy(p, end, "!");
+ if (p == end) {
+ p--;
+ puts("Truncated:");
+ }
+ len = p - buf;
+ printf("%zu: ", len);
+ puts(buf);
+}
diff --git a/share/tests/libstp/stpe/005/test.sh b/share/tests/libstp/stpe/005/test.sh
new file mode 100755
index 0000000..1cadf3a
--- /dev/null
+++ b/share/tests/libstp/stpe/005/test.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+
+set -Eefuo pipefail;
+shopt -s lastpipe;
+
+
+./test \
+| if ! grep -q '^Truncated:$'; then
+ >&2 ./test;
+ exit 2;
+fi;
+
+
+./test \
+| if ! grep -q '^0: $'; then
+ >&2 ./test;
+ exit 3;
+fi;
diff --git a/share/tests/libstp/stpe/006/test.c b/share/tests/libstp/stpe/006/test.c
new file mode 100644
index 0000000..a7f959f
--- /dev/null
+++ b/share/tests/libstp/stpe/006/test.c
@@ -0,0 +1,26 @@
+#include <stp/stpe/stpecpy.h>
+
+#include <stddef.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ char buf[11];
+ char *p, *end;
+ size_t len;
+
+ end = buf + sizeof(buf);
+ p = buf;
+ p = stpecpy(p, end, "Hello ");
+ p = stpecpy(p, end, "world");
+ p = stpecpy(p, end, "!");
+ p = stpecpy(p, end, "");
+ if (p == end) {
+ p--;
+ puts("Truncated:");
+ }
+ len = p - buf;
+ printf("%zu: ", len);
+ puts(buf);
+}
diff --git a/share/tests/libstp/stpe/006/test.sh b/share/tests/libstp/stpe/006/test.sh
new file mode 100755
index 0000000..7eccc45
--- /dev/null
+++ b/share/tests/libstp/stpe/006/test.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+
+set -Eefuo pipefail;
+shopt -s lastpipe;
+
+
+./test \
+| if ! grep -q '^Truncated:$'; then
+ >&2 ./test;
+ exit 2;
+fi;
+
+
+./test \
+| if ! grep -q '^10: Hello worl$'; then
+ >&2 ./test;
+ exit 3;
+fi;