This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.
You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.
There is also the command ./gradlew gatherOriginals,
which will download the original, uninstrumented versions of the projects' artifacts into build/originals.
These are required for producing coverage reports.
After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:
java -jar build/libs/argo-subject.jar --helpFor a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:
java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/jsonThis will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.
You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco.
They will still be runnable, but the reported coverage will be zero.
This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:
.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers
These are the projects, which are currently supported:
| Project | Version | Instrumented Package |
|---|---|---|
| argo | 5.16 |
argo |
| fastjson | 1.2.76 |
com.alibaba.fastjson |
| genson | 1.6 |
com.owlike.genson |
| gson | 2.8.6 |
com.google.gson |
| jackson-databind | 2.12.2 |
com.fasterxml.jackson |
| json-flattener | 0.12.0 |
com.github.wnameless.json |
| json-java | 20210307 |
org.json |
| json-simple-cliftonlabs | 3.1.1 |
com.github.cliftonlabs.json_simple |
| json-simple | 1.1.1 |
org.json.simple |
| json2flat | 1.0.3 |
com.github.opendevl |
| minimal-json | 0.9.5 |
com.eclipsesource.json |
| pojo | 1.1.0 |
org.jsonschema2pojo |
| Project | Version | Instrumented Package |
|---|---|---|
| autolink | 0.10.0 |
org.nibor.autolink |
| galimatias-nu | 0.1.3 |
io.mola.galimatias |
| galimatias | 0.2.1 |
io.mola.galimatias |
| jurl | v0.4.2 |
com.anthonynsimon.url |
| url-detector | 0.1.17 |
com.linkedin.urls.detection |
| Project | Version | Instrumented Package |
|---|---|---|
| commonmark | 0.17.0 |
org.commonmark |
| flexmark | 0.34.48 |
com.vladsch.flexmark |
| markdown-papers | 1.4.4 |
org.tautua.markdownpapers |
| markdown4j | 2.2-cj-1.1 |
org.markdown4j |
| markdownj | 0.4 |
org.markdownj |
| txtmark | 0.13 |
com.github.rjeschke.txtmark |
| Project | Version | Instrumented Package |
|---|---|---|
| commons-csv | 1.8 |
org.apache.commons.csv |
| jackson-dataformat-csv | 2.12.2 |
com.fasterxml.jackson.dataformat |
| jcsv | 1.4.0 |
com.googlecode.jcsv |
| sfm-csv | 8.2.3 |
org.simpleflatmapper.csv |
| simplecsv | 2.1 |
net.quux00.simplecsv |
| super-csv | 2.4.0 |
org.supercsv |
| Project | Version | Instrumented Package | Notes |
|---|---|---|---|
| closure | v20210302 |
com.google.javascript.jscomp |
|
| nashorn-sandbox | 0.2.0 |
delight.nashornsandbox |
Delegates to Nashorn (Rhino's precursor) |
| rhino-sandbox | 0.0.15 |
delight.rhinosandox |
Not a typo. Delegates to Rhino. |
| rhino | 1.7.13 |
org.mozilla.javascript |
| Project | Version | Instrumented Package | Notes |
|---|---|---|---|
| batik-css | 1.14 |
org.apache.batik.css |
|
| css-validator | 1.0.8 |
org.w3c.css.css |
|
| cssparser | 0.9.29 |
net.sourceforge.cssparser |
|
| flute | 1.3 |
org.w3c.flute |
|
| jstyleparser | 4.0.0 |
net.sf.cssbox |
|
| ph-css | 6.3.0 |
com.helger.css |
| Project | Version | Instrumented Package |
|---|---|---|
| fastini | 1.2.1 |
com.github.onlynight.fastini |
| ini4j | 0.5.4 |
org.ini4j |
| java-configparser | 0.2 |
ca.szc.configparser |
| Project | Version | Instrumented Package |
|---|---|---|
| digraph-parser | 1.0 |
com.paypal.digraph.parser |
| graphstream | 2.0 |
org.graphstream |
| graphviz-java | 0.18.1 |
guru.nidi |