diff options
Diffstat (limited to 'lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc')
-rw-r--r-- | lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc | 87 |
1 files changed, 44 insertions, 43 deletions
diff --git a/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc b/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc index 5c075d53ebff..513432fac214 100644 --- a/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc @@ -18,74 +18,75 @@ namespace __sanitizer { TEST(SanitizerCommon, StackDepotBasic) { - uptr s1[] = {1, 2, 3, 4, 5}; - u32 i1 = StackDepotPut(s1, ARRAY_SIZE(s1)); - uptr sz1 = 0; - const uptr *sp1 = StackDepotGet(i1, &sz1); - EXPECT_NE(sp1, (uptr*)0); - EXPECT_EQ(sz1, ARRAY_SIZE(s1)); - EXPECT_EQ(internal_memcmp(sp1, s1, sizeof(s1)), 0); + uptr array[] = {1, 2, 3, 4, 5}; + StackTrace s1(array, ARRAY_SIZE(array)); + u32 i1 = StackDepotPut(s1); + StackTrace stack = StackDepotGet(i1); + EXPECT_NE(stack.trace, (uptr*)0); + EXPECT_EQ(ARRAY_SIZE(array), stack.size); + EXPECT_EQ(0, internal_memcmp(stack.trace, array, sizeof(array))); } TEST(SanitizerCommon, StackDepotAbsent) { - uptr sz1 = 0; - const uptr *sp1 = StackDepotGet((1 << 30) - 1, &sz1); - EXPECT_EQ(sp1, (uptr*)0); + StackTrace stack = StackDepotGet((1 << 30) - 1); + EXPECT_EQ((uptr*)0, stack.trace); } TEST(SanitizerCommon, StackDepotEmptyStack) { - u32 i1 = StackDepotPut(0, 0); - uptr sz1 = 0; - const uptr *sp1 = StackDepotGet(i1, &sz1); - EXPECT_EQ(sp1, (uptr*)0); + u32 i1 = StackDepotPut(StackTrace()); + StackTrace stack = StackDepotGet(i1); + EXPECT_EQ((uptr*)0, stack.trace); } TEST(SanitizerCommon, StackDepotZeroId) { - uptr sz1 = 0; - const uptr *sp1 = StackDepotGet(0, &sz1); - EXPECT_EQ(sp1, (uptr*)0); + StackTrace stack = StackDepotGet(0); + EXPECT_EQ((uptr*)0, stack.trace); } TEST(SanitizerCommon, StackDepotSame) { - uptr s1[] = {1, 2, 3, 4, 6}; - u32 i1 = StackDepotPut(s1, ARRAY_SIZE(s1)); - u32 i2 = StackDepotPut(s1, ARRAY_SIZE(s1)); + uptr array[] = {1, 2, 3, 4, 6}; + StackTrace s1(array, ARRAY_SIZE(array)); + u32 i1 = StackDepotPut(s1); + u32 i2 = StackDepotPut(s1); EXPECT_EQ(i1, i2); - uptr sz1 = 0; - const uptr *sp1 = StackDepotGet(i1, &sz1); - EXPECT_NE(sp1, (uptr*)0); - EXPECT_EQ(sz1, ARRAY_SIZE(s1)); - EXPECT_EQ(internal_memcmp(sp1, s1, sizeof(s1)), 0); + StackTrace stack = StackDepotGet(i1); + EXPECT_NE(stack.trace, (uptr*)0); + EXPECT_EQ(ARRAY_SIZE(array), stack.size); + EXPECT_EQ(0, internal_memcmp(stack.trace, array, sizeof(array))); } TEST(SanitizerCommon, StackDepotSeveral) { - uptr s1[] = {1, 2, 3, 4, 7}; - u32 i1 = StackDepotPut(s1, ARRAY_SIZE(s1)); - uptr s2[] = {1, 2, 3, 4, 8, 9}; - u32 i2 = StackDepotPut(s2, ARRAY_SIZE(s2)); + uptr array1[] = {1, 2, 3, 4, 7}; + StackTrace s1(array1, ARRAY_SIZE(array1)); + u32 i1 = StackDepotPut(s1); + uptr array2[] = {1, 2, 3, 4, 8, 9}; + StackTrace s2(array2, ARRAY_SIZE(array2)); + u32 i2 = StackDepotPut(s2); EXPECT_NE(i1, i2); } TEST(SanitizerCommon, StackDepotReverseMap) { - uptr s1[] = {1, 2, 3, 4, 5}; - uptr s2[] = {7, 1, 3, 0}; - uptr s3[] = {10, 2, 5, 3}; - uptr s4[] = {1, 3, 2, 5}; + uptr array1[] = {1, 2, 3, 4, 5}; + uptr array2[] = {7, 1, 3, 0}; + uptr array3[] = {10, 2, 5, 3}; + uptr array4[] = {1, 3, 2, 5}; u32 ids[4] = {0}; - ids[0] = StackDepotPut(s1, ARRAY_SIZE(s1)); - ids[1] = StackDepotPut(s2, ARRAY_SIZE(s2)); - ids[2] = StackDepotPut(s3, ARRAY_SIZE(s3)); - ids[3] = StackDepotPut(s4, ARRAY_SIZE(s4)); + StackTrace s1(array1, ARRAY_SIZE(array1)); + StackTrace s2(array2, ARRAY_SIZE(array2)); + StackTrace s3(array3, ARRAY_SIZE(array3)); + StackTrace s4(array4, ARRAY_SIZE(array4)); + ids[0] = StackDepotPut(s1); + ids[1] = StackDepotPut(s2); + ids[2] = StackDepotPut(s3); + ids[3] = StackDepotPut(s4); StackDepotReverseMap map; for (uptr i = 0; i < 4; i++) { - uptr sz_depot, sz_map; - const uptr *sp_depot, *sp_map; - sp_depot = StackDepotGet(ids[i], &sz_depot); - sp_map = map.Get(ids[i], &sz_map); - EXPECT_EQ(sz_depot, sz_map); - EXPECT_EQ(sp_depot, sp_map); + StackTrace stack = StackDepotGet(ids[i]); + StackTrace from_map = map.Get(ids[i]); + EXPECT_EQ(stack.size, from_map.size); + EXPECT_EQ(stack.trace, from_map.trace); } } |