From 18dc9cb8f003786a5ce26b3342d0a4d798857415 Mon Sep 17 00:00:00 2001 From: John Bergqvist <31512273+JohnLBergqvist@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:12:50 +0100 Subject: [PATCH 1/6] Add shaded jar omitting keys & de-scope provided dependencies --- pom.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pom.xml b/pom.xml index c97c49a..863254e 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,32 @@ + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + target/${project.artifactId}-${project.version}-with-dependencies.jar + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + package + + shade + + + + From 4c4c9f46d8081a29001b9783b6a50672e572816c Mon Sep 17 00:00:00 2001 From: John Bergqvist <31512273+JohnLBergqvist@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:13:46 +0100 Subject: [PATCH 2/6] Add Diffblue dependencies --- pom.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pom.xml b/pom.xml index 863254e..23d006b 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,30 @@ commons-codec 1.11 + + org.powermock + powermock-api-mockito + 1.6.6 + test + + + org.powermock + powermock-module-junit4 + 1.6.6 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + com.diffblue + deeptestutils + 1.9.0 + test + From c1cd009d892a622a44e9018ec23c5a59fb2ab47c Mon Sep 17 00:00:00 2001 From: John Bergqvist <31512273+JohnLBergqvist@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:16:57 +0100 Subject: [PATCH 3/6] Add JaCoCo configuration with Surefire in parallel --- pom.xml | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 23d006b..6a77e9a 100644 --- a/pom.xml +++ b/pom.xml @@ -61,6 +61,13 @@ 1.9.0 test + + org.jacoco + org.jacoco.agent + 0.8.4 + test + runtime + @@ -77,9 +84,13 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.1 + 3.0.0-M3 - false + -Djacoco-agent.destfile=${project.build.directory}/jacoco.exec + 0.5C + 600 + false + true @@ -130,6 +141,68 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.4 + + + instrument + process-test-classes + + instrument + + + + restore-instrumented-classes + test + + restore-instrumented-classes + + + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 3.0.0-M3 + + false + false + + + + + report + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.4 + + + + report + + + + + + From 42667e14d001720b802cca21a0eb71a1dcfa224d Mon Sep 17 00:00:00 2001 From: John Bergqvist <31512273+JohnLBergqvist@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:18:59 +0100 Subject: [PATCH 4/6] Delete unused YML file --- diffblue.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 diffblue.yml diff --git a/diffblue.yml b/diffblue.yml deleted file mode 100644 index 107ecbc..0000000 --- a/diffblue.yml +++ /dev/null @@ -1,5 +0,0 @@ -ignoreExistingCoverage: true -cbmcArguments: - # Because tic-tac-toe has 9 squares, we need to unwind the loops 10 times - # This will be auto-detected in a future version - max-nondet-array-length: 10 From b2abf153b5e2975ca0eb128a627736f5333d7d47 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 27 Sep 2019 15:28:24 +0100 Subject: [PATCH 5/6] Update settings to load fat jar but not analyse dependencies With all dependencies on the classpath but "context-excluded", we expect the coverage to be the same as before after this change, and the analysis time should not be much longer. --- diffblue-base.json | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 diffblue-base.json diff --git a/diffblue-base.json b/diffblue-base.json new file mode 100644 index 0000000..173e016 --- /dev/null +++ b/diffblue-base.json @@ -0,0 +1,21 @@ +{ + "phaseBase": { + "preferDepsJar": true, + "context-include": [ + "com.diffblue.javademo.", + "com.diffblue.annotation.", + "java.", + "org.cprover.", + "org.slf4j.helpers.MarkerIgnoringBase", + "org.slf4j.helpers.NamedLoggerBase", + "org.slf4j.helpers.NOPLogger", + "org.slf4j.ILoggerFactory", + "org.slf4j.Logger", + "org.slf4j.LoggerFactory", + "org.slf4j.Marker", + "sun.misc.", + "sun.nio.cs.", + "sun.util." + ] + } +} From 1f49d6cf04fda767044df872b870f49644fb5a7c Mon Sep 17 00:00:00 2001 From: Peter Schrammel Date: Wed, 18 Dec 2019 16:08:45 +0000 Subject: [PATCH 6/6] Some tricky cases that lead to unexpected results --- .../com/diffblue/javademo/TrickyCases.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/diffblue/javademo/TrickyCases.java diff --git a/src/main/java/com/diffblue/javademo/TrickyCases.java b/src/main/java/com/diffblue/javademo/TrickyCases.java new file mode 100644 index 0000000..769c835 --- /dev/null +++ b/src/main/java/com/diffblue/javademo/TrickyCases.java @@ -0,0 +1,55 @@ +package com.diffblue.javademo; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Date; + +public class TrickyCases { + + /** + * Delete a file. + **/ + public static boolean deleteFile(String filename) throws IOException { + File file = new File("target"); + file.delete(); + return true; + } + + /** + * Open a file. + **/ + public static boolean openFile(String filename) throws IOException { + BufferedReader reader = new BufferedReader(new FileReader("target")); + String line; + while ((line = reader.readLine()) != null) { + } + reader.close(); + return true; + } + + /** + * Create a new file. + **/ + public static boolean createFile(String filename) throws IOException { + File file = new File("target"); + file.createNewFile(); + return true; + } + + /** + * Return a random number. + **/ + public static double random() { + return Math.random(); + } + + /** + * Return the current date. + **/ + public static Date now() { + return new Date(); + } + +}