aboutsummaryrefslogtreecommitdiffstats
path: root/libabort_stralen.c
diff options
context:
space:
mode:
Diffstat (limited to 'libabort_stralen.c')
-rw-r--r--libabort_stralen.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/libabort_stralen.c b/libabort_stralen.c
new file mode 100644
index 0000000..8985256
--- /dev/null
+++ b/libabort_stralen.c
@@ -0,0 +1,34 @@
+/* See LICENSE file for copyright and license details. */
+#include "common.h"
+#ifndef TEST
+
+extern inline size_t libabort_stralen(const char *str, size_t size);
+
+#else
+
+volatile size_t test_size_t_discard;
+
+int
+main(void)
+{
+ size_t r;
+
+ INIT_TEST_ABORT();
+
+ EXPECT_NO_ABORT(r = libabort_stralen("", 1));
+ EXPECT(r == 0);
+
+ EXPECT_NO_ABORT(r = libabort_stralen("hello", 6));
+ EXPECT(r == 5);
+
+ EXPECT_NO_ABORT(r = libabort_stralen("hello", 10));
+ EXPECT(r == 5);
+
+ EXPECT_ABORT(test_size_t_discard = libabort_stralen("hello", 4));
+ EXPECT_ABORT(test_size_t_discard = libabort_stralen("hello", 5));
+ EXPECT_ABORT(test_size_t_discard = libabort_stralen("", 0));
+
+ return 0;
+}
+
+#endif