diff --git a/Dockerfile b/Dockerfile index c27f4885b746381a8e5fbb99786447c73d151e56..71f66de20f2f1cca20261ed4508ebb1f7447acc2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,8 +39,7 @@ RUN ./gradlew --no-daemon preprocess \ && ./gradlew --no-daemon build shadowJar -x test \ && ./scripts/configure.sh 1 1 900 10 \ && ./gradlew --no-daemon generate \ - && ./scripts/configure.sh 1 1024 900 10 \ - && ./gradlew --no-daemon initScripts + && ./scripts/configure.sh 1 1024 900 10 # USER root diff --git a/README.html b/README.html index a7ef1a6bfadc290793a1b1e729b7f1349472d8e1..805d15c5c77af670d9eb970465bfcb3593e1fc8a 100644 --- a/README.html +++ b/README.html @@ -1,11 +1,19 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <meta http-equiv="Content-Style-Type" content="text/css" /> + <meta charset="utf-8" /> <meta name="generator" content="pandoc" /> - <title></title> - <style type="text/css">code{white-space: pre;}</style> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>README</title> + <style type="text/css"> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + span.underline{text-decoration: underline;} + div.column{display: inline-block; vertical-align: top; width: 50%;} + </style> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> <style type="text/css"> table { border-spacing: 0; @@ -33,7 +41,7 @@ </style> </head> <body> -<h1 id="artifacts-for-continuous-model-validation-using-reference-attribute-grammars">Artifacts for "Continuous Model Validation Using Reference Attribute Grammars"</h1> +<h1 id="artifacts-for-continuous-model-validation-using-reference-attribute-grammars">Artifacts for “Continuous Model Validation Using Reference Attribute Grammars”</h1> <p><em>Note: There is a variant of this submission including a docker image (provided as a link) and one without it (uploaded in HotCRP). We encourage using the one including the image, since building the image takes a long time.</em></p> <h3 id="authors">Authors</h3> <ul> @@ -110,7 +118,7 @@ <h2 id="the-train-benchmark">The Train Benchmark</h2> <h3 id="structure-of-the-train-benchmark">Structure of the Train Benchmark</h3> <p>The benchmark is able to measure different scenarios specified by configurations with several kinds of parameters:</p> -<ol style="list-style-type: decimal"> +<ol type="1"> <li><strong>Input Data:</strong> There are two types of input data used in the benchmark, the <code>inject</code> and the <code>repair</code> data set. The former contains <em>valid</em> models, i.e., models, which do not contain any of the faults that are supposed to be found by the presented queries. The latter, <code>repair</code>, contains models already containing faults.</li> <li><strong>Queries:</strong> The queries are used to find the aforementioned faults. For each fault, there are two queries: <em>repair</em>, to find the fault, and <em>inject</em>, to find places where a fault can be injected.</li> <li><strong>Transformations:</strong> The transformations performed by the benchmark are, again, two sets: <em>inject</em> and <em>repair</em> transformations.</li> @@ -236,12 +244,10 @@ <ul> <li>run <code>./gradlew preprocess</code> to generate the grammar from the extended grammar specification</li> <li>run <code>./gradlew build shadowJar -x test</code></li> -<li>run <code>./gradlew initScripts</code></li> <li>configure the scripts by running <code>./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS></code> <ul> <li>Where MAXSIZE is one of 2, 4, 8, 16, 32, 64, 128, 256, 512, or, 1024. The larger sizes use <strong>a lot of</strong> disk space!</li> </ul></li> -<li>run <code>./gradlew initScripts</code></li> <li>run <code>./gradlew generate</code></li> <li>run the benchmark <ul> diff --git a/README.md b/README.md index 52008ac51f6d76a0913d48fd5d63375d0e304237..52503e99458e57f6ffe40e2045ee81378604c07b 100644 --- a/README.md +++ b/README.md @@ -181,10 +181,8 @@ However, since there are some software requirements imposed by the benchmark, pa - For running a custom run, - run `./gradlew preprocess` to generate the grammar from the extended grammar specification - run `./gradlew build shadowJar -x test` - - run `./gradlew initScripts` - configure the scripts by running `./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS>` - Where MAXSIZE is one of 2, 4, 8, 16, 32, 64, 128, 256, 512, or, 1024. The larger sizes use **a lot of** disk space! - - run `./gradlew initScripts` - run `./gradlew generate` - run the benchmark - run `./gradlew individualInjectBenchmark` for the *inject* scenarios diff --git a/README.txt b/README.txt index 52008ac51f6d76a0913d48fd5d63375d0e304237..52503e99458e57f6ffe40e2045ee81378604c07b 100644 --- a/README.txt +++ b/README.txt @@ -181,10 +181,8 @@ However, since there are some software requirements imposed by the benchmark, pa - For running a custom run, - run `./gradlew preprocess` to generate the grammar from the extended grammar specification - run `./gradlew build shadowJar -x test` - - run `./gradlew initScripts` - configure the scripts by running `./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS>` - Where MAXSIZE is one of 2, 4, 8, 16, 32, 64, 128, 256, 512, or, 1024. The larger sizes use **a lot of** disk space! - - run `./gradlew initScripts` - run `./gradlew generate` - run the benchmark - run `./gradlew individualInjectBenchmark` for the *inject* scenarios diff --git a/create_release.sh b/create_release.sh index 46ff9f49926e074391e09f054162df083a3a263c..b2940fb8b306318d1e55369493f8cdfebd667e6b 100755 --- a/create_release.sh +++ b/create_release.sh @@ -21,4 +21,4 @@ rm -rf ModelValidationWithRAGs/trainbenchmark/*/src/main/java-gen/* rm -f ModelValidationWithRAGs/trainbenchmark/trainbenchmark-tool-jastadd-specialized-base/src/main/jastadd/TrainGen.* rm ModelValidationWithRAGs/preprocessor/.gitignore -echo "Now please run 'sudo docker save --output ModelValidationWithRAGs/trainbenchmark-docker.tar trainbenchmark && sudo chown $(whoami):$(whoami) ModelValidationWithRAGs/trainbenchmark-docker.tar'" +echo "Now please run '( cd ModelValidationWithRAGs/ && docker build -t trainbenchmark . ) && docker save --output ModelValidationWithRAGs/trainbenchmark-docker.tar trainbenchmark && chown $(whoami):$(whoami) ModelValidationWithRAGs/trainbenchmark-docker.tar'" diff --git a/trainbenchmark/build.gradle b/trainbenchmark/build.gradle index b1100c7a18d188139cd80ce46900b8a82d4294db..d9fb6e0f0166e1f90b289205ef0c4ed46f87cedb 100644 --- a/trainbenchmark/build.gradle +++ b/trainbenchmark/build.gradle @@ -20,7 +20,7 @@ subprojects { maven { url "https://repo.eclipse.org/content/groups/viatra2" } maven { url "https://oss.sonatype.org/content/repositories/snapshots" } maven { url "https://dl.bintray.com/ftsrg/maven" } - maven { url "http://repo1.maven.org/maven2/" } + maven { url "https://repo1.maven.org/maven2/" } } } diff --git a/trainbenchmark/docs/advanced b/trainbenchmark/docs/advanced index 5c0159e23a1a09823e8c1a8cbd3bd9ea5603af61..9a26f62e25ecca2e893d16d2aeff392d4c2f37ca 100644 --- a/trainbenchmark/docs/advanced +++ b/trainbenchmark/docs/advanced @@ -8,7 +8,6 @@ echo -e "\033[1;91mGeneration of test-models" echo -e "\033[0mFor example to change the maxSize option. Can be configured inside:" echo -e "* trainbenchmark-scripts/src-template/GeneratorScript.groovy" echo -e "When you are finished, run:" -echo -e "* ./gradlew initScripts" echo -e "* ./gradlew generate" echo -e "" echo -e "\033[1;91mBenchmarking" @@ -16,6 +15,5 @@ echo -e "\033[0mCan be configured inside:" echo -e "* trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy" echo -e "* trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy" echo -e "When you are finished, run:" -echo -e "* ./gradlew initScripts" echo -e "* ./gradlew individualInjectBenchmark" echo -e "* ./gradlew individualRepairBenchmark" diff --git a/trainbenchmark/docs/getting-started.md b/trainbenchmark/docs/getting-started.md index 766d87093e7a20afd26c4fdfc6b00915529977c0..8d61a3634234a00c55aa8c6a8dd22ba089d90928 100644 --- a/trainbenchmark/docs/getting-started.md +++ b/trainbenchmark/docs/getting-started.md @@ -8,15 +8,12 @@ The benchmark requires a 64-bit operating system. We recommend Ubuntu-based Linu ### Setup -* Initialization - * [`install-jdk.sh`](scripts/install-jdk.sh): installs [Oracle JDK 8](https://github.com/FTSRG/cheat-sheets/wiki/Linux-packages#oracle-jdk) - * [`./gradlew initScripts`](trainbenchmark-scripts/build.gradle): intializes the Groovy scripts for the [generate](trainbenchmark-scripts/src-template/GeneratorScript.groovy) and the [benchmark](trainbenchmark-scripts/src-template/BenchmarkScript.groovy) goals. +* [`install-jdk.sh`](scripts/install-jdk.sh): installs [Oracle JDK 8](https://github.com/FTSRG/cheat-sheets/wiki/Linux-packages#oracle-jdk) Provided that you start with a fresh Ubuntu server installation, you can run the provided install scripts like this: ```bash -scripts/install-jdk.sh && \ -./gradlew initScripts +scripts/install-jdk.sh ``` #### Optional dependencies diff --git a/trainbenchmark/run_full b/trainbenchmark/run_full index a93a8284ac9a7819efe6cdd5992bcf83e445fc10..4ecbfaaf94936f05f3abd640ddc9efd86a4c37a6 100755 --- a/trainbenchmark/run_full +++ b/trainbenchmark/run_full @@ -1,5 +1,4 @@ ./scripts/configure.sh 1 512 900 10 -./gradlew initScripts --offline ./gradlew generate --offline ./gradlew individualInjectBenchmark --offline ./gradlew plotIndividual --offline diff --git a/trainbenchmark/run_medium b/trainbenchmark/run_medium index 715e42ad649ab4a0e40429b47ff771052adcb994..6832f16c9aabf8c987acfb7293afcf799355f275 100755 --- a/trainbenchmark/run_medium +++ b/trainbenchmark/run_medium @@ -1,5 +1,4 @@ ./scripts/configure.sh 1 64 600 5 -./gradlew initScripts --offline ./gradlew generate --offline ./gradlew individualInjectBenchmark --offline ./gradlew plotIndividual --offline diff --git a/trainbenchmark/run_small b/trainbenchmark/run_small index d017fb53c7a693c2795fb82643badc2305522a55..501b2e7475b709be41585f1d992e2b8b875a49ca 100755 --- a/trainbenchmark/run_small +++ b/trainbenchmark/run_small @@ -1,5 +1,4 @@ ./scripts/configure.sh 1 32 60 1 -./gradlew initScripts --offline ./gradlew generate --offline ./gradlew individualInjectBenchmark --offline ./gradlew plotIndividual --offline diff --git a/trainbenchmark/scripts/configure.sh b/trainbenchmark/scripts/configure.sh index 96278c8581a6fe322bc62c27f70aeb33c9775696..54ca075ea03aafd5c24bca06c1ce47c08b47c429 100755 --- a/trainbenchmark/scripts/configure.sh +++ b/trainbenchmark/scripts/configure.sh @@ -28,14 +28,12 @@ echo -e "\\033[1;91mBenchmark:" echo -e "\\033[0m ./gradlew individualInjectBenchmark" echo " ./gradlew individualRepairBenchmark" -sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/GeneratorScript.groovy -sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/GeneratorScript.groovy -sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy -sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy -sed -i "s/^def timeout =.*/def timeout = $TIMEOUT/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy -sed -i "s/^def runs =.*/def runs = $RUNS/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkInjectScript.groovy -sed -i "s/^def minSize =.*/def minSize = $MINSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy -sed -i "s/^def maxSize =.*/def maxSize = $MAXSIZE/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy -sed -i "s/^def timeout =.*/def timeout = $TIMEOUT/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy -sed -i "s/^def runs =.*/def runs = $RUNS/" ./trainbenchmark-scripts/src-template/IndividualBenchmarkRepairScript.groovy -./gradlew --no-daemon initScripts +cat <<EOF > ./trainbenchmark-scripts/src/main/resources/local-basic-settings.json +{ + "minSize": $MINSIZE, + "maxSize": $MAXSIZE, + "timeout": $TIMEOUT, + "runs": $RUNS, + "dry-run": false +} +EOF