summaryrefslogtreecommitdiffstats
path: root/runtime/tests/string/print_cstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/tests/string/print_cstr.c')
-rw-r--r--runtime/tests/string/print_cstr.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/runtime/tests/string/print_cstr.c b/runtime/tests/string/print_cstr.c
new file mode 100644
index 00000000..2de0f592
--- /dev/null
+++ b/runtime/tests/string/print_cstr.c
@@ -0,0 +1,56 @@
+/* test of _stp_print_cstr() */
+
+/* use very small buffer size for testing */
+#define STP_PRINT_BUF_LEN 20
+#include "runtime.h"
+
+int main ()
+{
+ /* can we see output? */
+ _stp_print_cstr("ABCDE\n");
+ _stp_print_flush();
+
+
+ /* overflow */
+ _stp_print_cstr("1234567890123456789012345\n");
+ _stp_print_cstr("XYZZY\n");
+ _stp_print_flush();
+
+ /* small string then overflow string */
+ _stp_print_cstr("XYZZY\n");
+ _stp_print_cstr("1234567890123456789012345");
+ _stp_print_cstr("\n");
+ _stp_print_flush();
+
+ /* two small string that overflow */
+ _stp_print_cstr("abcdefghij");
+ _stp_print_cstr("1234567890");
+ _stp_print_cstr("\n");
+ _stp_print_flush();
+
+ /* two small string that overflow */
+ _stp_print_cstr("abcdefghij");
+ _stp_print_cstr("1234567890X");
+ _stp_print_cstr("\n");
+ _stp_print_flush();
+
+ _stp_print_cstr("12345\n");
+ _stp_print_cstr("67890\n");
+ _stp_print_cstr("abcde\n");
+ _stp_print_flush();
+ _stp_print_flush();
+ _stp_print_cstr("12345");
+ _stp_print_cstr("67890");
+ _stp_print_cstr("abcde");
+ _stp_print_cstr("fghij");
+ _stp_print_cstr("\n");
+ _stp_print_flush();
+
+ /* null string */
+ _stp_print_cstr("");
+ _stp_print_flush();
+ _stp_print_cstr("");
+ _stp_print_cstr("Q\n");
+ _stp_print_flush();
+ return 0;
+}