|
| 1 | +package com.tagtraum.perf.gcviewer.imp; |
| 2 | + |
| 3 | +import static org.hamcrest.Matchers.closeTo; |
| 4 | +import static org.hamcrest.Matchers.containsString; |
| 5 | +import static org.hamcrest.Matchers.is; |
| 6 | +import static org.junit.Assert.assertThat; |
| 7 | + |
| 8 | +import java.io.ByteArrayInputStream; |
| 9 | +import java.io.InputStream; |
| 10 | +import java.util.logging.Level; |
| 11 | + |
| 12 | +import com.tagtraum.perf.gcviewer.model.GCModel; |
| 13 | +import com.tagtraum.perf.gcviewer.model.GCResource; |
| 14 | +import com.tagtraum.perf.gcviewer.model.GcResourceFile; |
| 15 | +import org.junit.Test; |
| 16 | + |
| 17 | +/** |
| 18 | + * Test unified java logging G1 algorithm in OpenJDK 12 |
| 19 | + */ |
| 20 | +public class TestDataReaderUJLG1JDK12 { |
| 21 | + @Test |
| 22 | + public void testG1ArchiveRegions() throws Exception { |
| 23 | + TestLogHandler handler = new TestLogHandler(); |
| 24 | + handler.setLevel(Level.WARNING); |
| 25 | + GCResource gcResource = new GcResourceFile("byteArray"); |
| 26 | + gcResource.getLogger().addHandler(handler); |
| 27 | + InputStream in = new ByteArrayInputStream( |
| 28 | + ("[2019-09-16T20:06:59.836+0000][0.153s][info][gc,start ] GC(0) Pause Young (Normal) (G1 Evacuation Pause)\n" + |
| 29 | + "[2019-09-16T20:06:59.836+0000][0.153s][info][gc,task ] GC(0) Using 2 workers of 2 for evacuation\n" + |
| 30 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,phases ] GC(0) Pre Evacuate Collection Set: 0.0ms\n" + |
| 31 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,phases ] GC(0) Evacuate Collection Set: 3.1ms\n" + |
| 32 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,phases ] GC(0) Post Evacuate Collection Set: 0.7ms\n" + |
| 33 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,phases ] GC(0) Other: 0.4ms\n" + |
| 34 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,heap ] GC(0) Eden regions: 7->0(4)\n" + |
| 35 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,heap ] GC(0) Survivor regions: 0->1(1)\n" + |
| 36 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,heap ] GC(0) Old regions: 0->6\n" + |
| 37 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,heap ] GC(0) Archive regions: 2->2\n" + |
| 38 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,heap ] GC(0) Humongous regions: 0->0\n" + |
| 39 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,metaspace ] GC(0) Metaspace: 189K->189K(1056768K)\n" + |
| 40 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc ] GC(0) Pause Young (Normal) (G1 Evacuation Pause) 7M->7M(34M) 4.379ms\n" + |
| 41 | + "[2019-09-16T20:06:59.840+0000][0.157s][info][gc,cpu ] GC(0) User=0.00s Sys=0.01s Real=0.01s\n") |
| 42 | + .getBytes()); |
| 43 | + |
| 44 | + DataReader reader = new DataReaderUnifiedJvmLogging(gcResource, in); |
| 45 | + GCModel model = reader.read(); |
| 46 | + |
| 47 | + assertThat("number of warnings", handler.getCount(), is(0)); |
| 48 | + assertThat("number of events", model.size(), is(1)); |
| 49 | + assertThat("pause", model.get(0).getPause(), closeTo(0.004379, 0.0000001)); |
| 50 | + assertThat("name", model.get(0).getTypeAsString(), containsString("Archive regions")); |
| 51 | + } |
| 52 | + |
| 53 | +} |
0 commit comments