69 TestDependencyContext c;
70 DependencyContext depContext = c.dependencies();
71 NOT_PRODUCT(ASSERT_FALSE(TestDependencyContext::find_stale_entries(depContext)));
72 ASSERT_FALSE(TestDependencyContext::has_stale_entries(depContext));
73
74 nmethod* nm = c._nmethods[id];
75 depContext.remove_dependent_nmethod(nm, delete_immediately);
76
77 if (!delete_immediately) {
78 NOT_PRODUCT(ASSERT_TRUE(TestDependencyContext::find_stale_entries(depContext)));
79 ASSERT_TRUE(TestDependencyContext::has_stale_entries(depContext));
80 NOT_PRODUCT(ASSERT_TRUE(depContext.is_dependent_nmethod(nm)));
81 depContext.expunge_stale_entries();
82 }
83
84 NOT_PRODUCT(ASSERT_FALSE(TestDependencyContext::find_stale_entries(depContext)));
85 ASSERT_FALSE(TestDependencyContext::has_stale_entries(depContext));
86 NOT_PRODUCT(ASSERT_FALSE(depContext.is_dependent_nmethod(nm)));
87 }
88
89 TEST(code, dependency_context) {
90 test_remove_dependent_nmethod(0, false);
91 test_remove_dependent_nmethod(1, false);
92 test_remove_dependent_nmethod(2, false);
93
94 test_remove_dependent_nmethod(0, true);
95 test_remove_dependent_nmethod(1, true);
96 test_remove_dependent_nmethod(2, true);
97 }
|
69 TestDependencyContext c;
70 DependencyContext depContext = c.dependencies();
71 NOT_PRODUCT(ASSERT_FALSE(TestDependencyContext::find_stale_entries(depContext)));
72 ASSERT_FALSE(TestDependencyContext::has_stale_entries(depContext));
73
74 nmethod* nm = c._nmethods[id];
75 depContext.remove_dependent_nmethod(nm, delete_immediately);
76
77 if (!delete_immediately) {
78 NOT_PRODUCT(ASSERT_TRUE(TestDependencyContext::find_stale_entries(depContext)));
79 ASSERT_TRUE(TestDependencyContext::has_stale_entries(depContext));
80 NOT_PRODUCT(ASSERT_TRUE(depContext.is_dependent_nmethod(nm)));
81 depContext.expunge_stale_entries();
82 }
83
84 NOT_PRODUCT(ASSERT_FALSE(TestDependencyContext::find_stale_entries(depContext)));
85 ASSERT_FALSE(TestDependencyContext::has_stale_entries(depContext));
86 NOT_PRODUCT(ASSERT_FALSE(depContext.is_dependent_nmethod(nm)));
87 }
88
89 TEST_VM(code, dependency_context) {
90 test_remove_dependent_nmethod(0, false);
91 test_remove_dependent_nmethod(1, false);
92 test_remove_dependent_nmethod(2, false);
93
94 test_remove_dependent_nmethod(0, true);
95 test_remove_dependent_nmethod(1, true);
96 test_remove_dependent_nmethod(2, true);
97 }
|