aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core.test
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2016-03-21 23:06:48 +0100
committerEvgeny Mandrikov <mandrikov@gmail.com>2016-03-21 23:06:48 +0100
commitea2f49f6c77730315b9bd72607108482c932eb83 (patch)
tree0a88a60268f85bb960733c324f17a5e14ff4ea39 /org.jacoco.core.test
parent164485a8da42d834df4b5202079b2f2b2ac28b26 (diff)
downloadjacoco-ea2f49f6c77730315b9bd72607108482c932eb83.tar.gz
Don't write empty probe arrays
This optimizations reduces the size of exec files significantly in setups where execution data is dumped after every test case.
Diffstat (limited to 'org.jacoco.core.test')
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataReaderWriterTest.java28
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataTest.java16
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/tools/ExecFileLoaderTest.java4
3 files changed, 36 insertions, 12 deletions
diff --git a/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataReaderWriterTest.java b/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataReaderWriterTest.java
index 11545d4d..d5db8ec0 100644
--- a/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataReaderWriterTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataReaderWriterTest.java
@@ -151,7 +151,7 @@ public class ExecutionDataReaderWriterTest {
public void testMissingHeader() throws IOException {
buffer.reset();
writer.visitClassExecution(new ExecutionData(Long.MIN_VALUE, "Sample",
- createData(0)));
+ createData(8)));
createReaderWithVisitors().read();
}
@@ -206,13 +206,13 @@ public class ExecutionDataReaderWriterTest {
@Test(expected = IOException.class)
public void testNoExecutionDataVisitor() throws IOException {
writer.visitClassExecution(new ExecutionData(Long.MIN_VALUE, "Sample",
- createData(0)));
+ createData(8)));
createReader().read();
}
@Test
public void testMinClassId() throws IOException {
- final boolean[] data = createData(0);
+ final boolean[] data = createData(8);
writer.visitClassExecution(new ExecutionData(Long.MIN_VALUE, "Sample",
data));
assertFalse(createReaderWithVisitors().read());
@@ -221,7 +221,7 @@ public class ExecutionDataReaderWriterTest {
@Test
public void testMaxClassId() throws IOException {
- final boolean[] data = createData(0);
+ final boolean[] data = createData(8);
writer.visitClassExecution(new ExecutionData(Long.MAX_VALUE, "Sample",
data));
assertFalse(createReaderWithVisitors().read());
@@ -233,12 +233,20 @@ public class ExecutionDataReaderWriterTest {
final boolean[] data = createData(0);
writer.visitClassExecution(new ExecutionData(3, "Sample", data));
assertFalse(createReaderWithVisitors().read());
- assertArrayEquals(data, store.get(3).getProbes());
+ assertTrue(store.getContents().isEmpty());
+ }
+
+ @Test
+ public void testNoHitClass() throws IOException {
+ final boolean[] data = new boolean[] { false, false, false };
+ writer.visitClassExecution(new ExecutionData(3, "Sample", data));
+ assertFalse(createReaderWithVisitors().read());
+ assertTrue(store.getContents().isEmpty());
}
@Test
public void testOneClass() throws IOException {
- final boolean[] data = createData(5);
+ final boolean[] data = createData(15);
writer.visitClassExecution(new ExecutionData(3, "Sample", data));
assertFalse(createReaderWithVisitors().read());
assertArrayEquals(data, store.get(3).getProbes());
@@ -246,8 +254,8 @@ public class ExecutionDataReaderWriterTest {
@Test
public void testTwoClasses() throws IOException {
- final boolean[] data1 = createData(5);
- final boolean[] data2 = createData(7);
+ final boolean[] data1 = createData(15);
+ final boolean[] data2 = createData(185);
writer.visitClassExecution(new ExecutionData(333, "Sample", data1));
writer.visitClassExecution(new ExecutionData(-45, "Sample", data2));
assertFalse(createReaderWithVisitors().read());
@@ -257,7 +265,7 @@ public class ExecutionDataReaderWriterTest {
@Test
public void testBigClass() throws IOException {
- final boolean[] data = createData(117);
+ final boolean[] data = createData(3599);
writer.visitClassExecution(new ExecutionData(123, "Sample", data));
assertFalse(createReaderWithVisitors().read());
assertArrayEquals(data, store.get(123).getProbes());
@@ -290,7 +298,7 @@ public class ExecutionDataReaderWriterTest {
}
private boolean[] createData(final int probeCount) {
- final boolean[] data = new boolean[random.nextInt(probeCount + 1)];
+ final boolean[] data = new boolean[probeCount];
for (int j = 0; j < data.length; j++) {
data[j] = random.nextBoolean();
}
diff --git a/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataTest.java b/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataTest.java
index 541ddb33..5dbe6204 100644
--- a/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/data/ExecutionDataTest.java
@@ -54,6 +54,22 @@ public class ExecutionDataTest {
}
@Test
+ public void testHasHits() {
+ final boolean[] probes = new boolean[] { false, false, false };
+ final ExecutionData e = new ExecutionData(5, "Example", probes);
+ assertFalse(e.hasHits());
+ probes[1] = true;
+ assertTrue(e.hasHits());
+ }
+
+ @Test
+ public void testHasHits_empty() {
+ final boolean[] probes = new boolean[] {};
+ final ExecutionData e = new ExecutionData(5, "Example", probes);
+ assertFalse(e.hasHits());
+ }
+
+ @Test
public void testMerge() {
final ExecutionData a = new ExecutionData(5, "Example", new boolean[] {
false, true, false, true });
diff --git a/org.jacoco.core.test/src/org/jacoco/core/tools/ExecFileLoaderTest.java b/org.jacoco.core.test/src/org/jacoco/core/tools/ExecFileLoaderTest.java
index 654dfc81..b8bdc945 100644
--- a/org.jacoco.core.test/src/org/jacoco/core/tools/ExecFileLoaderTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/tools/ExecFileLoaderTest.java
@@ -28,7 +28,6 @@ import org.jacoco.core.data.ExecutionDataStore;
import org.jacoco.core.data.ExecutionDataWriter;
import org.jacoco.core.data.SessionInfo;
import org.jacoco.core.data.SessionInfoStore;
-import org.jacoco.core.tools.ExecFileLoader;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -119,7 +118,8 @@ public class ExecFileLoaderTest {
final FileOutputStream out = new FileOutputStream(file);
final ExecutionDataWriter writer = new ExecutionDataWriter(out);
final int value = id.length();
- writer.visitClassExecution(new ExecutionData(value, id, new boolean[0]));
+ writer.visitClassExecution(new ExecutionData(value, id,
+ new boolean[] { true }));
writer.visitSessionInfo(new SessionInfo(id, value, value));
out.close();
return file;