summaryrefslogtreecommitdiff
path: root/tests/lib/libc/string
diff options
context:
space:
mode:
authorjruoho <jruoho@NetBSD.org>2011-07-07 09:31:27 +0000
committerjruoho <jruoho@NetBSD.org>2011-07-07 09:31:27 +0000
commit7fbac4e05faf9630ce822e57a68b50bf0ee0893f (patch)
tree33e1d26fd6a5e64cb46dc1deb2cd942adb2d8274 /tests/lib/libc/string
parenta2fad5999db9c2cd2617999280763fc680fae3b8 (diff)
Few basic checks, including a case for strnlen(3).
Diffstat (limited to 'tests/lib/libc/string')
-rw-r--r--tests/lib/libc/string/t_strcmp.c34
-rw-r--r--tests/lib/libc/string/t_strlen.c25
2 files changed, 56 insertions, 3 deletions
diff --git a/tests/lib/libc/string/t_strcmp.c b/tests/lib/libc/string/t_strcmp.c
index 5fe9011c451..9c6bc244d74 100644
--- a/tests/lib/libc/string/t_strcmp.c
+++ b/tests/lib/libc/string/t_strcmp.c
@@ -1,4 +1,4 @@
-/* $NetBSD: t_strcmp.c,v 1.1 2011/07/07 08:59:33 jruoho Exp $ */
+/* $NetBSD: t_strcmp.c,v 1.2 2011/07/07 09:31:27 jruoho Exp $ */
/*
* Written by J.T. Conklin <jtc@acorntoolworks.com>
@@ -14,7 +14,7 @@
ATF_TC(strcmp_basic);
ATF_TC_HEAD(strcmp_basic, tc)
{
- atf_tc_set_md_var(tc, "descr", "Test strcmp(3) results");
+ atf_tc_set_md_var(tc, "descr", "Test strcmp(3) results, #1");
}
ATF_TC_BODY(strcmp_basic, tc)
@@ -97,10 +97,40 @@ ATF_TC_BODY(strcmp_basic, tc)
}
}
+ATF_TC(strcmp_simple);
+ATF_TC_HEAD(strcmp_simple, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test strcmp(3) results, #2");
+}
+
+ATF_TC_BODY(strcmp_simple, tc)
+{
+ char buf1[10] = "xxx";
+ char buf2[10] = "xxy";
+
+ ATF_REQUIRE(strcmp(buf1, buf1) == 0);
+ ATF_REQUIRE(strcmp(buf2, buf2) == 0);
+
+ ATF_REQUIRE(strcmp("xöx", "xox") > 0);
+ ATF_REQUIRE(strcmp("xxx", "xxxyyy") < 0);
+ ATF_REQUIRE(strcmp("xxxyyy", "xxx") > 0);
+
+ ATF_REQUIRE(strcmp(buf1 + 0, buf2 + 0) < 0);
+ ATF_REQUIRE(strcmp(buf1 + 1, buf2 + 1) < 0);
+ ATF_REQUIRE(strcmp(buf1 + 2, buf2 + 2) < 0);
+ ATF_REQUIRE(strcmp(buf1 + 3, buf2 + 3) == 0);
+
+ ATF_REQUIRE(strcmp(buf2 + 0, buf1 + 0) > 0);
+ ATF_REQUIRE(strcmp(buf2 + 1, buf1 + 1) > 0);
+ ATF_REQUIRE(strcmp(buf2 + 2, buf1 + 2) > 0);
+ ATF_REQUIRE(strcmp(buf2 + 3, buf1 + 3) == 0);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, strcmp_basic);
+ ATF_TP_ADD_TC(tp, strcmp_simple);
return atf_no_error();
}
diff --git a/tests/lib/libc/string/t_strlen.c b/tests/lib/libc/string/t_strlen.c
index 2de7bdc20ce..bbf23285274 100644
--- a/tests/lib/libc/string/t_strlen.c
+++ b/tests/lib/libc/string/t_strlen.c
@@ -1,4 +1,4 @@
-/* $NetBSD: t_strlen.c,v 1.2 2011/07/07 09:16:06 jruoho Exp $ */
+/* $NetBSD: t_strlen.c,v 1.3 2011/07/07 09:31:27 jruoho Exp $ */
/*
* Written by J.T. Conklin <jtc@acorntoolworks.com>
@@ -166,11 +166,34 @@ ATF_TC_BODY(strlen_huge, tc)
}
}
+ATF_TC(strnlen_basic);
+ATF_TC_HEAD(strnlen_basic, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "A naive test of strnlen(3)");
+}
+
+ATF_TC_BODY(strnlen_basic, tc)
+{
+ char buf[1];
+
+ buf[0] = '\0';
+
+ ATF_REQUIRE(strnlen(buf, 000) == 0);
+ ATF_REQUIRE(strnlen(buf, 111) == 0);
+
+ ATF_REQUIRE(strnlen("xxx", 0) == 0);
+ ATF_REQUIRE(strnlen("xxx", 1) == 1);
+ ATF_REQUIRE(strnlen("xxx", 2) == 2);
+ ATF_REQUIRE(strnlen("xxx", 3) == 3);
+ ATF_REQUIRE(strnlen("xxx", 9) == 3);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, strlen_basic);
ATF_TP_ADD_TC(tp, strlen_huge);
+ ATF_TP_ADD_TC(tp, strnlen_basic);
return atf_no_error();
}