< prev index next >
test/hotspot/jtreg/gc/g1/TestVerifyGCType.java
Print this page
rev 50627 : imported patch 8204084-last-young-gc-marker
rev 50628 : imported patch 8204084-stefanj-review
rev 50629 : imported patch 8204084-stefanj-review2
rev 50630 : imported patch 8204084-stefanj-review3
*** 58,85 ****
private static void testAllVerificationEnabled() throws Exception {
// Test with all verification enabled
OutputAnalyzer output = testWithVerificationType(new String[0]);
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young", true, false, true, output.getStdout());
! verifyCollection("Pause Initial Mark", true, false, true, output.getStdout());
! verifyCollection("Pause Mixed", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
private static void testAllExplicitlyEnabled() throws Exception {
OutputAnalyzer output;
// Test with all explicitly enabled
output = testWithVerificationType(new String[] {
! "young-only", "initial-mark", "mixed", "remark", "cleanup", "full"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young", true, false, true, output.getStdout());
! verifyCollection("Pause Initial Mark", true, false, true, output.getStdout());
! verifyCollection("Pause Mixed", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
--- 58,87 ----
private static void testAllVerificationEnabled() throws Exception {
// Test with all verification enabled
OutputAnalyzer output = testWithVerificationType(new String[0]);
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young (Normal)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Concurrent Start)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Mixed)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Prepare Mixed)", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
private static void testAllExplicitlyEnabled() throws Exception {
OutputAnalyzer output;
// Test with all explicitly enabled
output = testWithVerificationType(new String[] {
! "young-normal", "concurrent-start", "mixed", "remark", "cleanup", "full"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young (Normal)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Concurrent Start)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Mixed)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Prepare Mixed)", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
*** 87,113 ****
OutputAnalyzer output;
// Test with full and remark
output = testWithVerificationType(new String[] {"remark", "full"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young", false, false, false, output.getStdout());
! verifyCollection("Pause Initial Mark", false, false, false, output.getStdout());
! verifyCollection("Pause Mixed", false, false, false, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, false, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
private static void testConcurrentMark() throws Exception {
OutputAnalyzer output;
// Test with full and remark
! output = testWithVerificationType(new String[] {"initial-mark", "cleanup", "remark"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young", false, false, false, output.getStdout());
! verifyCollection("Pause Initial Mark", true, false, true, output.getStdout());
! verifyCollection("Pause Mixed", false, false, false, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", false, false, false, output.getStdout());
}
--- 89,117 ----
OutputAnalyzer output;
// Test with full and remark
output = testWithVerificationType(new String[] {"remark", "full"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young (Normal)", false, false, false, output.getStdout());
! verifyCollection("Pause Young (Concurrent Start)", false, false, false, output.getStdout());
! verifyCollection("Pause Young (Mixed)", false, false, false, output.getStdout());
! verifyCollection("Pause Young (Prepare Mixed)", false, false, false, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, false, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
private static void testConcurrentMark() throws Exception {
OutputAnalyzer output;
// Test with full and remark
! output = testWithVerificationType(new String[] {"concurrent-start", "cleanup", "remark"});
output.shouldHaveExitValue(0);
! verifyCollection("Pause Young (Normal)", false, false, false, output.getStdout());
! verifyCollection("Pause Young (Concurrent Start)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Mixed)", false, false, false, output.getStdout());
! verifyCollection("Pause Young (Prepare Mixed)", false, false, false, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", false, false, false, output.getStdout());
}
*** 115,128 ****
OutputAnalyzer output;
// Test bad type
output = testWithVerificationType(new String[] {"old"});
output.shouldHaveExitValue(0);
! output.shouldMatch("VerifyGCType: '.*' is unknown. Available types are: young-only, initial-mark, mixed, remark, cleanup and full");
! verifyCollection("Pause Young", true, false, true, output.getStdout());
! verifyCollection("Pause Initial Mark", true, false, true, output.getStdout());
! verifyCollection("Pause Mixed", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
--- 119,133 ----
OutputAnalyzer output;
// Test bad type
output = testWithVerificationType(new String[] {"old"});
output.shouldHaveExitValue(0);
! output.shouldMatch("VerifyGCType: '.*' is unknown. Available types are: young-normal, concurrent-start, mixed, remark, cleanup and full");
! verifyCollection("Pause Young (Normal)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Concurrent Start)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Mixed)", true, false, true, output.getStdout());
! verifyCollection("Pause Young (Prepare Mixed)", true, false, true, output.getStdout());
verifyCollection("Pause Remark", false, true, false, output.getStdout());
verifyCollection("Pause Cleanup", false, true, false, output.getStdout());
verifyCollection("Pause Full", true, true, true, output.getStdout());
}
*** 227,251 ****
public static void main(String args[]) throws Exception {
WhiteBox wb = WhiteBox.getWhiteBox();
// Allocate some memory that can be turned into garbage.
Object[] used = alloc1M();
// Trigger the different GCs using the WhiteBox API.
wb.fullGC(); // full
// Memory have been promoted to old by full GC. Free
// some memory to be reclaimed by concurrent cycle.
partialFree(used);
! wb.g1StartConcMarkCycle(); // initial-mark, remark and cleanup
// Sleep to make sure concurrent cycle is done
while (wb.g1InConcurrentMark()) {
Thread.sleep(1000);
}
! // Trigger two young GCs, first will be young-only, second will be mixed.
! wb.youngGC(); // young-only
wb.youngGC(); // mixed
}
private static Object[] alloc1M() {
Object[] ret = new Object[1024];
--- 232,258 ----
public static void main(String args[]) throws Exception {
WhiteBox wb = WhiteBox.getWhiteBox();
// Allocate some memory that can be turned into garbage.
Object[] used = alloc1M();
+ wb.youngGC(); // young-normal
+
// Trigger the different GCs using the WhiteBox API.
wb.fullGC(); // full
// Memory have been promoted to old by full GC. Free
// some memory to be reclaimed by concurrent cycle.
partialFree(used);
! wb.g1StartConcMarkCycle(); // concurrent-start, remark and cleanup
// Sleep to make sure concurrent cycle is done
while (wb.g1InConcurrentMark()) {
Thread.sleep(1000);
}
! // Trigger two young GCs, first will be young-prepare-mixed, second will be mixed.
! wb.youngGC(); // young-prepare-mixed
wb.youngGC(); // mixed
}
private static Object[] alloc1M() {
Object[] ret = new Object[1024];
< prev index next >