forked from OSchip/llvm-project
[sanitizer] Add operator== and operator!= for InternalMmapVectorNoCtor
llvm-svn: 331619
This commit is contained in:
parent
2a20955169
commit
fac095caba
|
@ -528,6 +528,19 @@ class InternalMmapVectorNoCtor {
|
|||
uptr size_;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
bool operator==(const InternalMmapVectorNoCtor<T> &lhs,
|
||||
const InternalMmapVectorNoCtor<T> &rhs) {
|
||||
if (lhs.size() != rhs.size()) return false;
|
||||
return internal_memcmp(lhs.data(), rhs.data(), lhs.size() * sizeof(T)) == 0;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool operator!=(const InternalMmapVectorNoCtor<T> &lhs,
|
||||
const InternalMmapVectorNoCtor<T> &rhs) {
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
class InternalMmapVector : public InternalMmapVectorNoCtor<T> {
|
||||
public:
|
||||
|
|
|
@ -107,6 +107,29 @@ TEST(SanitizerCommon, InternalMmapVector) {
|
|||
CHECK_EQ(0U, empty_vector.size());
|
||||
}
|
||||
|
||||
TEST(SanitizerCommon, InternalMmapVectorEq) {
|
||||
InternalMmapVector<uptr> vector1;
|
||||
InternalMmapVector<uptr> vector2;
|
||||
for (uptr i = 0; i < 100; i++) {
|
||||
vector1.push_back(i);
|
||||
vector2.push_back(i);
|
||||
}
|
||||
EXPECT_TRUE(vector1 == vector2);
|
||||
EXPECT_FALSE(vector1 != vector2);
|
||||
|
||||
vector1.push_back(1);
|
||||
EXPECT_FALSE(vector1 == vector2);
|
||||
EXPECT_TRUE(vector1 != vector2);
|
||||
|
||||
vector2.push_back(1);
|
||||
EXPECT_TRUE(vector1 == vector2);
|
||||
EXPECT_FALSE(vector1 != vector2);
|
||||
|
||||
vector1[55] = 1;
|
||||
EXPECT_FALSE(vector1 == vector2);
|
||||
EXPECT_TRUE(vector1 != vector2);
|
||||
}
|
||||
|
||||
void TestThreadInfo(bool main) {
|
||||
uptr stk_addr = 0;
|
||||
uptr stk_size = 0;
|
||||
|
|
Loading…
Reference in New Issue