mirror of
https://github.com/intel/llvm.git
synced 2026-01-24 08:30:34 +08:00
[libc] Check signs instead of values in memcmp unittests.
The C standard only guarantees the sign of return value. The exact return value is implementation defined. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D109588
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
TEST(LlvmLibcMemcmpTest, CmpZeroByte) {
|
||||
const char *lhs = "ab";
|
||||
const char *rhs = "bc";
|
||||
const char *rhs = "yz";
|
||||
EXPECT_EQ(__llvm_libc::memcmp(lhs, rhs, 0), 0);
|
||||
}
|
||||
|
||||
@@ -23,14 +23,14 @@ TEST(LlvmLibcMemcmpTest, LhsRhsAreTheSame) {
|
||||
|
||||
TEST(LlvmLibcMemcmpTest, LhsBeforeRhsLexically) {
|
||||
const char *lhs = "ab";
|
||||
const char *rhs = "ac";
|
||||
EXPECT_EQ(__llvm_libc::memcmp(lhs, rhs, 2), -1);
|
||||
const char *rhs = "az";
|
||||
EXPECT_LT(__llvm_libc::memcmp(lhs, rhs, 2), 0);
|
||||
}
|
||||
|
||||
TEST(LlvmLibcMemcmpTest, LhsAfterRhsLexically) {
|
||||
const char *lhs = "ac";
|
||||
const char *lhs = "az";
|
||||
const char *rhs = "ab";
|
||||
EXPECT_EQ(__llvm_libc::memcmp(lhs, rhs, 2), 1);
|
||||
EXPECT_GT(__llvm_libc::memcmp(lhs, rhs, 2), 0);
|
||||
}
|
||||
|
||||
TEST(LlvmLibcMemcmpTest, Sweep) {
|
||||
@@ -51,8 +51,8 @@ TEST(LlvmLibcMemcmpTest, Sweep) {
|
||||
reset(lhs);
|
||||
reset(rhs);
|
||||
for (size_t i = 0; i < kMaxSize; ++i) {
|
||||
rhs[i] = 'b';
|
||||
EXPECT_EQ(__llvm_libc::memcmp(lhs, rhs, kMaxSize), -1);
|
||||
rhs[i] = 'z';
|
||||
EXPECT_LT(__llvm_libc::memcmp(lhs, rhs, kMaxSize), 0);
|
||||
rhs[i] = 'a';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user