From c3b79e0caf84e40d3b669aa89dad5e2b15f6e328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9lio=20Brun?= <lb@leliobrun.net> Date: Fri, 3 Mar 2023 16:09:26 +0900 Subject: [PATCH] Update the test architecture to handle JSON config --- README.md | 19 ++- lustrec_tests/dune | 13 ++ .../Abs1_PP.LUSTREC.lus | 0 .../Assignment1.LUSTREC.lus | 0 .../BitwiseXOR_int8_PP.LUSTREC.lus | 0 .../Clock_PP.LUSTREC.lus | 0 .../ForEach1_PP.LUSTREC.lus | 0 .../LookupTable1D_2points_PP.LUSTREC.lus | 0 .../Product1.LUSTREC.lus | 0 .../SYNAPSE_1.lus | 0 .../UnitDelay_PP.LUSTREC.lus | 0 .../_6counter.lus | 0 .../clocks1.lus | 0 lustrec_tests/minimal_tests/config.json | 5 + lustrec_tests/minimal_tests/dune | 1 + .../hysteresis_1.lus | 0 .../inv_M_2x2.LUSTREC.lus | 0 .../test.ml | 0 .../two_counters.lus | 0 lustrec_tests/minimal_tests_O1/dune | 13 -- lustrec_tests/minimal_tests_O1/ignored | 0 .../minimal_tests_O2/Abs1_PP.LUSTREC.lus | 1 - .../minimal_tests_O2/Assignment1.LUSTREC.lus | 1 - .../BitwiseXOR_int8_PP.LUSTREC.lus | 1 - .../minimal_tests_O2/Clock_PP.LUSTREC.lus | 1 - .../minimal_tests_O2/ForEach1_PP.LUSTREC.lus | 1 - .../LookupTable1D_2points_PP.LUSTREC.lus | 1 - .../minimal_tests_O2/Product1.LUSTREC.lus | 1 - lustrec_tests/minimal_tests_O2/SYNAPSE_1.lus | 1 - .../minimal_tests_O2/UnitDelay_PP.LUSTREC.lus | 1 - lustrec_tests/minimal_tests_O2/_6counter.lus | 1 - lustrec_tests/minimal_tests_O2/clocks1.lus | 1 - lustrec_tests/minimal_tests_O2/dune | 13 -- .../minimal_tests_O2/hysteresis_1.lus | 1 - lustrec_tests/minimal_tests_O2/ignored | 0 .../minimal_tests_O2/inv_M_2x2.LUSTREC.lus | 1 - .../minimal_tests_O2/two_counters.lus | 1 - .../minimal_tests_O3/Abs1_PP.LUSTREC.lus | 1 - .../minimal_tests_O3/Assignment1.LUSTREC.lus | 1 - .../BitwiseXOR_int8_PP.LUSTREC.lus | 1 - .../minimal_tests_O3/Clock_PP.LUSTREC.lus | 1 - .../minimal_tests_O3/ForEach1_PP.LUSTREC.lus | 1 - .../LookupTable1D_2points_PP.LUSTREC.lus | 1 - .../minimal_tests_O3/Product1.LUSTREC.lus | 1 - lustrec_tests/minimal_tests_O3/SYNAPSE_1.lus | 1 - .../minimal_tests_O3/UnitDelay_PP.LUSTREC.lus | 1 - lustrec_tests/minimal_tests_O3/_6counter.lus | 1 - lustrec_tests/minimal_tests_O3/clocks1.lus | 1 - lustrec_tests/minimal_tests_O3/dune | 13 -- .../minimal_tests_O3/hysteresis_1.lus | 1 - lustrec_tests/minimal_tests_O3/ignored | 0 .../minimal_tests_O3/inv_M_2x2.LUSTREC.lus | 1 - lustrec_tests/minimal_tests_O3/test.ml | 1 - .../minimal_tests_O3/two_counters.lus | 1 - .../Abs1_PP.LUSTREC.lus | 1 - .../Assignment1.LUSTREC.lus | 1 - .../BitwiseXOR_int8_PP.LUSTREC.lus | 1 - .../Clock_PP.LUSTREC.lus | 1 - .../ForEach1_PP.LUSTREC.lus | 1 - .../LookupTable1D_2points_PP.LUSTREC.lus | 1 - .../Product1.LUSTREC.lus | 1 - .../SYNAPSE_1.lus | 1 - .../UnitDelay_PP.LUSTREC.lus | 1 - .../_6counter.lus | 1 - .../clocks1.lus | 1 - .../minimal_tests_wo_optimizations/dune | 13 -- .../hysteresis_1.lus | 1 - .../minimal_tests_wo_optimizations/ignored | 0 .../inv_M_2x2.LUSTREC.lus | 1 - .../minimal_tests_wo_optimizations/test.ml | 1 - .../two_counters.lus | 1 - lustrec_tests/offline_tests/config.json | 5 + lustrec_tests/offline_tests/dune | 14 +- lustrec_tests/stopwatch_test/config.json | 4 + lustrec_tests/stopwatch_test/dune | 1 + .../simple_stopwatch.lus | 0 .../test.ml | 0 lustrec_tests/stopwatch_test_O1/dune | 13 -- lustrec_tests/stopwatch_test_O1/ignored | 0 lustrec_tests/stopwatch_test_O1/test.ml | 1 - lustrec_tests/stopwatch_test_O2/dune | 13 -- lustrec_tests/stopwatch_test_O2/ignored | 0 .../stopwatch_test_O2/simple_stopwatch.lus | 1 - lustrec_tests/stopwatch_test_O2/test.ml | 1 - lustrec_tests/stopwatch_test_O3/dune | 13 -- lustrec_tests/stopwatch_test_O3/ignored | 0 .../stopwatch_test_O3/simple_stopwatch.lus | 1 - lustrec_tests/stopwatch_test_O3/test.ml | 1 - .../stopwatch_test_wo_optimizations/dune | 13 -- .../stopwatch_test_wo_optimizations/ignored | 0 .../simple_stopwatch.lus | 1 - .../stopwatch_test_wo_optimizations/test.ml | 1 - lustrec_tests/test.ml | 131 +++++++++++------- 93 files changed, 124 insertions(+), 224 deletions(-) create mode 100644 lustrec_tests/dune rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/Abs1_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/Assignment1.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/BitwiseXOR_int8_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/Clock_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/ForEach1_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/LookupTable1D_2points_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/Product1.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/SYNAPSE_1.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/UnitDelay_PP.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/_6counter.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/clocks1.lus (100%) create mode 100644 lustrec_tests/minimal_tests/config.json create mode 120000 lustrec_tests/minimal_tests/dune rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/hysteresis_1.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/inv_M_2x2.LUSTREC.lus (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/test.ml (100%) rename lustrec_tests/{minimal_tests_O1 => minimal_tests}/two_counters.lus (100%) delete mode 100644 lustrec_tests/minimal_tests_O1/dune delete mode 100644 lustrec_tests/minimal_tests_O1/ignored delete mode 120000 lustrec_tests/minimal_tests_O2/Abs1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/Assignment1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/BitwiseXOR_int8_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/Clock_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/ForEach1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/LookupTable1D_2points_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/Product1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/SYNAPSE_1.lus delete mode 120000 lustrec_tests/minimal_tests_O2/UnitDelay_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/_6counter.lus delete mode 120000 lustrec_tests/minimal_tests_O2/clocks1.lus delete mode 100644 lustrec_tests/minimal_tests_O2/dune delete mode 120000 lustrec_tests/minimal_tests_O2/hysteresis_1.lus delete mode 100644 lustrec_tests/minimal_tests_O2/ignored delete mode 120000 lustrec_tests/minimal_tests_O2/inv_M_2x2.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O2/two_counters.lus delete mode 120000 lustrec_tests/minimal_tests_O3/Abs1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/Assignment1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/BitwiseXOR_int8_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/Clock_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/ForEach1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/LookupTable1D_2points_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/Product1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/SYNAPSE_1.lus delete mode 120000 lustrec_tests/minimal_tests_O3/UnitDelay_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/_6counter.lus delete mode 120000 lustrec_tests/minimal_tests_O3/clocks1.lus delete mode 100644 lustrec_tests/minimal_tests_O3/dune delete mode 120000 lustrec_tests/minimal_tests_O3/hysteresis_1.lus delete mode 100644 lustrec_tests/minimal_tests_O3/ignored delete mode 120000 lustrec_tests/minimal_tests_O3/inv_M_2x2.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_O3/test.ml delete mode 120000 lustrec_tests/minimal_tests_O3/two_counters.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/Abs1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/Assignment1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/BitwiseXOR_int8_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/Clock_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/ForEach1_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/LookupTable1D_2points_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/Product1.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/SYNAPSE_1.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/UnitDelay_PP.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/_6counter.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/clocks1.lus delete mode 100644 lustrec_tests/minimal_tests_wo_optimizations/dune delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/hysteresis_1.lus delete mode 100644 lustrec_tests/minimal_tests_wo_optimizations/ignored delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/inv_M_2x2.LUSTREC.lus delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/test.ml delete mode 120000 lustrec_tests/minimal_tests_wo_optimizations/two_counters.lus create mode 100644 lustrec_tests/offline_tests/config.json mode change 100644 => 120000 lustrec_tests/offline_tests/dune create mode 100644 lustrec_tests/stopwatch_test/config.json create mode 120000 lustrec_tests/stopwatch_test/dune rename lustrec_tests/{stopwatch_test_O1 => stopwatch_test}/simple_stopwatch.lus (100%) rename lustrec_tests/{minimal_tests_O2 => stopwatch_test}/test.ml (100%) delete mode 100644 lustrec_tests/stopwatch_test_O1/dune delete mode 100644 lustrec_tests/stopwatch_test_O1/ignored delete mode 120000 lustrec_tests/stopwatch_test_O1/test.ml delete mode 100644 lustrec_tests/stopwatch_test_O2/dune delete mode 100644 lustrec_tests/stopwatch_test_O2/ignored delete mode 120000 lustrec_tests/stopwatch_test_O2/simple_stopwatch.lus delete mode 120000 lustrec_tests/stopwatch_test_O2/test.ml delete mode 100644 lustrec_tests/stopwatch_test_O3/dune delete mode 100644 lustrec_tests/stopwatch_test_O3/ignored delete mode 120000 lustrec_tests/stopwatch_test_O3/simple_stopwatch.lus delete mode 120000 lustrec_tests/stopwatch_test_O3/test.ml delete mode 100644 lustrec_tests/stopwatch_test_wo_optimizations/dune delete mode 100644 lustrec_tests/stopwatch_test_wo_optimizations/ignored delete mode 120000 lustrec_tests/stopwatch_test_wo_optimizations/simple_stopwatch.lus delete mode 120000 lustrec_tests/stopwatch_test_wo_optimizations/test.ml diff --git a/README.md b/README.md index 4c47961f..8578ceb2 100644 --- a/README.md +++ b/README.md @@ -155,19 +155,30 @@ apt install xsltproc Then launch tests: ``` -dune build @tests/regression_tests/runtest --no-buffer +dune runtest tests/regression_tests --no-buffer ``` ### ACSL verification tests +To launch verification tests, create a directory `<my_dir>/` in +`lustrec_tests/`. The directory must contain symbolic links to +`lustrec_tests/{test.ml,dune}` and to relevant Lustre files in +`lustrec_tests/lustre_files`, and a JSON configuration file `config.json`. See +`lustrec_tests/{stopwatch_test,minimal_tests,offline_tests}` for example setups. +The fields of the configuration file are all optional (default values are +provided). + +To launch the tests: ``` -dune build @offline_tests/runtest --no-buffer +dune runtest lustrec_tests/<my_dir> --no-buffer --display quiet ``` +The results can be found in the `results/` directory. + ## Developing and hacking LustreC If you want to hack LustreC, you should use -[dune](https://dune.readthedocs.io/en/latest/ "Link to dune -documentation") to build and execute it. +[dune](https://dune.readthedocs.io/en/latest/ "Link to dune documentation") to +build and execute it. To build LustreC with dune: diff --git a/lustrec_tests/dune b/lustrec_tests/dune new file mode 100644 index 00000000..5b79b1ca --- /dev/null +++ b/lustrec_tests/dune @@ -0,0 +1,13 @@ +(env + (dev + (flags (:standard -w -32)))) + +(test + (name test) + (libraries re unix yojson) + (deps + (:lus (glob_files *.lus)) + (:cfg config.json) + (glob_files *)) ; to include `ignored` if its present + (action + (run %{test} %{project_root} %{bin:lustrec} %{cfg} "%{lus}"))) diff --git a/lustrec_tests/minimal_tests_O1/Abs1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/Abs1_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/Abs1_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/Abs1_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/Assignment1.LUSTREC.lus b/lustrec_tests/minimal_tests/Assignment1.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/Assignment1.LUSTREC.lus rename to lustrec_tests/minimal_tests/Assignment1.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/BitwiseXOR_int8_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/BitwiseXOR_int8_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/BitwiseXOR_int8_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/BitwiseXOR_int8_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/Clock_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/Clock_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/Clock_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/Clock_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/ForEach1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/ForEach1_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/ForEach1_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/ForEach1_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/LookupTable1D_2points_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/LookupTable1D_2points_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/LookupTable1D_2points_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/LookupTable1D_2points_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/Product1.LUSTREC.lus b/lustrec_tests/minimal_tests/Product1.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/Product1.LUSTREC.lus rename to lustrec_tests/minimal_tests/Product1.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/SYNAPSE_1.lus b/lustrec_tests/minimal_tests/SYNAPSE_1.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/SYNAPSE_1.lus rename to lustrec_tests/minimal_tests/SYNAPSE_1.lus diff --git a/lustrec_tests/minimal_tests_O1/UnitDelay_PP.LUSTREC.lus b/lustrec_tests/minimal_tests/UnitDelay_PP.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/UnitDelay_PP.LUSTREC.lus rename to lustrec_tests/minimal_tests/UnitDelay_PP.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/_6counter.lus b/lustrec_tests/minimal_tests/_6counter.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/_6counter.lus rename to lustrec_tests/minimal_tests/_6counter.lus diff --git a/lustrec_tests/minimal_tests_O1/clocks1.lus b/lustrec_tests/minimal_tests/clocks1.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/clocks1.lus rename to lustrec_tests/minimal_tests/clocks1.lus diff --git a/lustrec_tests/minimal_tests/config.json b/lustrec_tests/minimal_tests/config.json new file mode 100644 index 00000000..75d2d8ea --- /dev/null +++ b/lustrec_tests/minimal_tests/config.json @@ -0,0 +1,5 @@ +{ + "initial_timeout": 240, + "optimization_level": 1, + "ignored_file": null +} diff --git a/lustrec_tests/minimal_tests/dune b/lustrec_tests/minimal_tests/dune new file mode 120000 index 00000000..55afef87 --- /dev/null +++ b/lustrec_tests/minimal_tests/dune @@ -0,0 +1 @@ +../dune \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O1/hysteresis_1.lus b/lustrec_tests/minimal_tests/hysteresis_1.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/hysteresis_1.lus rename to lustrec_tests/minimal_tests/hysteresis_1.lus diff --git a/lustrec_tests/minimal_tests_O1/inv_M_2x2.LUSTREC.lus b/lustrec_tests/minimal_tests/inv_M_2x2.LUSTREC.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/inv_M_2x2.LUSTREC.lus rename to lustrec_tests/minimal_tests/inv_M_2x2.LUSTREC.lus diff --git a/lustrec_tests/minimal_tests_O1/test.ml b/lustrec_tests/minimal_tests/test.ml similarity index 100% rename from lustrec_tests/minimal_tests_O1/test.ml rename to lustrec_tests/minimal_tests/test.ml diff --git a/lustrec_tests/minimal_tests_O1/two_counters.lus b/lustrec_tests/minimal_tests/two_counters.lus similarity index 100% rename from lustrec_tests/minimal_tests_O1/two_counters.lus rename to lustrec_tests/minimal_tests/two_counters.lus diff --git a/lustrec_tests/minimal_tests_O1/dune b/lustrec_tests/minimal_tests_O1/dune deleted file mode 100644 index 954cbd74..00000000 --- a/lustrec_tests/minimal_tests_O1/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "minimal_tests" 240 "O1"))) diff --git a/lustrec_tests/minimal_tests_O1/ignored b/lustrec_tests/minimal_tests_O1/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/minimal_tests_O2/Abs1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/Abs1_PP.LUSTREC.lus deleted file mode 120000 index c1d31076..00000000 --- a/lustrec_tests/minimal_tests_O2/Abs1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Abs1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/Assignment1.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/Assignment1.LUSTREC.lus deleted file mode 120000 index 3b92d53d..00000000 --- a/lustrec_tests/minimal_tests_O2/Assignment1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Assignment1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/BitwiseXOR_int8_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/BitwiseXOR_int8_PP.LUSTREC.lus deleted file mode 120000 index ccb3f23f..00000000 --- a/lustrec_tests/minimal_tests_O2/BitwiseXOR_int8_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/BitwiseXOR_int8_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/Clock_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/Clock_PP.LUSTREC.lus deleted file mode 120000 index 9b69e046..00000000 --- a/lustrec_tests/minimal_tests_O2/Clock_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Clock_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/ForEach1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/ForEach1_PP.LUSTREC.lus deleted file mode 120000 index c25dea31..00000000 --- a/lustrec_tests/minimal_tests_O2/ForEach1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/ForEach1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/LookupTable1D_2points_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/LookupTable1D_2points_PP.LUSTREC.lus deleted file mode 120000 index 21a724ff..00000000 --- a/lustrec_tests/minimal_tests_O2/LookupTable1D_2points_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/LookupTable1D_2points_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/Product1.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/Product1.LUSTREC.lus deleted file mode 120000 index c44fcd9f..00000000 --- a/lustrec_tests/minimal_tests_O2/Product1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Product1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/SYNAPSE_1.lus b/lustrec_tests/minimal_tests_O2/SYNAPSE_1.lus deleted file mode 120000 index 2bbb1f00..00000000 --- a/lustrec_tests/minimal_tests_O2/SYNAPSE_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/SYNAPSE_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/UnitDelay_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/UnitDelay_PP.LUSTREC.lus deleted file mode 120000 index a5913f64..00000000 --- a/lustrec_tests/minimal_tests_O2/UnitDelay_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/UnitDelay_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/_6counter.lus b/lustrec_tests/minimal_tests_O2/_6counter.lus deleted file mode 120000 index b146d803..00000000 --- a/lustrec_tests/minimal_tests_O2/_6counter.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/_6counter.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/clocks1.lus b/lustrec_tests/minimal_tests_O2/clocks1.lus deleted file mode 120000 index b0c8f629..00000000 --- a/lustrec_tests/minimal_tests_O2/clocks1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/clocks1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/dune b/lustrec_tests/minimal_tests_O2/dune deleted file mode 100644 index 4a6e21dd..00000000 --- a/lustrec_tests/minimal_tests_O2/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "minimal_tests" 240 "O2"))) diff --git a/lustrec_tests/minimal_tests_O2/hysteresis_1.lus b/lustrec_tests/minimal_tests_O2/hysteresis_1.lus deleted file mode 120000 index 15c1af9a..00000000 --- a/lustrec_tests/minimal_tests_O2/hysteresis_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/hysteresis_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/ignored b/lustrec_tests/minimal_tests_O2/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/minimal_tests_O2/inv_M_2x2.LUSTREC.lus b/lustrec_tests/minimal_tests_O2/inv_M_2x2.LUSTREC.lus deleted file mode 120000 index 57753699..00000000 --- a/lustrec_tests/minimal_tests_O2/inv_M_2x2.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/inv_M_2x2.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O2/two_counters.lus b/lustrec_tests/minimal_tests_O2/two_counters.lus deleted file mode 120000 index 65993869..00000000 --- a/lustrec_tests/minimal_tests_O2/two_counters.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/two_counters.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/Abs1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/Abs1_PP.LUSTREC.lus deleted file mode 120000 index c1d31076..00000000 --- a/lustrec_tests/minimal_tests_O3/Abs1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Abs1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/Assignment1.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/Assignment1.LUSTREC.lus deleted file mode 120000 index 3b92d53d..00000000 --- a/lustrec_tests/minimal_tests_O3/Assignment1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Assignment1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/BitwiseXOR_int8_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/BitwiseXOR_int8_PP.LUSTREC.lus deleted file mode 120000 index ccb3f23f..00000000 --- a/lustrec_tests/minimal_tests_O3/BitwiseXOR_int8_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/BitwiseXOR_int8_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/Clock_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/Clock_PP.LUSTREC.lus deleted file mode 120000 index 9b69e046..00000000 --- a/lustrec_tests/minimal_tests_O3/Clock_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Clock_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/ForEach1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/ForEach1_PP.LUSTREC.lus deleted file mode 120000 index c25dea31..00000000 --- a/lustrec_tests/minimal_tests_O3/ForEach1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/ForEach1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/LookupTable1D_2points_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/LookupTable1D_2points_PP.LUSTREC.lus deleted file mode 120000 index 21a724ff..00000000 --- a/lustrec_tests/minimal_tests_O3/LookupTable1D_2points_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/LookupTable1D_2points_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/Product1.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/Product1.LUSTREC.lus deleted file mode 120000 index c44fcd9f..00000000 --- a/lustrec_tests/minimal_tests_O3/Product1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Product1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/SYNAPSE_1.lus b/lustrec_tests/minimal_tests_O3/SYNAPSE_1.lus deleted file mode 120000 index 2bbb1f00..00000000 --- a/lustrec_tests/minimal_tests_O3/SYNAPSE_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/SYNAPSE_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/UnitDelay_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/UnitDelay_PP.LUSTREC.lus deleted file mode 120000 index a5913f64..00000000 --- a/lustrec_tests/minimal_tests_O3/UnitDelay_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/UnitDelay_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/_6counter.lus b/lustrec_tests/minimal_tests_O3/_6counter.lus deleted file mode 120000 index b146d803..00000000 --- a/lustrec_tests/minimal_tests_O3/_6counter.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/_6counter.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/clocks1.lus b/lustrec_tests/minimal_tests_O3/clocks1.lus deleted file mode 120000 index b0c8f629..00000000 --- a/lustrec_tests/minimal_tests_O3/clocks1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/clocks1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/dune b/lustrec_tests/minimal_tests_O3/dune deleted file mode 100644 index 770302df..00000000 --- a/lustrec_tests/minimal_tests_O3/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "minimal_tests" 240 "O3"))) diff --git a/lustrec_tests/minimal_tests_O3/hysteresis_1.lus b/lustrec_tests/minimal_tests_O3/hysteresis_1.lus deleted file mode 120000 index 15c1af9a..00000000 --- a/lustrec_tests/minimal_tests_O3/hysteresis_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/hysteresis_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/ignored b/lustrec_tests/minimal_tests_O3/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/minimal_tests_O3/inv_M_2x2.LUSTREC.lus b/lustrec_tests/minimal_tests_O3/inv_M_2x2.LUSTREC.lus deleted file mode 120000 index 57753699..00000000 --- a/lustrec_tests/minimal_tests_O3/inv_M_2x2.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/inv_M_2x2.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/test.ml b/lustrec_tests/minimal_tests_O3/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/minimal_tests_O3/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_O3/two_counters.lus b/lustrec_tests/minimal_tests_O3/two_counters.lus deleted file mode 120000 index 65993869..00000000 --- a/lustrec_tests/minimal_tests_O3/two_counters.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/two_counters.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/Abs1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/Abs1_PP.LUSTREC.lus deleted file mode 120000 index c1d31076..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/Abs1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Abs1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/Assignment1.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/Assignment1.LUSTREC.lus deleted file mode 120000 index 3b92d53d..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/Assignment1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Assignment1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/BitwiseXOR_int8_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/BitwiseXOR_int8_PP.LUSTREC.lus deleted file mode 120000 index ccb3f23f..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/BitwiseXOR_int8_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/BitwiseXOR_int8_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/Clock_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/Clock_PP.LUSTREC.lus deleted file mode 120000 index 9b69e046..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/Clock_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Clock_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/ForEach1_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/ForEach1_PP.LUSTREC.lus deleted file mode 120000 index c25dea31..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/ForEach1_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/ForEach1_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/LookupTable1D_2points_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/LookupTable1D_2points_PP.LUSTREC.lus deleted file mode 120000 index 21a724ff..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/LookupTable1D_2points_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/LookupTable1D_2points_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/Product1.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/Product1.LUSTREC.lus deleted file mode 120000 index c44fcd9f..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/Product1.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/Product1.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/SYNAPSE_1.lus b/lustrec_tests/minimal_tests_wo_optimizations/SYNAPSE_1.lus deleted file mode 120000 index 2bbb1f00..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/SYNAPSE_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/SYNAPSE_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/UnitDelay_PP.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/UnitDelay_PP.LUSTREC.lus deleted file mode 120000 index a5913f64..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/UnitDelay_PP.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/UnitDelay_PP.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/_6counter.lus b/lustrec_tests/minimal_tests_wo_optimizations/_6counter.lus deleted file mode 120000 index b146d803..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/_6counter.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/_6counter.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/clocks1.lus b/lustrec_tests/minimal_tests_wo_optimizations/clocks1.lus deleted file mode 120000 index b0c8f629..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/clocks1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/clocks1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/dune b/lustrec_tests/minimal_tests_wo_optimizations/dune deleted file mode 100644 index fd6ebfc4..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "minimal_tests" 240 "O-1"))) diff --git a/lustrec_tests/minimal_tests_wo_optimizations/hysteresis_1.lus b/lustrec_tests/minimal_tests_wo_optimizations/hysteresis_1.lus deleted file mode 120000 index 15c1af9a..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/hysteresis_1.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/hysteresis_1.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/ignored b/lustrec_tests/minimal_tests_wo_optimizations/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/minimal_tests_wo_optimizations/inv_M_2x2.LUSTREC.lus b/lustrec_tests/minimal_tests_wo_optimizations/inv_M_2x2.LUSTREC.lus deleted file mode 120000 index 57753699..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/inv_M_2x2.LUSTREC.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/inv_M_2x2.LUSTREC.lus \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/test.ml b/lustrec_tests/minimal_tests_wo_optimizations/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/minimal_tests_wo_optimizations/two_counters.lus b/lustrec_tests/minimal_tests_wo_optimizations/two_counters.lus deleted file mode 120000 index 65993869..00000000 --- a/lustrec_tests/minimal_tests_wo_optimizations/two_counters.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/two_counters.lus \ No newline at end of file diff --git a/lustrec_tests/offline_tests/config.json b/lustrec_tests/offline_tests/config.json new file mode 100644 index 00000000..e22e1630 --- /dev/null +++ b/lustrec_tests/offline_tests/config.json @@ -0,0 +1,5 @@ +{ + "initial_timeout": 30, + "optimization_level": 1, + "ignored_file": "ignored" +} diff --git a/lustrec_tests/offline_tests/dune b/lustrec_tests/offline_tests/dune deleted file mode 100644 index 776c4856..00000000 --- a/lustrec_tests/offline_tests/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "offline_tests" 15360 "O2"))) diff --git a/lustrec_tests/offline_tests/dune b/lustrec_tests/offline_tests/dune new file mode 120000 index 00000000..55afef87 --- /dev/null +++ b/lustrec_tests/offline_tests/dune @@ -0,0 +1 @@ +../dune \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test/config.json b/lustrec_tests/stopwatch_test/config.json new file mode 100644 index 00000000..45a14ce0 --- /dev/null +++ b/lustrec_tests/stopwatch_test/config.json @@ -0,0 +1,4 @@ +{ + "initial_timeout": 60, + "optimization_level": 1 +} diff --git a/lustrec_tests/stopwatch_test/dune b/lustrec_tests/stopwatch_test/dune new file mode 120000 index 00000000..55afef87 --- /dev/null +++ b/lustrec_tests/stopwatch_test/dune @@ -0,0 +1 @@ +../dune \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_O1/simple_stopwatch.lus b/lustrec_tests/stopwatch_test/simple_stopwatch.lus similarity index 100% rename from lustrec_tests/stopwatch_test_O1/simple_stopwatch.lus rename to lustrec_tests/stopwatch_test/simple_stopwatch.lus diff --git a/lustrec_tests/minimal_tests_O2/test.ml b/lustrec_tests/stopwatch_test/test.ml similarity index 100% rename from lustrec_tests/minimal_tests_O2/test.ml rename to lustrec_tests/stopwatch_test/test.ml diff --git a/lustrec_tests/stopwatch_test_O1/dune b/lustrec_tests/stopwatch_test_O1/dune deleted file mode 100644 index 9b925493..00000000 --- a/lustrec_tests/stopwatch_test_O1/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "stopwatch_test" 60 "O1"))) diff --git a/lustrec_tests/stopwatch_test_O1/ignored b/lustrec_tests/stopwatch_test_O1/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/stopwatch_test_O1/test.ml b/lustrec_tests/stopwatch_test_O1/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/stopwatch_test_O1/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_O2/dune b/lustrec_tests/stopwatch_test_O2/dune deleted file mode 100644 index a3f05791..00000000 --- a/lustrec_tests/stopwatch_test_O2/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "stopwatch_test" 60 "O2"))) diff --git a/lustrec_tests/stopwatch_test_O2/ignored b/lustrec_tests/stopwatch_test_O2/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/stopwatch_test_O2/simple_stopwatch.lus b/lustrec_tests/stopwatch_test_O2/simple_stopwatch.lus deleted file mode 120000 index b83efd7f..00000000 --- a/lustrec_tests/stopwatch_test_O2/simple_stopwatch.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/simple_stopwatch.lus \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_O2/test.ml b/lustrec_tests/stopwatch_test_O2/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/stopwatch_test_O2/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_O3/dune b/lustrec_tests/stopwatch_test_O3/dune deleted file mode 100644 index 58e70106..00000000 --- a/lustrec_tests/stopwatch_test_O3/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "stopwatch_test" 60 "O3"))) diff --git a/lustrec_tests/stopwatch_test_O3/ignored b/lustrec_tests/stopwatch_test_O3/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/stopwatch_test_O3/simple_stopwatch.lus b/lustrec_tests/stopwatch_test_O3/simple_stopwatch.lus deleted file mode 120000 index b83efd7f..00000000 --- a/lustrec_tests/stopwatch_test_O3/simple_stopwatch.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/simple_stopwatch.lus \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_O3/test.ml b/lustrec_tests/stopwatch_test_O3/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/stopwatch_test_O3/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_wo_optimizations/dune b/lustrec_tests/stopwatch_test_wo_optimizations/dune deleted file mode 100644 index 6dc4eac5..00000000 --- a/lustrec_tests/stopwatch_test_wo_optimizations/dune +++ /dev/null @@ -1,13 +0,0 @@ -(env - (dev - (flags (:standard -w -32)))) - -(test - (name test) - (libraries re unix yojson) - (deps - (:lus - (glob_files *.lus)) - (:ign ignored)) - (action - (run %{test} %{bin:lustrec} "%{lus}" %{ign} "stopwatch_test" 60 "O-1"))) diff --git a/lustrec_tests/stopwatch_test_wo_optimizations/ignored b/lustrec_tests/stopwatch_test_wo_optimizations/ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/lustrec_tests/stopwatch_test_wo_optimizations/simple_stopwatch.lus b/lustrec_tests/stopwatch_test_wo_optimizations/simple_stopwatch.lus deleted file mode 120000 index b83efd7f..00000000 --- a/lustrec_tests/stopwatch_test_wo_optimizations/simple_stopwatch.lus +++ /dev/null @@ -1 +0,0 @@ -../lustre_files/simple_stopwatch.lus \ No newline at end of file diff --git a/lustrec_tests/stopwatch_test_wo_optimizations/test.ml b/lustrec_tests/stopwatch_test_wo_optimizations/test.ml deleted file mode 120000 index 9536c050..00000000 --- a/lustrec_tests/stopwatch_test_wo_optimizations/test.ml +++ /dev/null @@ -1 +0,0 @@ -../test.ml \ No newline at end of file diff --git a/lustrec_tests/test.ml b/lustrec_tests/test.ml index 61688931..c7b9c6e5 100644 --- a/lustrec_tests/test.ml +++ b/lustrec_tests/test.ml @@ -1,6 +1,8 @@ open Format open Unix +module Y = Yojson.Basic + module S = struct include Set.Make (String) @@ -52,29 +54,22 @@ let empty_report = ninits = S.empty; } -let initial_timeout = int_of_string Sys.argv.(5) -let optimization_level = match Sys.argv.(6) with - | "O2" -> None - | "O-1" -> Some (-1) - | "O1" -> Some 1 - | "O3" -> Some 3 - | _ -> failwith - "optimization option not supported. Choose between O-1, O1, O2, O3" -let result_dir = "../../../../results/" -let _ = try Unix.mkdir result_dir 0o755 with _ -> () -let dir = result_dir ^ Sys.argv.(4) ^ "_" ^ - match Sys.argv.(6) with - | "O-1" -> "wo_optimizations" - | other -> other -let _ = try Unix.mkdir dir 0o755 with _ -> () -let report_f = Filename.concat dir "report" +type config = { + initial_timeout: int; + optimization_level: int; + ignored_file: string option; + results_directory: string; +} + +let report_file cfg = Filename.concat cfg.results_directory "report" + let section h = "# " ^ h let end_section = "##" let compiled_section = section "COMPILED" let ninit_section = section "BAD_INIT" -let next_timeout r = - 2 * M.fold (fun i _ n -> max i n) r.verified (initial_timeout / 2) +let next_timeout cfg r = + 2 * M.fold (fun i _ n -> max i n) r.verified (cfg.initial_timeout / 2) let timeout_section i = section (sprintf "TIMEOUT %d" i) @@ -111,9 +106,9 @@ let is_failed report f = STF.exists (fun (x, _) -> x = f) report.failed let add_failed report ?goals f = { report with failed = STF.add (f, goals) report.failed } -let parse_report () = +let parse_report cfg = try - let ic = open_in report_f in + let ic = open_in (report_file cfg) in let rec read_compiled r = try match input_line ic with @@ -229,8 +224,8 @@ let pp_report fmt report = pp_verified report -let write_report report = - let oc = open_out report_f in +let write_report cfg report = + let oc = open_out (report_file cfg) in let fmt = formatter_of_out_channel oc in pp_report fmt report; close_out oc @@ -279,14 +274,15 @@ let print_result p f fmt_str check = let print_results ok ko w n = printf "OK: @{<green>%d@} (@{<red>%d@} + @{<magenta>%d@}) / %d@." ok ko w n -let lustrec_params f = - let ps = [ "-acsl-spec"; "-d"; dir; f ] in - Option.fold - ~none:ps - ~some:(fun x -> "-O" :: string_of_int x :: ps) - optimization_level +let lustrec_params cfg f = + [ + "-acsl-spec"; + "-d"; cfg.results_directory; + "-O"; cfg.optimization_level |> string_of_int; + f + ] -let compile report lustrec fs = +let compile cfg report lustrec fs = printf "@.%a@." pp_header "Compilation tests"; max_l := List.fold_left @@ -316,7 +312,7 @@ let compile report lustrec fs = else if is_ninit report f then ninit report else let cmd = - Filename.quote_command ~stderr:err_f lustrec (lustrec_params f) + Filename.quote_command ~stderr:err_f lustrec (lustrec_params cfg f) in let ic = open_process_in cmd in let b = @@ -329,7 +325,7 @@ let compile report lustrec fs = else fail report log in print_result p f fmt_str check; - write_report report; + write_report cfg report; report, ok, ko, ninits, i') (report, 0, 0, 0, 0) fs @@ -429,7 +425,7 @@ let rec rmrf path = else Sys.remove path with _ -> () -let rec verify report timeout fs = +let rec verify cfg report timeout fs = if fs <> [] then ( printf "@.%a@." @@ -441,7 +437,7 @@ let rec verify report timeout fs = List.fold_left (fun (report, ok, ko, tm, i, fs) f -> let f' = Filename.remove_extension f ^ ".c" in - let f'' = Filename.concat dir f' in + let f'' = Filename.concat cfg.results_directory f' in let i' = i + 1 in let p = float_of_int i' *. 100. /. n_f in let success ?(already = false) r : _ * _ * _ * _ * _ format * _ * _ = @@ -495,35 +491,66 @@ let rec verify report timeout fs = fail (add_failed report f')) in print_result p f' fmt_str check; - write_report report; + write_report cfg report; report, ok, ko, tm, i', fs) (report, 0, 0, 0, 0, []) fs in print_results ok ko tm n; - verify report (timeout * 2) fs) + verify cfg report (timeout * 2) fs) let print_ignored fs = - printf - "@.@[<v 2>%a@;%a@]@." - pp_header - "Ignored tests" - (pp_print_list pp_print_string) - fs + if fs <> [] then + printf + "@.@[<v 2>%a@;%a@]@." + pp_header + "Ignored tests" + (pp_print_list pp_print_string) + fs + +let read_config root = + let open Yojson.Basic.Util in + let json = Sys.argv.(3) |> Y.from_file in + let get field f = json |> member field |> f in + let get_default field f default = + Option.fold ~none:default ~some:Fun.id (get field (to_option f)) + in + let tests_directory = Sys.getcwd () |> Filename.basename in + let optimization_level = get_default "optimization_level" to_int 2 in + let result_dir = root ^ "/../../results/" in + (try Unix.mkdir result_dir 0o755 with _ -> ()); + let results_directory = + result_dir ^ tests_directory ^ "_" ^ + (if optimization_level < 0 then "wo_optimization" + else "O" ^ string_of_int optimization_level) + in + (try Unix.mkdir results_directory 0o755 with _ -> ()); + { + initial_timeout = get_default "initial_timeout" to_int 30; + optimization_level; + results_directory; + ignored_file = get "ignored_file" to_string_option; + } let () = - let lustrec = Sys.argv.(1) in - let lus_fs = Sys.argv.(2) |> Re.Str.(split (regexp_string " ")) in - let ignored_f = Sys.argv.(3) in + let root = Sys.argv.(1) in + let lustrec = Sys.argv.(2) in + let cfg = read_config root in + let lus_fs = Sys.argv.(4) |> Re.Str.(split (regexp_string " ")) in let ignored_fs = - let ic = open_in ignored_f in - let rec read fs = try read (input_line ic :: fs) with End_of_file -> fs in - let fs = read [] in - close_in ic; - fs + Option.fold ~none:[] + ~some:(fun ignored_f -> + let ic = open_in ignored_f in + let rec read fs = + try read (input_line ic :: fs) with End_of_file -> fs + in + let fs = read [] in + close_in ic; + fs) + cfg.ignored_file in - let report = parse_report () in - let report = compile report lustrec lus_fs in + let report = parse_report cfg in + let report = compile cfg report lustrec lus_fs in let ignored_fs = ignored_fs @ List.map Filename.chop_extension (S.elements report.ninits) in @@ -536,4 +563,4 @@ let () = (fun f -> not (mem (Filename.chop_extension f) ignored_fs)) lus_fs)) in - verify report (next_timeout report) lus_fs + verify cfg report (next_timeout cfg report) lus_fs -- GitLab