Module Name: src
Committed By: jruoho
Date: Thu Jul 14 05:46:04 UTC 2011
Modified Files:
src/tests/lib/libc/string: t_memchr.c t_memcpy.c t_strcat.c
Log Message:
Add few simple test cases.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/string/t_memchr.c \
src/tests/lib/libc/string/t_strcat.c
cvs rdiff -u -r1.3 -r1.4 src/tests/lib/libc/string/t_memcpy.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/lib/libc/string/t_memchr.c
diff -u src/tests/lib/libc/string/t_memchr.c:1.1 src/tests/lib/libc/string/t_memchr.c:1.2
--- src/tests/lib/libc/string/t_memchr.c:1.1 Thu Jul 7 08:59:32 2011
+++ src/tests/lib/libc/string/t_memchr.c Thu Jul 14 05:46:04 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_memchr.c,v 1.1 2011/07/07 08:59:32 jruoho Exp $ */
+/* $NetBSD: t_memchr.c,v 1.2 2011/07/14 05:46:04 jruoho Exp $ */
/*
* Written by J.T. Conklin <[email protected]>
@@ -14,7 +14,7 @@
ATF_TC(memchr_basic);
ATF_TC_HEAD(memchr_basic, tc)
{
- atf_tc_set_md_var(tc, "descr", "Test memchr(3) results");
+ atf_tc_set_md_var(tc, "descr", "Test memchr(3) results, #1");
}
ATF_TC_BODY(memchr_basic, tc)
@@ -128,10 +128,73 @@
}
}
+ATF_TC(memchr_simple);
+ATF_TC_HEAD(memchr_simple, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test memchr(3) results, #2");
+}
+
+ATF_TC_BODY(memchr_simple, tc)
+{
+ char buf[] = "abcdefg";
+ short i = 7;
+
+ ATF_CHECK(memchr(buf, 'a', 0) == NULL);
+ ATF_CHECK(memchr(buf, 'g', 0) == NULL);
+ ATF_CHECK(memchr(buf, 'x', 7) == NULL);
+
+ ATF_CHECK(memchr("\0", 'x', 0) == NULL);
+ ATF_CHECK(memchr("\0", 'x', 1) == NULL);
+
+ while (i <= 14) {
+
+ ATF_CHECK(memchr(buf, 'a', i) == buf + 0);
+ ATF_CHECK(memchr(buf, 'b', i) == buf + 1);
+ ATF_CHECK(memchr(buf, 'c', i) == buf + 2);
+ ATF_CHECK(memchr(buf, 'd', i) == buf + 3);
+ ATF_CHECK(memchr(buf, 'e', i) == buf + 4);
+ ATF_CHECK(memchr(buf, 'f', i) == buf + 5);
+ ATF_CHECK(memchr(buf, 'g', i) == buf + 6);
+
+ i *= 2;
+ }
+}
+
+ATF_TC(memrchr_simple);
+ATF_TC_HEAD(memrchr_simple, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test memrchr(3) results");
+}
+
+ATF_TC_BODY(memrchr_simple, tc)
+{
+ char buf[] = "abcdabcd";
+ short i = 8;
+
+ ATF_CHECK(memrchr(buf, 'a', 0) == NULL);
+ ATF_CHECK(memrchr(buf, 'g', 0) == NULL);
+ ATF_CHECK(memrchr(buf, 'x', 8) == NULL);
+
+ ATF_CHECK(memrchr("\0", 'x', 0) == NULL);
+ ATF_CHECK(memrchr("\0", 'x', 1) == NULL);
+
+ while (i <= 16) {
+
+ ATF_CHECK(memrchr(buf, 'a', i) == buf + 4);
+ ATF_CHECK(memrchr(buf, 'b', i) == buf + 5);
+ ATF_CHECK(memrchr(buf, 'c', i) == buf + 6);
+ ATF_CHECK(memrchr(buf, 'd', i) == buf + 7);
+
+ i *= 2;
+ }
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, memchr_basic);
+ ATF_TP_ADD_TC(tp, memchr_simple);
+ ATF_TP_ADD_TC(tp, memrchr_simple);
return atf_no_error();
}
Index: src/tests/lib/libc/string/t_strcat.c
diff -u src/tests/lib/libc/string/t_strcat.c:1.1 src/tests/lib/libc/string/t_strcat.c:1.2
--- src/tests/lib/libc/string/t_strcat.c:1.1 Thu Jul 7 08:59:32 2011
+++ src/tests/lib/libc/string/t_strcat.c Thu Jul 14 05:46:04 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_strcat.c,v 1.1 2011/07/07 08:59:32 jruoho Exp $ */
+/* $NetBSD: t_strcat.c,v 1.2 2011/07/14 05:46:04 jruoho Exp $ */
/*
* Written by J.T. Conklin <[email protected]>
@@ -123,10 +123,31 @@
}
}
+ATF_TC(strncat_simple);
+ATF_TC_HEAD(strncat_simple, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test strncat(3) results");
+}
+
+ATF_TC_BODY(strncat_simple, tc)
+{
+ char buf[100] = "abcdefg";
+
+ ATF_CHECK(strncat(buf, "xxx", 0) == buf);
+ ATF_CHECK(strcmp(buf, "abcdefg") == 0);
+ ATF_CHECK(strncat(buf, "xxx", 1) == buf);
+ ATF_CHECK(strcmp(buf, "abcdefgx") == 0);
+ ATF_CHECK(strncat(buf, "xxx", 2) == buf);
+ ATF_CHECK(strcmp(buf, "abcdefgxxx") == 0);
+ ATF_CHECK(strncat(buf, "\0", 1) == buf);
+ ATF_CHECK(strcmp(buf, "abcdefgxxx") == 0);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, strcat_basic);
+ ATF_TP_ADD_TC(tp, strncat_simple);
return atf_no_error();
}
Index: src/tests/lib/libc/string/t_memcpy.c
diff -u src/tests/lib/libc/string/t_memcpy.c:1.3 src/tests/lib/libc/string/t_memcpy.c:1.4
--- src/tests/lib/libc/string/t_memcpy.c:1.3 Thu Jul 7 08:27:36 2011
+++ src/tests/lib/libc/string/t_memcpy.c Thu Jul 14 05:46:04 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_memcpy.c,v 1.3 2011/07/07 08:27:36 jruoho Exp $ */
+/* $NetBSD: t_memcpy.c,v 1.4 2011/07/14 05:46:04 jruoho Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -99,10 +99,37 @@
ATF_REQUIRE_EQ(strcmp(result, goodResult), 0);
}
+ATF_TC(memccpy_simple);
+ATF_TC_HEAD(memccpy_simple, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test memccpy(3) results");
+}
+
+ATF_TC_BODY(memccpy_simple, tc)
+{
+ char buf[100];
+ char c = ' ';
+
+ (void)memset(buf, c, sizeof(buf));
+
+ ATF_CHECK(memccpy(buf, "foo bar", c, sizeof(buf)) != NULL);
+ ATF_CHECK(buf[4] == c);
+
+ ATF_CHECK(memccpy(buf, "foo bar", '\0', sizeof(buf) - 1) != NULL);
+ ATF_CHECK(buf[8] == c);
+
+ ATF_CHECK(memccpy(buf, "foo bar", 'x', 7) == NULL);
+ ATF_CHECK(strncmp(buf, "foo bar", 7) == 0);
+
+ ATF_CHECK(memccpy(buf, "xxxxxxx", 'r', 7) == NULL);
+ ATF_CHECK(strncmp(buf, "xxxxxxx", 7) == 0);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, memcpy_basic);
+ ATF_TP_ADD_TC(tp, memccpy_simple);
return atf_no_error();
}