18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #include "precompiled.hpp"
25 #include "gc/z/zLiveMap.inline.hpp"
26 #include "unittest.hpp"
27
28 class ZLiveMapTest : public ::testing::Test {
29 protected:
30 static void strongly_live_for_large_zpage() {
31 // Large ZPages only have room for one object.
32 ZLiveMap livemap(1);
33
34 bool inc_live;
35 uintptr_t object = 0u;
36
37 // Mark the object strong.
38 livemap.set_atomic(object, false /* finalizable */, inc_live);
39
40 // Check that both bits are in the same segment.
41 ASSERT_EQ(livemap.index_to_segment(0), livemap.index_to_segment(1));
42
43 // Check that the object was marked.
44 ASSERT_TRUE(livemap.get(0));
45
46 // Check that the object was strongly marked.
47 ASSERT_TRUE(livemap.get(1));
48
49 ASSERT_TRUE(inc_live);
50 }
51 };
52
53 TEST_F(ZLiveMapTest, strongly_live_for_large_zpage) {
54 strongly_live_for_large_zpage();
55 }
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #include "precompiled.hpp"
25 #include "gc/z/zLiveMap.inline.hpp"
26 #include "unittest.hpp"
27
28 class ZLiveMapTest : public ::testing::Test {
29 protected:
30 static void strongly_live_for_large_zpage() {
31 // Large ZPages only have room for one object.
32 ZLiveMap livemap(1);
33
34 bool inc_live;
35 uintptr_t object = 0u;
36
37 // Mark the object strong.
38 livemap.set(object, false /* finalizable */, inc_live);
39
40 // Check that both bits are in the same segment.
41 ASSERT_EQ(livemap.index_to_segment(0), livemap.index_to_segment(1));
42
43 // Check that the object was marked.
44 ASSERT_TRUE(livemap.get(0));
45
46 // Check that the object was strongly marked.
47 ASSERT_TRUE(livemap.get(1));
48
49 ASSERT_TRUE(inc_live);
50 }
51 };
52
53 TEST_F(ZLiveMapTest, strongly_live_for_large_zpage) {
54 strongly_live_for_large_zpage();
55 }
|