25
#include "precompiled.hpp"
26
#include "gc/g1/g1Arguments.hpp"
27
#include "gc/g1/g1HeapVerifier.hpp"
28
#include "logging/logConfiguration.hpp"
29
#include "logging/logTag.hpp"
30
#include "logging/logTestFixture.hpp"
31
#include "unittest.hpp"
33
class G1HeapVerifierTest : public LogTestFixture {
35
static void parse_verification_type(const char* type) {
36
G1Arguments::parse_verification_type(type);
40
TEST_VM_F(G1HeapVerifierTest, parse) {
41
LogConfiguration::configure_stdout(LogLevel::Off, true, LOG_TAGS(gc, verify));
44
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungNormal));
45
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyConcurrentStart));
46
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyMixed));
47
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungEvacFail));
48
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyRemark));
49
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyCleanup));
50
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyFull));
53
G1HeapVerifierTest::parse_verification_type("full");
54
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungNormal));
55
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyConcurrentStart));
56
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyMixed));
57
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungEvacFail));
58
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyRemark));
59
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyCleanup));
60
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyFull));
63
G1HeapVerifierTest::parse_verification_type("YOUNG-NORMAL");
64
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungNormal));
65
G1HeapVerifierTest::parse_verification_type("young-normal");
66
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyYoungNormal));
69
G1HeapVerifierTest::parse_verification_type("mixedgc");
70
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyMixed));
71
G1HeapVerifierTest::parse_verification_type("mixe");
72
ASSERT_FALSE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyMixed));
73
G1HeapVerifierTest::parse_verification_type("mixed");
74
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyMixed));
77
G1HeapVerifierTest::parse_verification_type("concurrent-start");
78
G1HeapVerifierTest::parse_verification_type("remark");
79
G1HeapVerifierTest::parse_verification_type("cleanup");
80
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyRemark));
81
ASSERT_TRUE(G1HeapVerifier::should_verify(G1HeapVerifier::G1VerifyCleanup));