@@ -38,3 +38,31 @@ TEST(LlvmLibcWMemcmpTest, LhsAfterRhsLexically) {
3838 const wchar_t *rhs = L" ab" ;
3939 EXPECT_GT (LIBC_NAMESPACE::wmemcmp (lhs, rhs, 2 ), 0 );
4040}
41+
42+ TEST (LlvmLibcWMemcmpTest, CompareToEmpty) {
43+ // lhs is nonempty, should result in a value greater than 0.
44+ const wchar_t *lhs = L" az" ;
45+ const wchar_t *rhs = L" " ;
46+ EXPECT_GT (LIBC_NAMESPACE::wmemcmp (lhs, rhs, 2 ), 0 );
47+ }
48+
49+ TEST (LlvmLibcWMemcmpTest, LhsAfterRhsLexicallyLong) {
50+ // b after a, should result in a value greater than 0.
51+ const wchar_t *lhs = L" aaaaaaaaaaaaab" ;
52+ const wchar_t *rhs = L" aaaaaaaaaaaaaa" ;
53+ EXPECT_GT (LIBC_NAMESPACE::wmemcmp (lhs, rhs, 15 ), 0 );
54+ }
55+
56+ TEST (LlvmLibcWMemcmpTest, RhsAfterLhsLexicallyLong) {
57+ // b after a, should result in a value less than 0.
58+ const wchar_t *lhs = L" aaaaaaaaaaaaaa" ;
59+ const wchar_t *rhs = L" aaaaaaaaaaaaab" ;
60+ EXPECT_LT (LIBC_NAMESPACE::wmemcmp (lhs, rhs, 15 ), 0 );
61+ }
62+
63+ TEST (LlvmLibcWMemcmpTest, LhsRhsAreTheSameLong) {
64+ // Comparing strings of equal value should result in 0.
65+ const wchar_t *lhs = L" aaaaaaaaaaaaaa" ;
66+ const wchar_t *rhs = L" aaaaaaaaaaaaaa" ;
67+ EXPECT_EQ (LIBC_NAMESPACE::wmemcmp (lhs, rhs, 15 ), 0 );
68+ }
0 commit comments