diff --git a/.travis.yml b/.travis.yml index c288b7c8f..d96ef8b43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ sudo: false env: global: - secure: PrFbSr/qjhVXrpiOzrcEMUZrnjEWJmvx5DC9QdaAmnUKpG9/7mJBQVgNziVj+GWfW84WJpkOsQf+I2lx7/cQsWQKad/t8wtypl30wGesSTpAgl5fCiKLOBAbOghKXir+WIaxtcATPPffur9OLh3ogEcmIQbVi682YUKmA5zF11JZdpCR4QONc/u+DqB29FuHru/cFiesYP0Oz82A+M0UtMcYsurKIxdKMD4YK/uSG892PUrcZU6STXlukhgQuy3PitSWkYV2KGxXMVKzWGM7dJvRggN05r/S871pscuRwZ+Doxqr9b17B3umCHi3i4KXmNH+Esb0p1mvegs0iS/b7RyA5SENre+H24n3SOeXTa3wSpTnF90XxQrDEBbY5wV7lN7MJG+pHxkOvoZt6pS3f7x2VYR8Joa4J+Gf6IDvxZMiCd1v3N1kc9ygyvJmHf5wDmLMdupk0/frojApDXfJT6bqiVL3S0FqZpXSPGAsKYf8wfn30Xz/YUBsnfUQ/a21Zz52+OTqPbt32Hf1FGYIEJSkZJUN90Q8rHVJt9zPg37xKCDuf6bxlvT040KSzuuXtizLkOnHq2rhg4Oad/JTw3d4NzPoRVzUI9qDKPrA7RdUAjmrB04Z1f3g/I6w3h2B9JTSFAzBcMZ5NYZhIqE31GQukgStaqC98y32/zo9xFs= + - secure: "WalAXxkaD+B+mMBN+1QXrsQVl90984+giSLl7dgPwTPdQ/Ka/8AlX4n53HATztgmjwgJbM+Y53YhoSR6Zaj8CRUL6WhXGwNA2q7Xma8q0WNmX8LmoBsJlw44G50yGQOv20vTRw4SqPJp58f4PQanAAs4iPuNBOMGYji4eg60pC1bV5ZNyB5HalxQQQR5PyV647Ooa4WmP3YYLlx4FWqhh33kM3pt9RUOw8ZmVYwOqZ54qJur8Tl3Hp33R7rQ/YMNIenR1wnRunNlV/g8O8xLzUM2qjW1p+XKK08SVI/EyDn1ZtNxyzuhBp1OYxwPVLD28I4r6e/nIEr8+HnBeaUX3y43AjL6x/rzr4KTyPeCNhOYLgcdLM3A5tO/ae+KPKWXBXOwkmxjq7aF6v1Qj5uC/X1Vyb8u6EZETbrx7yNymBHyWpqM4OfljCFyU1c1JjOjsEkhWzE9YoNzhG2bMTBbpUz1gSA/6UCqjhK+3LzneTR/ZmN4RmMlsqTM98E6SMiaGGhqTENIu1UwuPpzl4pv0LJdGoxvR+2aIOZrUI/mD8iuqNoy/gQGU36OiuKencbAVjXBOJXjZueW/VcJ4ivX6Ch4rnFONLKvL2z04cu9tD8IJQfJEmjEieSI44ZCh0LXrMZRJ9bjLpIbhnRbtZ4LP6eBCOtxOwiyKIoueN1y8Fk=" matrix: fast_finish: true include: diff --git a/build.xml b/build.xml index 25ed0097d..5dcdf2af2 100644 --- a/build.xml +++ b/build.xml @@ -1,4 +1,5 @@ - + @@ -11,15 +12,16 @@ - + + - + - + @@ -40,18 +42,18 @@ - + - + - + @@ -67,7 +69,7 @@ - + @@ -121,7 +123,7 @@ - + @@ -141,7 +143,7 @@ usetimestamp="true" dest="${lib.dir}/checkstyle-${checkstyle.version}-all.jar" /> - + @@ -150,6 +152,22 @@ + + + + + + + + + + @@ -169,7 +187,7 @@ - + @@ -179,17 +197,18 @@ - + - - + + + + outputtoformatters="true" fork="true" forkmode="once"> @@ -201,24 +220,34 @@ + + - + + + - + + + + + + + @@ -226,7 +255,9 @@ - + + + @@ -241,11 +272,43 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -254,6 +317,8 @@ + + diff --git a/docs/infrastructure.md b/docs/infrastructure.md index 1ebd1c7c0..7ca24b0d8 100644 --- a/docs/infrastructure.md +++ b/docs/infrastructure.md @@ -79,5 +79,9 @@ The benchmark execution is configured with `codespeed.conf` and are executed with the [ReBench](https://github.com/smarr/ReBench) tool. **SOMns Code Coverage:** -To track SOMns code coverage, we use -[Coveralls](https://coveralls.io/github/smarr/SOMns). \ No newline at end of file +To track code coverage of the SOMns code, we use +[Coveralls](https://coveralls.io/github/smarr/SOMns). + +**Java Code Coverage:** +To track code coverage of the Java code, we use +[Codacy](https://app.codacy.com/app/smarr/SOMns/dashboard). diff --git a/som b/som index acd27694d..d15346b60 100755 --- a/som +++ b/som @@ -83,9 +83,10 @@ tools.add_argument('-TF', '--disable-trace-file', help='trace file wont be writt dest='disable_trace_file', action='store_true', default=False) tools.add_argument('-r', '--replay', help='execution of the program is guided by an existing trace file', dest='replay', action='store_true', default=False) -tools.add_argument('--coverage', help='determine code coverage and store in given file', +tools.add_argument('--coverage', help='determine SOMns code coverage and store in given file', dest='coverage', default=None) - +tools.add_argument('--java-coverage', help='determine Java code coverage and store in given file', + dest='java_coverage', default=None) parser.add_argument('-o', '--only', help='only compile give methods, comma separated list', dest='only_compile', default=None) @@ -248,6 +249,9 @@ if args.truffle_profile: if args.coverage: SOM_ARGS += ['--coverage', args.coverage] +if args.java_coverage: + flags += ['-javaagent:libs/jacoco/lib/jacocoagent.jar=inclbootstrapclasses=true,destfile=' + args.java_coverage] + if args.web_debugger: SOM_ARGS += ['--web-debug'] if args.dynamic_metrics: diff --git a/tests/dym/test.sh b/tests/dym/test.sh index aa3f2b6d2..c21e55aac 100755 --- a/tests/dym/test.sh +++ b/tests/dym/test.sh @@ -13,6 +13,11 @@ popd > /dev/null SOM_DIR=$SCRIPT_PATH/../.. +if [ "$1" = "--coverage" ] +then + COVERAGE="--java-coverage $SOM_DIR/jacoco.exec --coverage $SOM_DIR/all.gcov " +fi + ## create folder for new results mkdir -p $SCRIPT_PATH/results/ @@ -22,7 +27,7 @@ tar xf $SCRIPT_PATH/expected-results.tar.bz2 -C $SCRIPT_PATH/ function runBenchmark { BENCH=$1 HARNESS="$SOM_DIR/som -dm -Ddm.metrics=$SCRIPT_PATH/results/$BENCH \ - --coverage $SOM_DIR/all.gcov \ + $COVERAGE \ -G $SOM_DIR/core-lib/Benchmarks/Harness.ns" echo $HARNESS $@ $HARNESS $@ diff --git a/tests/java/som/tests/VMTests.java b/tests/java/som/tests/VMTests.java index 021a4c48b..cc78371c5 100644 --- a/tests/java/som/tests/VMTests.java +++ b/tests/java/som/tests/VMTests.java @@ -58,10 +58,15 @@ public void testProcessArgumentsWithAppFileAndArgs() { @Test public void testProfileFlag() { - VmOptions opts = new VmOptions( - new String[] {"--profile"}); - assertEquals(opts.platformFile, VmOptions.STANDARD_PLATFORM_FILE); - assertTrue(opts.profilingEnabled); - assertArrayEquals(opts.args, new String[0]); + try { + VmOptions opts = new VmOptions( + new String[] {"--profile"}); + assertEquals(opts.platformFile, VmOptions.STANDARD_PLATFORM_FILE); + assertTrue(opts.profilingEnabled); + assertArrayEquals(opts.args, new String[0]); + } catch (IllegalStateException e) { + assertTrue("If it fails, expect that it complains that instrumentation is not enabled", + e.getMessage().contains(VmSettings.INSTRUMENTATION_PROP)); + } } }