about summary refs log tree commit diff
path: root/string/tester.c
diff options
context:
space:
mode:
Diffstat (limited to 'string/tester.c')
-rw-r--r--string/tester.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/string/tester.c b/string/tester.c
index bd2445f0d1..39ae0d837e 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -1257,6 +1257,30 @@ test_bzero (void)
 }
 
 static void
+test_strndup (void)
+{
+  char *p, *q;
+  it = "strndup";
+  p = strndup("abcdef", 12);
+  check(p != NULL, 1);
+  if (p != NULL)
+    {
+      equal(p, "abcdef", 2);
+      q = strndup(p + 1, 2);
+      check(q != NULL, 3);
+      if (q != NULL)
+	equal(q, "bc", 4);
+      free (q);
+    }
+  free (p);
+  p = strndup("abc def", 3);
+  check(p != NULL, 5);
+  if (p != NULL)
+    equal(p, "abc", 6);
+  free (p);
+}
+
+static void
 test_bcmp (void)
 {
   it = "bcmp";
@@ -1382,6 +1406,9 @@ main (void)
   /* bcmp - somewhat like memcmp.  */
   test_bcmp ();
 
+  /* strndup.  */
+  test_strndup ();
+
   /* strerror - VERY system-dependent.  */
   test_strerror ();