From 3490f01de4df5e6b21a9da5a566913f20326fa7a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 11 May 2008 08:55:42 +0000 Subject: [PATCH] * string/tester.c (test_memcmp): Add a few more tests. Patch by Mats Erik Andersson . --- ChangeLog | 5 +++++ string/tester.c | 34 ++++++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe91d7e408..ea15e3b783 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-11 Ulrich Drepper + + * string/tester.c (test_memcmp): Add a few more tests. + Patch by Mats Erik Andersson . + 2008-05-10 Ulrich Drepper * nscd/cache.c (cache_add): Before returning with failure and this diff --git a/string/tester.c b/string/tester.c index 1c0efe07d4..773e969a35 100644 --- a/string/tester.c +++ b/string/tester.c @@ -985,15 +985,33 @@ test_strsep (void) static void test_memcmp (void) { + int cnt = 1; + char one[21]; + char two[21]; + it = "memcmp"; - check(memcmp("a", "a", 1) == 0, 1); /* Identity. */ - check(memcmp("abc", "abc", 3) == 0, 2); /* Multicharacter. */ - check(memcmp("abcd", "abce", 4) < 0, 3); /* Honestly unequal. */ - check(memcmp("abce", "abcd", 4) > 0, 4); - check(memcmp("alph", "beta", 4) < 0, 5); - check(memcmp("a\203", "a\003", 2) > 0, 6); - check(memcmp("abce", "abcd", 3) == 0, 7); /* Count limited. */ - check(memcmp("abc", "def", 0) == 0, 8); /* Zero count. */ + check(memcmp("a", "a", 1) == 0, cnt++); /* Identity. */ + check(memcmp("abc", "abc", 3) == 0, cnt++); /* Multicharacter. */ + check(memcmp("abcd", "abcf", 4) < 0, cnt++); /* Honestly unequal. */ + check(memcmp("abcf", "abcd", 4) > 0, cnt++); + check(memcmp("alph", "cold", 4) < 0, cnt++); + check(memcmp("a\203", "a\003", 2) > 0, cnt++); + check(memcmp("a\003", "a\203", 2) < 0, cnt++); + check(memcmp("a\003bc", "a\203bc", 2) < 0, cnt++); + check(memcmp("abc\203", "abc\003", 4) > 0, cnt++); + check(memcmp("abc\003", "abc\203", 4) < 0, cnt++); + check(memcmp("abcf", "abcd", 3) == 0, cnt++); /* Count limited. */ + check(memcmp("abc", "def", 0) == 0, cnt++); /* Zero count. */ + /* Comparisons with shifting 4-byte boundaries. */ + for (int i = 0; i < 4; ++i) + { + char *a = one + i; + char *b = two + i; + strncpy(a, "--------11112222", 16); + strncpy(b, "--------33334444", 16); + check(memcmp(b, a, 16) > 0, cnt++); + check(memcmp(a, b, 16) < 0, cnt++); + } } static void