diff --git a/src/plugins/aorai/tests/test_config b/src/plugins/aorai/tests/test_config
index 68cdb87e735aee9026598e4f773117fd73492efd..a8b69cddad62d729e3f14b0f752346eab1594a0d 100644
--- a/src/plugins/aorai/tests/test_config
+++ b/src/plugins/aorai/tests/test_config
@@ -1 +1,3 @@
+PLUGIN: aorai eva,from,scope report wp,rtegen
+MODULE: aorai_test
 MACRO: PROVE_OPTIONS
diff --git a/src/plugins/aorai/tests/test_config_prove.in b/src/plugins/aorai/tests/test_config_prove.in
index 8875fe9a4de64611beee7a96c8a56fda2ff051ef..19d10644b0d9a441c1cbf9fa017c1ee6f3faf0a4 100644
--- a/src/plugins/aorai/tests/test_config_prove.in
+++ b/src/plugins/aorai/tests/test_config_prove.in
@@ -1 +1,3 @@
+PLUGIN: aorai eva,from,scope report wp,rtegen
+MODULE: aorai_test
 MACRO: PROVE_OPTIONS @AORAI_WP_SHARE@ -aorai-test-prove-aux-spec
diff --git a/src/plugins/e-acsl/tests/test_config_ci.in b/src/plugins/e-acsl/tests/test_config_ci.in
index 9b58fc5a4a9550952da1aaca405d6aec67e4899c..3f61a9a95f6c298c32d76b9bc59425a1aba9e566 100644
--- a/src/plugins/e-acsl/tests/test_config_ci.in
+++ b/src/plugins/e-acsl/tests/test_config_ci.in
@@ -1,9 +1,14 @@
 MACRO: DEST @PTEST_RESULT@/gen_@PTEST_NAME@
 MACRO: MACHDEP -machdep gcc_x86_64
 MACRO: GLOBAL @MACHDEP@ -remove-unused-specified-functions -verbose 0
+
 MACRO: EACSL -e-acsl -e-acsl-share ./share/e-acsl -e-acsl-verbose 1
 MACRO: EVA -eva -eva-no-alloc-returns-null -eva-no-results -eva-no-print -eva-warn-key libc:unsupported-spec=inactive
+
 MACRO: EVENTUALLY -print -ocode @DEST@.c -load-script ./tests/print.cmxs
+
+PLUGIN: E_ACSL eva,scope,variadic rtegen
+
 LOG: gen_@PTEST_NAME@.c
 OPT: @GLOBAL@ @EACSL@ -then-last @EVA@ @EVENTUALLY@
 FILTER:@SEDCMD@ -e "s|[a-zA-Z/\\]\+frama_c_project_e-acsl_[a-z0-9]*|PROJECT_FILE|" -e "s|$FRAMAC_SHARE|FRAMAC_SHARE|g" -e "s|../../share|FRAMAC_SHARE|g" -e "s|./share/e-acsl|FRAMAC_SHARE/e-acsl|g" -e "s|share/e-acsl|FRAMAC_SHARE/e-acsl|g"
diff --git a/src/plugins/e-acsl/tests/test_config_dev.in b/src/plugins/e-acsl/tests/test_config_dev.in
index 045e0fac2c994cb0d4fe5edc094ed3ddfb5b5a62..6c7b2aca44643307f328535feb302172ef21c182 100644
--- a/src/plugins/e-acsl/tests/test_config_dev.in
+++ b/src/plugins/e-acsl/tests/test_config_dev.in
@@ -12,7 +12,9 @@ MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X
 COMMENT: Default options for the frama-c invocation
 MACRO: ROOT_EACSL_GCC_FC_EXTRA -journal-disable -verbose 0
 
-EXEC: LOG @EACSL_ERR@ if test "@ROOT_EACSL_GCC_ENABLE@" = "yes"; then ./scripts/e-acsl-gcc.sh -I @frama-c@ -c @ROOT_EACSL_GCC_MISC_OPTS@ --frama-c-extra="@ROOT_EACSL_GCC_FC_EXTRA@ @ROOT_EACSL_GCC_FC_EXTRA_EXT@" @ROOT_EACSL_GCC_OPTS_EXT@ -o @DEST@.gcc.c -O @DEST@ @PTEST_FILE@ > @PTEST_RESULT@/@OUT@ 2> @PTEST_RESULT@/@ERR@ && ./@DEST@.e-acsl 2>&1 1>/dev/null | @ROOT_EACSL_EXEC_FILTER@ > @PTEST_RESULT@/@EACSL_ERR@; fi
+PLUGIN: E_ACSL eva,scope,variadic rtegen
+
+EXEC: LOG @EACSL_ERR@ if test "@ROOT_EACSL_GCC_ENABLE@" = "yes"; then ./scripts/e-acsl-gcc.sh -I @frama-c-exe@ -c @ROOT_EACSL_GCC_MISC_OPTS@ --frama-c-extra="@PTEST_DEFAULT_OPTIONS@ @PTEST_LOAD_OPTIONS@ @ROOT_EACSL_GCC_FC_EXTRA@ @ROOT_EACSL_GCC_FC_EXTRA_EXT@" @ROOT_EACSL_GCC_OPTS_EXT@ -o @DEST@.gcc.c -O @DEST@ @PTEST_FILE@ > @PTEST_RESULT@/@OUT@ 2> @PTEST_RESULT@/@ERR@ && ./@DEST@.e-acsl 2>&1 1>/dev/null | @ROOT_EACSL_EXEC_FILTER@ > @PTEST_RESULT@/@EACSL_ERR@; fi
 
 COMMENT: These next macros can be redefined in a test file
 COMMENT: Define the following macro in a test to pass extra options to the frama-c invocation
diff --git a/src/plugins/instantiate/tests/test_config b/src/plugins/instantiate/tests/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..e76859ce46eb70cae21c0221ee19cde81dda11f4
--- /dev/null
+++ b/src/plugins/instantiate/tests/test_config
@@ -0,0 +1 @@
+PLUGIN: instantiate
diff --git a/src/plugins/loop_analysis/tests/loop_analysis/with_value.i b/src/plugins/loop_analysis/tests/loop_analysis/with_value.i
index b030fa5e58dbcbe8a8d388fcc49097265f53ec38..66a5ec6025be62fb11852a4cd88c80cab1d764e4 100644
--- a/src/plugins/loop_analysis/tests/loop_analysis/with_value.i
+++ b/src/plugins/loop_analysis/tests/loop_analysis/with_value.i
@@ -1,7 +1,7 @@
 /*run.config
-OPT: -no-autoload-plugins -load-module from,inout,loopanalysis,eva,scope -eva -eva-show-progress -then -loop
+PLUGIN: from,inout,loopanalysis,eva,scope
+OPT: -eva -eva-show-progress -then -loop
 */
-
 void f1(int n) {
   for (int i = 1; i < n+2; i++); // i IN [1..6] (6)
 }
diff --git a/src/plugins/loop_analysis/tests/test_config b/src/plugins/loop_analysis/tests/test_config
index 4d0023c27475cdf9b242f862679fa8375c351218..f5a7fe2c3073d7012157044a16ee50637344ba4e 100644
--- a/src/plugins/loop_analysis/tests/test_config
+++ b/src/plugins/loop_analysis/tests/test_config
@@ -1 +1,2 @@
-OPT: -no-autoload-plugins -load-module loopanalysis -loop
+PLUGIN: loopanalysis
+OPT: -loop
diff --git a/src/plugins/markdown-report/tests/md/test_config b/src/plugins/markdown-report/tests/md/test_config
index 2d99fda9914fe40e3d6dad849ead724f9a88ec2e..a6de95a18b6e6ac762b8988ba15d90f1dd4ac8d4 100644
--- a/src/plugins/markdown-report/tests/md/test_config
+++ b/src/plugins/markdown-report/tests/md/test_config
@@ -1,2 +1,3 @@
+PLUGIN: eva,inout,scope markdown_report
 CMD: @frama-c@ -eva @PTEST_FILE@ -mdr-gen md -mdr-date="now" -mdr-out @PTEST_DIR@/result/@PTEST_NAME@.@PTEST_NUMBER@.md
 LOG: @PTEST_NAME@.@PTEST_NUMBER@.md
diff --git a/src/plugins/markdown-report/tests/sarif/cwe125.c b/src/plugins/markdown-report/tests/sarif/cwe125.c
index 4e3013719a1b91a9d99f904c7fc30fc044683df5..be4e873fb8849e996300279cb3406d967de04147 100644
--- a/src/plugins/markdown-report/tests/sarif/cwe125.c
+++ b/src/plugins/markdown-report/tests/sarif/cwe125.c
@@ -4,8 +4,8 @@ EXECNOW: LOG @PTEST_NAME@.parse.log @frama-c@ @PTEST_FILE@ -save @PTEST_DIR@/res
 EXECNOW: LOG @PTEST_NAME@.eva.log @frama-c@ -load @PTEST_DIR@/result/@PTEST_NAME@_parse.sav -eva -save @PTEST_DIR@/result/@PTEST_NAME@_eva.sav > @PTEST_DIR@/result/@PTEST_NAME@.eva.log
 EXECNOW: LOG @PTEST_NAME@.sarif @frama-c@ -load @PTEST_DIR@/result/@PTEST_NAME@_eva.sav -then -mdr-out @PTEST_DIR@/result/@PTEST_NAME@.sarif -mdr-gen sarif -mdr-no-print-libc -mdr-sarif-deterministic
 */
-#include "__fc_builtin.h"
 
+#include "__fc_builtin.h"
 #define LENGTH 10
 
 int getValueFromArray(int *array, int len, int index) {
diff --git a/src/plugins/markdown-report/tests/sarif/libc.c b/src/plugins/markdown-report/tests/sarif/libc.c
index 2f7438beff35d307549bdbe6d896110fa98956c0..ebddde12484e96c3ce1921fe5432db3d83d87a5b 100644
--- a/src/plugins/markdown-report/tests/sarif/libc.c
+++ b/src/plugins/markdown-report/tests/sarif/libc.c
@@ -1,5 +1,5 @@
 /* run.config
-   CMD: @frama-c@ @PTEST_FILE@ -no-autoload-plugins -load-module eva,from,scope,markdown_report -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic
+   CMD: @frama-c@ -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic
    LOG: with-libc.sarif
    OPT: -mdr-out @PTEST_DIR@/result/with-libc.sarif
    LOG: without-libc.sarif
diff --git a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif
index 01038bb8a72d1d607ca386bebf1c5ed0289b8063..05cf14524c10a6fb740df19c593e92e62f0eb406 100644
--- a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif
+++ b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif
@@ -16,9 +16,11 @@
       "invocations": [
         {
           "commandLine":
-            "frama-c -check tests/sarif/cwe125.c -save tests/sarif/result/cwe125_parse.sav",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report tests/sarif/cwe125.c -save tests/sarif/result/cwe125_parse.sav",
           "arguments": [
-            "-check", "tests/sarif/cwe125.c", "-save",
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report",
+            "tests/sarif/cwe125.c", "-save",
             "tests/sarif/result/cwe125_parse.sav"
           ],
           "exitCode": 0,
@@ -26,21 +28,25 @@
         },
         {
           "commandLine":
-            "frama-c -check -load tests/sarif/result/cwe125_parse.sav -eva -save tests/sarif/result/cwe125_eva.sav",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report -load tests/sarif/result/cwe125_parse.sav -eva -save tests/sarif/result/cwe125_eva.sav",
           "arguments": [
-            "-check", "-load", "tests/sarif/result/cwe125_parse.sav", "-eva",
-            "-save", "tests/sarif/result/cwe125_eva.sav"
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report", "-load",
+            "tests/sarif/result/cwe125_parse.sav", "-eva", "-save",
+            "tests/sarif/result/cwe125_eva.sav"
           ],
           "exitCode": 0,
           "executionSuccessful": true
         },
         {
           "commandLine":
-            "frama-c -check -load tests/sarif/result/cwe125_eva.sav -then -mdr-out tests/sarif/result/cwe125.sarif -mdr-gen sarif -mdr-no-print-libc -mdr-sarif-deterministic",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report -load tests/sarif/result/cwe125_eva.sav -then -mdr-out tests/sarif/result/cwe125.sarif -mdr-gen sarif -mdr-no-print-libc -mdr-sarif-deterministic",
           "arguments": [
-            "-check", "-load", "tests/sarif/result/cwe125_eva.sav", "-then",
-            "-mdr-out", "tests/sarif/result/cwe125.sarif", "-mdr-gen",
-            "sarif", "-mdr-no-print-libc", "-mdr-sarif-deterministic"
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report", "-load",
+            "tests/sarif/result/cwe125_eva.sav", "-then", "-mdr-out",
+            "tests/sarif/result/cwe125.sarif", "-mdr-gen", "sarif",
+            "-mdr-no-print-libc", "-mdr-sarif-deterministic"
           ],
           "exitCode": 0,
           "executionSuccessful": true
diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
index 92989f9ff24ed46cd969d699cbe957a4e091c99f..09463aba3706bc50f7c4ddc224a7f773ee9389a6 100644
--- a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
+++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
@@ -16,9 +16,11 @@
       "invocations": [
         {
           "commandLine":
-            "frama-c -check tests/sarif/std_string.c -eva -then -mdr-sarif-deterministic -mdr-gen sarif -mdr-out tests/sarif/result/std_string.sarif",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report tests/sarif/std_string.c -eva -then -mdr-sarif-deterministic -mdr-gen sarif -mdr-out tests/sarif/result/std_string.sarif",
           "arguments": [
-            "-check", "tests/sarif/std_string.c", "-eva", "-then",
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report",
+            "tests/sarif/std_string.c", "-eva", "-then",
             "-mdr-sarif-deterministic", "-mdr-gen", "sarif", "-mdr-out",
             "tests/sarif/result/std_string.sarif"
           ],
diff --git a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif
index 2e65770160b67d52666d872c32c3ccff177cf6d1..1c47d708f582d55b6f2214609000909f832b3abe 100644
--- a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif
+++ b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif
@@ -16,12 +16,12 @@
       "invocations": [
         {
           "commandLine":
-            "frama-c -check tests/sarif/libc.c -no-autoload-plugins -load-module eva,from,scope,markdown_report -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic -mdr-out tests/sarif/result/with-libc.sarif",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic tests/sarif/libc.c -mdr-out tests/sarif/result/with-libc.sarif",
           "arguments": [
-            "-check", "tests/sarif/libc.c", "-no-autoload-plugins",
-            "-load-module", "eva,from,scope,markdown_report", "-eva",
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report", "-eva",
             "-eva-no-results", "-mdr-gen", "sarif",
-            "-mdr-sarif-deterministic", "-mdr-out",
+            "-mdr-sarif-deterministic", "tests/sarif/libc.c", "-mdr-out",
             "tests/sarif/result/with-libc.sarif"
           ],
           "exitCode": 0,
diff --git a/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif b/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif
index b22b1bf8f4209a3f890c272cdee6d5470526ac48..0772f06e8dc221cd8bf486cbcd3a21702bf27055 100644
--- a/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif
+++ b/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif
@@ -16,12 +16,13 @@
       "invocations": [
         {
           "commandLine":
-            "frama-c -check tests/sarif/libc.c -no-autoload-plugins -load-module eva,from,scope,markdown_report -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic -mdr-no-print-libc -mdr-out tests/sarif/result/without-libc.sarif",
+            "frama-c -journal-disable -check -no-autoload-plugins -load-module=eva,from,scope,markdown_report -eva -eva-no-results -mdr-gen sarif -mdr-sarif-deterministic tests/sarif/libc.c -mdr-no-print-libc -mdr-out tests/sarif/result/without-libc.sarif",
           "arguments": [
-            "-check", "tests/sarif/libc.c", "-no-autoload-plugins",
-            "-load-module", "eva,from,scope,markdown_report", "-eva",
+            "-journal-disable", "-check", "-no-autoload-plugins",
+            "-load-module=eva,from,scope,markdown_report", "-eva",
             "-eva-no-results", "-mdr-gen", "sarif",
-            "-mdr-sarif-deterministic", "-mdr-no-print-libc", "-mdr-out",
+            "-mdr-sarif-deterministic", "tests/sarif/libc.c",
+            "-mdr-no-print-libc", "-mdr-out",
             "tests/sarif/result/without-libc.sarif"
           ],
           "exitCode": 0,
diff --git a/src/plugins/markdown-report/tests/test_config b/src/plugins/markdown-report/tests/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..d8bce8de28a2aa935d226e8561a3097808500d60
--- /dev/null
+++ b/src/plugins/markdown-report/tests/test_config
@@ -0,0 +1 @@
+PLUGIN: eva,from,scope markdown_report 
diff --git a/src/plugins/nonterm/tests/test_config b/src/plugins/nonterm/tests/test_config
index 91f0e5ec1ff948b34ba561fc9d7369be7fd38b87..521ad6d1a0c2ee0cdd8963bbf7f80c5a0f35f524 100644
--- a/src/plugins/nonterm/tests/test_config
+++ b/src/plugins/nonterm/tests/test_config
@@ -1 +1,2 @@
-OPT: -no-autoload-plugins -load-module from,inout,nonterm,scope -eva -eva-show-progress -eva-msg-key=-summary -then -nonterm -nonterm-verbose 2
+PLUGIN: from,inout,nonterm,scope
+OPT: -eva -eva-show-progress -eva-msg-key=-summary -then -nonterm -nonterm-verbose 2
diff --git a/src/plugins/report/tests/report/classify.c b/src/plugins/report/tests/report/classify.c
index 59d10572d66174086765df608e8473c6ad2c2f62..53068d1fb7a6bb272020cde4a7cf821693cf6e5b 100644
--- a/src/plugins/report/tests/report/classify.c
+++ b/src/plugins/report/tests/report/classify.c
@@ -1,5 +1,6 @@
 /* run.config
-   CMD: @frama-c@ -kernel-warn-key=annot-error=active -no-autoload-plugins -load-module wp,report -report-output @PTEST_RESULT@/classified.@PTEST_NUMBER@.json -wp -wp-msg-key shell
+   CMD: @frama-c@ -kernel-warn-key=annot-error=active -report-output @PTEST_RESULT@/classified.@PTEST_NUMBER@.json -wp -wp-msg-key shell
+PLUGIN: wp,rtegen,report
    LOG: classified.@PTEST_NUMBER@.json
    OPT: -wp-prover qed -report-unclassified-untried REVIEW -then -report-classify
 EXIT: 1
@@ -18,7 +19,6 @@ EXIT: 1
 int a ;
 
 
-
 /*@
   requires a >= 0 ;
   ensures a > 0 ;
diff --git a/src/plugins/report/tests/report/csv.c b/src/plugins/report/tests/report/csv.c
index 536cfb432f2702af8035011868cad8ee785095d9..c9e27daea85800e65c791ee988974205ca027585 100644
--- a/src/plugins/report/tests/report/csv.c
+++ b/src/plugins/report/tests/report/csv.c
@@ -1,10 +1,10 @@
 /* run.config
+PLUGIN: report from,inout,scope,eva
    LOG: csv.csv
-   OPT: -no-autoload-plugins -load-module from,inout,report,scope,eva -eva-warn-copy-indeterminate=-main4 -eva -eva-show-progress -eva-remove-redundant-alarms -eva-warn-key=alarm=inactive -then -report-csv @PTEST_RESULT@/csv.csv -report-no-proven -then -report-csv= -eva-warn-key=alarm -eva-slevel 1
+   OPT: -eva-warn-copy-indeterminate=-main4 -eva -eva-show-progress -eva-remove-redundant-alarms -eva-warn-key=alarm=inactive -then -report-csv @PTEST_RESULT@/csv.csv -report-no-proven -then -report-csv= -eva-warn-key=alarm -eva-slevel 1
    COMMENT: first, do an analysis without any message, but check that the .csv is complete. Then, redo the analysis with value warnings. slevel 1 is just there to force Value to restart
 */
 volatile v;
-
 void main1(int x) {
   int t[10];
   int u[15];
diff --git a/src/plugins/report/tests/report/hyp.i b/src/plugins/report/tests/report/hyp.i
index e8181b82a7f38bea8a94a56acc0a8545eee610df..8c448f2f02063d8dfc837607137387266ff1841f 100644
--- a/src/plugins/report/tests/report/hyp.i
+++ b/src/plugins/report/tests/report/hyp.i
@@ -1,6 +1,6 @@
 /* run.config
-   OPT: -no-autoload-plugins -load-module report -load-script tests/report/one_hyp.ml
-   OPT: -no-autoload-plugins -load-module report -load-script tests/report/several_hyps.ml
+   OPT: -load-script tests/report/one_hyp.ml
+   OPT: -load-script tests/report/several_hyps.ml
 */
 
 void f(void);
diff --git a/src/plugins/report/tests/report/single.i b/src/plugins/report/tests/report/single.i
index 5f152e86922de3c4d21e6dd15371cf24d9b75e89..ee9b1b4359d8283a9ec3f48769c6e35c9462127d 100644
--- a/src/plugins/report/tests/report/single.i
+++ b/src/plugins/report/tests/report/single.i
@@ -1,7 +1,7 @@
 /* run.config
-   OPT: -no-autoload-plugins -load-module report -load-script tests/report/projectified_status.ml
-   OPT: -no-autoload-plugins -load-module report -load-script tests/report/no_hyp.ml
-   OPT: -no-autoload-plugins -load-module report -load-script tests/report/multi_emitters.ml
+   OPT: -load-script tests/report/projectified_status.ml
+   OPT: -load-script tests/report/no_hyp.ml
+   OPT: -load-script tests/report/multi_emitters.ml
 */
 
 void main() {
diff --git a/src/plugins/report/tests/test_config b/src/plugins/report/tests/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..3c86d70370368197bb9b50d59a1557c9e37bf46a
--- /dev/null
+++ b/src/plugins/report/tests/test_config
@@ -0,0 +1 @@
+PLUGIN: report
diff --git a/src/plugins/server/tests/batch/test_config b/src/plugins/server/tests/batch/test_config
index 4addf96dff82842ab79ae170fda242244765a7c0..38b36108cbd35f2b835cf9811ca9d0af06f960ab 100644
--- a/src/plugins/server/tests/batch/test_config
+++ b/src/plugins/server/tests/batch/test_config
@@ -1,2 +1,3 @@
+PLUGIN: server
 LOG: @PTEST_NAME@.out.json
-OPT: -no-autoload-plugins -load-module server -check -server-batch @PTEST_DIR@/@PTEST_NAME@.json -server-batch-output-dir @PTEST_RESULT@ -server-msg-key use-relative-filepath
+OPT: -server-batch @PTEST_DIR@/@PTEST_NAME@.json -server-batch-output-dir @PTEST_RESULT@ -server-msg-key use-relative-filepath
diff --git a/src/plugins/studia/tests/test_config b/src/plugins/studia/tests/test_config
index dc79c97068c8125cbff6a916b7fed6d7b881d5f2..75c01a81568f5bd37820738e9a6fffd25798a21f 100644
--- a/src/plugins/studia/tests/test_config
+++ b/src/plugins/studia/tests/test_config
@@ -1 +1,2 @@
+PLUGIN: eva,inout,deps
 OPT: -eva -journal-disable -out -input -deps
diff --git a/src/plugins/variadic/tests/known/print_libc.c b/src/plugins/variadic/tests/known/print_libc.c
index 265018f2c74c6d406a2f0b2e28e6866fe3dc03af..a7df6ff263a8daff3f836fa14a1d98b4e2e585ea 100644
--- a/src/plugins/variadic/tests/known/print_libc.c
+++ b/src/plugins/variadic/tests/known/print_libc.c
@@ -1,6 +1,7 @@
 /* run.config
+PLUGIN: variadic
    LOG: print_libc.pretty.c
-   OPT: @PTEST_DIR@/empty.c -no-autoload-plugins -load-module variadic -no-print-libc -print -ocode @PTEST_DIR@/result/@PTEST_NAME@.pretty.c -then @PTEST_DIR@/result/@PTEST_NAME@.pretty.c
+   OPT: @PTEST_DIR@/empty.c -no-print-libc -print -ocode @PTEST_DIR@/result/@PTEST_NAME@.pretty.c -then @PTEST_DIR@/result/@PTEST_NAME@.pretty.c
  */
 
 #include <stdio.h>
diff --git a/src/plugins/variadic/tests/test_config b/src/plugins/variadic/tests/test_config
index e076935b23463006f8f89ffcddb93f7f2748c691..e93c90a92be816e38e26da50679fb9e4a0a0fcb7 100644
--- a/src/plugins/variadic/tests/test_config
+++ b/src/plugins/variadic/tests/test_config
@@ -1 +1,2 @@
-OPT: -no-autoload-plugins -load-module from,inout,eva,variadic,scope -check -print -kernel-verbose 0 -variadic-verbose 2 -eva -eva-slevel 10 -eva-msg-key=-initial-state,-summary -eva-no-show-progress -eva-print
+PLUGIN: variadic from,inout,eva,scope
+OPT: -print -kernel-verbose 0 -variadic-verbose 2 -eva -eva-slevel 10 -eva-msg-key=-initial-state,-summary -eva-no-show-progress -eva-print
diff --git a/src/plugins/wp/tests/test_config b/src/plugins/wp/tests/test_config
index 51675fdbc52d819cf3c99c4480b3130bd0fa64f3..122bc50aadc0af5e1a21b2b2baf4703d6955ef59 100644
--- a/src/plugins/wp/tests/test_config
+++ b/src/plugins/wp/tests/test_config
@@ -1,2 +1,3 @@
-CMD: @frama-c@ -no-autoload-plugins -load-module wp -wp -wp-prover none -wp-print -wp-share ./share -wp-msg-key shell -wp-warn-key "pedantic-assigns=inactive"
+PLUGIN: wp
+CMD: @frama-c@ -wp -wp-prover none -wp-print -wp-share ./share -wp-msg-key shell -wp-warn-key "pedantic-assigns=inactive"
 OPT:
diff --git a/src/plugins/wp/tests/test_config_qualif b/src/plugins/wp/tests/test_config_qualif
index f5f56f99251f2a4100444ab7bb74b0abc2128e07..f0225eb3f9a0c31d90b77761394778c3a2268793 100644
--- a/src/plugins/wp/tests/test_config_qualif
+++ b/src/plugins/wp/tests/test_config_qualif
@@ -1,2 +1,3 @@
-CMD: @frama-c@ -no-autoload-plugins -load-module wp -wp -wp-par 1 -wp-share ./share -wp-msg-key shell -wp-warn-key pedantic-assigns=inactive -wp-report tests/qualif.report -wp-session @PTEST_DIR@/oracle@PTEST_CONFIG@/@PTEST_NAME@.@PTEST_NUMBER@.session -wp-cache-env -wp-cache replay @PTEST_FILE@ -wp-coq-timeout 120
+PLUGIN: wp
+CMD: @frama-c@ -wp -wp-par 1 -wp-share ./share -wp-msg-key shell -wp-warn-key pedantic-assigns=inactive -wp-report tests/qualif.report -wp-session @PTEST_DIR@/oracle@PTEST_CONFIG@/@PTEST_NAME@.@PTEST_NUMBER@.session -wp-cache-env -wp-cache replay @PTEST_FILE@ -wp-coq-timeout 120
 OPT:
diff --git a/src/plugins/wp/tests/wp_acsl/checks.i b/src/plugins/wp/tests/wp_acsl/checks.i
index f3fdcbfcab8f623e1c5393ae7e7b4b977300a6c2..c55cf4d5c8907db89f1cb70eb449041ace623a33 100644
--- a/src/plugins/wp/tests/wp_acsl/checks.i
+++ b/src/plugins/wp/tests/wp_acsl/checks.i
@@ -1,14 +1,14 @@
 /* run.config
-   OPT: -eva -load-module scope,eva,report -then -report
+PLUGIN: wp,rtegen,scope,eva,report
+   OPT: -then -eva -then -report
+PLUGIN: wp,rtegen
    OPT: -wp-prop=@check
    OPT: -wp-prop=-@check
 */
 /* run.config_qualif
-   OPT: -load-module report -wp-steps 5 -then -report
+PLUGIN: wp,rtegen,report
+   OPT: -wp-steps 5 -then -report
 */
-
-// note: eva and wp gives the same reporting
-
 //@ axiomatic A { predicate P reads \nothing ; }
 void main() {
   //@check  c1: P;
@@ -17,3 +17,4 @@ void main() {
   //@assert a2: P;
   ;
 }
+// note: eva and wp gives the same reporting
diff --git a/src/plugins/wp/tests/wp_manual/manual.i b/src/plugins/wp/tests/wp_manual/manual.i
index 11a04e0783ab7854b9dcb873766eaa739de19bfa..9f3afd5d3ae753eb86fa336712f033cf4b64a825 100644
--- a/src/plugins/wp/tests/wp_manual/manual.i
+++ b/src/plugins/wp/tests/wp_manual/manual.i
@@ -4,6 +4,7 @@
 /* run.config_qualif
    OPT: -wp-msg-key shell @PTEST_DIR@/working_dir/swap.c @PTEST_DIR@/working_dir/swap1.h
    OPT: -wp-msg-key shell -wp-rte @PTEST_DIR@/working_dir/swap.c @PTEST_DIR@/working_dir/swap2.h
-   OPT: -load-module report -kernel-verbose 0 -wp-msg-key shell -wp-rte @PTEST_DIR@/working_dir/swap.c @PTEST_DIR@/working_dir/swap2.h -wp-verbose 0 -then -no-unicode -report
+PLUGIN: wp,rtegen,report
+   OPT: -kernel-verbose 0 -wp-msg-key shell -wp-rte @PTEST_DIR@/working_dir/swap.c @PTEST_DIR@/working_dir/swap2.h -wp-verbose 0 -then -no-unicode -report
 */
 void look_at_working_dir(void);
diff --git a/src/plugins/wp/tests/wp_plugin/nosession.i b/src/plugins/wp/tests/wp_plugin/nosession.i
index bb038ffd831fcb13d4ecbfeeef7154c92d576820..d1873a1222997221ed75c281b72bb3663ce61eeb 100644
--- a/src/plugins/wp/tests/wp_plugin/nosession.i
+++ b/src/plugins/wp/tests/wp_plugin/nosession.i
@@ -1,9 +1,9 @@
 /* run.config
    DONTRUN:
 */
-
 /* run.config_qualif
-   CMD: @frama-c@ -no-autoload-plugins -load-module wp -wp-share ./share -wp-msg-key shell -wp-warn-key pedantic-assigns=inactive
+   CMD: @frama-c@ -wp-share ./share -wp-msg-key shell -wp-warn-key pedantic-assigns=inactive
+PLUGIN: wp,rtegen
    OPT: -wp -wp-prover alt-ergo -wp-session shall_not_exists_dir -wp-cache offline -wp-no-cache-env
    COMMENT: The session directory shall not be created
  */
diff --git a/src/plugins/wp/tests/wp_plugin/removed.i b/src/plugins/wp/tests/wp_plugin/removed.i
index 9a4824f460e97fc22bacd03aae895c0e4c6147eb..08ad6804231703160d824e710dd98a9abfbc47f0 100644
--- a/src/plugins/wp/tests/wp_plugin/removed.i
+++ b/src/plugins/wp/tests/wp_plugin/removed.i
@@ -1,7 +1,7 @@
 /* run.config_qualif
-   OPT: -load-module eva,scope -no-wp -eva -eva-msg-key=-summary -then -wp -then -no-eva -warn-unsigned-overflow -wp
+PLUGIN: wp,rtegen,eva,scope
+   OPT: -no-wp -eva -eva-msg-key=-summary -then -wp -then -no-eva -warn-unsigned-overflow -wp
  */
-
 /* run.config
    DONTRUN:
 */
diff --git a/src/plugins/wp/tests/wp_region/test_config b/src/plugins/wp/tests/wp_region/test_config
index 57d4ae071a433f4d3cecca0d8a218c0557f02e6d..c85101d0b58d18ca145d6963a56e1163ad1a7a0e 100644
--- a/src/plugins/wp/tests/wp_region/test_config
+++ b/src/plugins/wp/tests/wp_region/test_config
@@ -1,3 +1,4 @@
-CMD: @frama-c@ -no-autoload-plugins -load-module wp
+PLUGIN: wp,rtegen
+CMD: @frama-c@
 LOG: @PTEST_NAME@/region/job.dot
 OPT: -wp-prover none -wp-region -wp-msg-key dot,chunk,roots,garbled -wp-warn-key pedantic-assigns=inactive -wp-out @PTEST_DIR@/result/@PTEST_NAME@ -wp-fct job
diff --git a/src/plugins/wp/tests/wp_usage/save_load.i b/src/plugins/wp/tests/wp_usage/save_load.i
index 8e908e8b69636dbd586fb832035975253a0cb13f..72e3c2595a6d9d9bf219e0b22aa4cbe494b9cb4c 100644
--- a/src/plugins/wp/tests/wp_usage/save_load.i
+++ b/src/plugins/wp/tests/wp_usage/save_load.i
@@ -1,6 +1,6 @@
 /* run.config
-   EXECNOW: LOG save_load.sav.res LOG save_load.sav.err BIN @PTEST_NAME@.sav @frama-c@ -no-autoload-plugins -load-module wp -wp-warn-key pedantic-assigns=inactive -wp-share ./share -wp -wp-print -wp-prover none @PTEST_FILE@ -save @PTEST_DIR@/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@.sav.res 2> @PTEST_DIR@/result/@PTEST_NAME@.sav.err
-   CMD: @frama-c@ -no-autoload-plugins -load-module wp -load @PTEST_DIR@/@PTEST_NAME@.sav -wp-warn-key pedantic-assigns=inactive
+   EXECNOW: LOG save_load.sav.res LOG save_load.sav.err BIN @PTEST_NAME@.sav @frama-c@ -wp-warn-key pedantic-assigns=inactive -wp-share ./share -wp -wp-print -wp-prover none @PTEST_FILE@ -save @PTEST_DIR@/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@.sav.res 2> @PTEST_DIR@/result/@PTEST_NAME@.sav.err
+   CMD: @frama-c@ -load @PTEST_DIR@/@PTEST_NAME@.sav -wp-warn-key pedantic-assigns=inactive
    OPT: -print
    OPT: -wp -wp-prover none -wp-print
 */
diff --git a/tests/builtins/big_local_array.i b/tests/builtins/big_local_array.i
index 83bb0fda45a32a5472b6aed4986d7fd80fa2cc0b..7c0854e14ae028bfb36a286b0aff0c94f6139784 100644
--- a/tests/builtins/big_local_array.i
+++ b/tests/builtins/big_local_array.i
@@ -1,7 +1,9 @@
 /* run.config*
+ PLUGIN: @EVA_PLUGINS@ report
    OPT: @EVA_OPTIONS@ -print -journal-disable -eva -report
  MODULE: big_local_array_script
    OPT: @EVA_OPTIONS@ -then-on prj -print -report
+ PLUGIN: @EVA_PLUGINS@
  MODULE:
    OPT: @EVA_OPTIONS@ -print -journal-disable -no-initialized-padding-locals -eva
 */
@@ -12,7 +14,7 @@ struct S {
 };
 
 int main () {
-  struct S x[32] = 
+  struct S x[32] =
     { [0] = { .a = { 1,2,3 }, .b = { [5] = 5, 6, 7 }},
       [3] = { 0,1,2,3,.b = { [17]=17 } }
     };
diff --git a/tests/builtins/test_config b/tests/builtins/test_config
index 365fdc8d48cbda0c83335a388b0cf9b0d7ceb848..0264f96531357bbcf6c3f754e378dae60f5d84b8 100644
--- a/tests/builtins/test_config
+++ b/tests/builtins/test_config
@@ -1,3 +1,4 @@
 MACRO: EVA_OPTIONS @EVA_OPTIONS@ -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/callgraph/issue_55_iter_over_unregistered_function.i b/tests/callgraph/issue_55_iter_over_unregistered_function.i
index a39e29e042e8c876ef5338610289c83d56478cd0..535d2f3c5494e545651504c2b5e5e0bf88018e1c 100644
--- a/tests/callgraph/issue_55_iter_over_unregistered_function.i
+++ b/tests/callgraph/issue_55_iter_over_unregistered_function.i
@@ -1,8 +1,8 @@
 /* run.config
+PLUGIN: @PTEST_PLUGIN@ eva,scope,inout
    COMMENT: Test call to Callgraph.Uses.iter_on_callers/callees (through Inout)
    OPT: -inout
 */
-
 /*@ assigns *p \from x; */
 extern void f(int x, int *p);
 
diff --git a/tests/callgraph/no_fp_unsound_warning.i b/tests/callgraph/no_fp_unsound_warning.i
index f841a6e1821b5c00be834118f3cd6a8594a9c59f..dcb0da94e41ae1c1c33a964b1015767b78cb163b 100644
--- a/tests/callgraph/no_fp_unsound_warning.i
+++ b/tests/callgraph/no_fp_unsound_warning.i
@@ -1,8 +1,8 @@
 /* run.config
+PLUGIN: @PTEST_PLUGIN@ eva,scope,inout
    COMMENT: Test that callgraph users are warned about -cg-no-function-pointers
    OPT: -cg-function-pointers -out
    OPT: -cg-no-function-pointers -out
 */
-
 void main() {
 }
diff --git a/tests/callgraph/test_config b/tests/callgraph/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..0757d9602b453e52bac8b869d4f07371c66d6a89
--- /dev/null
+++ b/tests/callgraph/test_config
@@ -0,0 +1,5 @@
+PLUGIN: callgraph
+STDOPT:
+
+# COMMENT: Directive to add in your test file when using STDOPT:
+# COMMENT: PLUGIN: @PTEST_PLUGIN@ @EVA_PLUGINS@
diff --git a/tests/compliance/test_config b/tests/compliance/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..2454128362a6b8b71db649b6d45f3baf2b6df496
--- /dev/null
+++ b/tests/compliance/test_config
@@ -0,0 +1 @@
+PLUGIN:
diff --git a/tests/constant_propagation/bts117.c b/tests/constant_propagation/bts117.c
index 420cd12e426c82096ca8e4d57efc742b1e5258c8..5d0662f5a3382c3daa5aa7ce45acb44717853194 100644
--- a/tests/constant_propagation/bts117.c
+++ b/tests/constant_propagation/bts117.c
@@ -1,9 +1,13 @@
 /* run.config
-OPT: -journal-disable -print
-OPT: -journal-disable -semantic-const-folding @EVA_OPTIONS@
-OPT: -journal-disable -sparecode-analysis @EVA_OPTIONS@
+PLUGIN:
+   OPT: -print
+PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@
+   OPT: -semantic-const-folding @EVA_OPTIONS@
+PLUGIN: @PTEST_PLUGIN@ sparecode
+   OPT: -sparecode-analysis @EVA_OPTIONS@
 */
 
+
 int main1 (void) { 
   int r ;
   if (1) r = 0; else r = 2;
@@ -15,6 +19,7 @@ int main2 (void){
   if (r) r = 0; else r = 2;
   return r;
 }
+
 int main (void) {
   int x1 = main1();
   int x2 = main2();
diff --git a/tests/constant_propagation/const_propagate.c b/tests/constant_propagation/const_propagate.c
index 064fee49c0ef0e892a9850a3d8acc80e410265bb..2e5e3f728eb889020c6c3f66a94155cfb7eecb2b 100644
--- a/tests/constant_propagation/const_propagate.c
+++ b/tests/constant_propagation/const_propagate.c
@@ -1,9 +1,9 @@
 /* run.config
-   OPT: -eva @EVA_OPTIONS@ -deps -out -input -scf -journal-disable
-   OPT: -scf @EVA_OPTIONS@ -cast-from-constant -semantic-const-fold add3 -main init -journal-disable
+PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@ from inout
+   OPT: -eva @EVA_OPTIONS@ -deps -out -input -scf
+   OPT: -scf @EVA_OPTIONS@ -main init -journal-disable -cast-from-constant -semantic-const-fold add3
 */
-int x,y,z;
-int TAB[10];
+int x,y,z, TAB[10];
 struct st { int a, b ; } s1, s2;
 typedef struct st ST ;
 void test_struct (void) {
diff --git a/tests/constant_propagation/oracle/bts117.1.res.oracle b/tests/constant_propagation/oracle/bts117.1.res.oracle
index d496d1cea9692624bbb6b2c2f995932ef05c64d9..a918171fe0348838a78e2a483c3ee8dc38bc022a 100644
--- a/tests/constant_propagation/oracle/bts117.1.res.oracle
+++ b/tests/constant_propagation/oracle/bts117.1.res.oracle
@@ -6,11 +6,11 @@
 [eva:initial-state] Values of globals at initialization
   
 [eva] computing for function main1 <- main.
-  Called from tests/constant_propagation/bts117.c:19.
+  Called from tests/constant_propagation/bts117.c:24.
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/constant_propagation/bts117.c:20.
+  Called from tests/constant_propagation/bts117.c:25.
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] Recording results for main
diff --git a/tests/constant_propagation/oracle/bts117.2.res.oracle b/tests/constant_propagation/oracle/bts117.2.res.oracle
index c4fe5b334c660df8b4797674fe3eb150bf073a10..493c47fa83c80699c7fe64a78162c6f389e49e39 100644
--- a/tests/constant_propagation/oracle/bts117.2.res.oracle
+++ b/tests/constant_propagation/oracle/bts117.2.res.oracle
@@ -6,11 +6,11 @@
 [eva:initial-state] Values of globals at initialization
   
 [eva] computing for function main1 <- main.
-  Called from tests/constant_propagation/bts117.c:19.
+  Called from tests/constant_propagation/bts117.c:24.
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/constant_propagation/bts117.c:20.
+  Called from tests/constant_propagation/bts117.c:25.
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] Recording results for main
diff --git a/tests/constant_propagation/test_config b/tests/constant_propagation/test_config
index c9ce20f05d9b350fd5d065e1d08f26e53fc065b6..b3a8965ab1afefa926424d9f4730c5832a90b05a 100644
--- a/tests/constant_propagation/test_config
+++ b/tests/constant_propagation/test_config
@@ -1 +1,3 @@
+MACRO: CONSTANT_PROPAGATION_PLUGINS constant_propagation eva,scope
+PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@
 OPT: -journal-disable -scf @EVA_OPTIONS@ -machdep x86_32
diff --git a/tests/dynamic/test_config b/tests/dynamic/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..2454128362a6b8b71db649b6d45f3baf2b6df496
--- /dev/null
+++ b/tests/dynamic/test_config
@@ -0,0 +1 @@
+PLUGIN:
diff --git a/tests/float/absorb.c b/tests/float/absorb.c
index a71117b1674d5f6ba2b6dc97aeacd836c6f275cd..dbc2c9be16eb08e8623adacb43484cee5e14f4b2 100644
--- a/tests/float/absorb.c
+++ b/tests/float/absorb.c
@@ -1,16 +1,16 @@
 /* run.config
    COMMENT: run.config is intentionally not-*
-   EXECNOW: BIN absorb.sav LOG absorb_sav.res LOG absorb_sav.err FRAMAC_PLUGIN=tests/.empty @frama-c@ -journal-disable -save @PTEST_DIR@/result/absorb.sav @PTEST_FILE@ > @PTEST_DIR@/result/absorb_sav.res 2> @PTEST_DIR@/result/absorb_sav.err
-   EXECNOW: BIN absorb.sav2 LOG absorb_sav2.res LOG absorb_sav2.err @frama-c@ -load @PTEST_DIR@/result/absorb.sav -eva @EVA_CONFIG@ -journal-disable -float-hex -save @PTEST_DIR@/result/absorb.sav2 > @PTEST_DIR@/result/absorb_sav2.res 2> @PTEST_DIR@/result/absorb_sav2.err
+PLUGIN:
+   EXECNOW: BIN absorb.sav LOG absorb_sav.res LOG absorb_sav.err @frama-c@ -save @PTEST_DIR@/result/absorb.sav @PTEST_FILE@ > @PTEST_DIR@/result/absorb_sav.res 2> @PTEST_DIR@/result/absorb_sav.err
+PLUGIN: @EVA_PLUGINS@
+   EXECNOW: BIN absorb.sav2 LOG absorb_sav2.res LOG absorb_sav2.err @frama-c@ -load @PTEST_DIR@/result/absorb.sav -eva @EVA_CONFIG@ -float-hex -save @PTEST_DIR@/result/absorb.sav2 > @PTEST_DIR@/result/absorb_sav2.res 2> @PTEST_DIR@/result/absorb_sav2.err
    OPT: -load @PTEST_DIR@/result/absorb.sav2 -deps -out -input
 */
 /* run.config*
    DONTRUN:
 */
 #include "__fc_builtin.h"
-
 float x = 1.0, y = 0.0, z, t, min_f, min_fl, den;
-
 void main() {
   long long b = Frama_C_interval(-2000000001, 2000000001);
   b = b * b;
diff --git a/tests/impact/test_config b/tests/impact/test_config
index c449d18f602ef2fe815b38e0f2cdc3d467e1c815..953d2049ccde9dd0f40d5b3d195c5e3eb371b070 100644
--- a/tests/impact/test_config
+++ b/tests/impact/test_config
@@ -1 +1,2 @@
-OPT: -journal-disable -impact-print @EVA_OPTIONS@
+PLUGIN: @EVA_PLUGINS@ impact
+OPT: -impact-print @EVA_OPTIONS@
diff --git a/tests/jcdb/jcdb.c b/tests/jcdb/jcdb.c
index 13af9552975e857f6e062cd3068b82e98d9a33bd..c35dc80b7bfb0406a6653fcd8891cb2d7063b2a4 100644
--- a/tests/jcdb/jcdb.c
+++ b/tests/jcdb/jcdb.c
@@ -5,7 +5,7 @@
    OPT: -json-compilation-database @PTEST_DIR@/with_arguments.json -no-autoload-plugins
  MODULE:
    EXECNOW: LOG list_files.res LOG list_files.err share/analysis-scripts/list_files.py @PTEST_DIR@/compile_commands_working.json > @PTEST_DIR@/result/list_files.res 2> @PTEST_DIR@/result/list_files.err
-   EXECNOW: LOG logic-pp-include.res LOG logic-pp-include.err @frama-c@ -json-compilation-database @PTEST_DIR@/logic-pp-include @PTEST_DIR@/logic-pp-include/no-stdio.c -print -no-autoload-plugins > @PTEST_DIR@/result/logic-pp-include.res 2> @PTEST_DIR@/result/logic-pp-include.err
+   EXECNOW: LOG logic-pp-include.res LOG logic-pp-include.err @frama-c@ -json-compilation-database @PTEST_DIR@/logic-pp-include @PTEST_DIR@/logic-pp-include/no-stdio.c -print > @PTEST_DIR@/result/logic-pp-include.res 2> @PTEST_DIR@/result/logic-pp-include.err
 */
 
 #include <stdio.h>
diff --git a/tests/jcdb/test_config b/tests/jcdb/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..2454128362a6b8b71db649b6d45f3baf2b6df496
--- /dev/null
+++ b/tests/jcdb/test_config
@@ -0,0 +1 @@
+PLUGIN:
diff --git a/tests/journal/intra.i b/tests/journal/intra.i
index 71676ee94fde86777dcac52dfb32ac462dbeba74..274b87c862bf5786beffcb180565eb82d3ddda93 100644
--- a/tests/journal/intra.i
+++ b/tests/journal/intra.i
@@ -1,5 +1,6 @@
 /* run.config
-   MODULE: @PTEST_NAME@
+ PLUGIN: @EVA_PLUGINS@ sparecode
+ MODULE: @PTEST_NAME@
    EXECNOW: BIN intra_journal.ml @frama-c@ -eva-show-progress -journal-enable -journal-name tests/journal/result/intra_journal.ml @PTEST_DIR@/@PTEST_NAME@.i > /dev/null 2> /dev/null
    CMD: @frama-c@
    OPT: -load-script tests/journal/result/intra_journal -journal-disable
@@ -12,7 +13,6 @@
  * slicing analysis removes statement having variables with
  * prefix "spare_" and "any_"
  */
-
 int G;
 
 int tmp (int a) {
diff --git a/tests/journal/test_config b/tests/journal/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..5b4e9a8bdd2b7dce5f1cd2d18923ecc5f7519b56
--- /dev/null
+++ b/tests/journal/test_config
@@ -0,0 +1,2 @@
+PLUGIN:
+STDOPT:
diff --git a/tests/libc/coverage.c b/tests/libc/coverage.c
index 342d79af62894d72d30d5a03c8e9c215baf37229..8f628572259c0844ff92bea687695c87757e4cd1 100644
--- a/tests/libc/coverage.c
+++ b/tests/libc/coverage.c
@@ -1,7 +1,7 @@
 /* run.config*
+PLUGIN: @PTEST_PLUGIN@ metrics
    OPT: -eva-no-builtins-auto @EVA_OPTIONS@ share/libc/string.c -eva -eva-slevel 6 -metrics-eva-cover -then -metrics-libc
 */
-
 #include "string.h"
 
 void main() {
diff --git a/tests/libc/fc_libc.c b/tests/libc/fc_libc.c
index 7b1e11d5a7fca2ade7f3553ea51e6200046fbac5..be7d334d64589f5c1a39a62f7ca4e09e0aea2dc7 100644
--- a/tests/libc/fc_libc.c
+++ b/tests/libc/fc_libc.c
@@ -1,6 +1,7 @@
 /* run.config*
+ PLUGIN: @EVA_PLUGINS@ metrics
  MODULE: check_libc_naming_conventions, check_const
-   OPT: -print -cpp-extra-args='-nostdinc -Ishare/libc' -metrics -metrics-libc -load-module metrics -eva @EVA_CONFIG@ -then -lib-entry -no-print -metrics-no-libc
+   OPT: -print -cpp-extra-args='-nostdinc -Ishare/libc' -metrics -metrics-libc -eva @EVA_CONFIG@ -then -lib-entry -no-print -metrics-no-libc
  MODULE:
    OPT: -print -print-libc -machdep x86_32
  MODULE: check_parsing_individual_headers
@@ -151,7 +152,6 @@
 #include "utmpx.h"
 #include "wchar.h"
 #include "wctype.h"
-
 void main() {
   /* The variables below must be const; otherwise the preconditions
      and the assigns/from of some functions will not match */
diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle
index 7955573b0c8101d35d2a7b324dcc54e1a9266e80..28a573d0275225899c6d7d10046937e518c1b943 100644
--- a/tests/libc/oracle/fc_libc.0.res.oracle
+++ b/tests/libc/oracle/fc_libc.0.res.oracle
@@ -1,7 +1,4 @@
 [kernel] Parsing tests/libc/fc_libc.c (with preprocessing)
-[kernel] :0: Warning: unnamed requires
-[kernel] share/libc/sys/socket.h:451: Warning: 
-  clause with '\initialized' must contain name 'initialization'
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
 [eva] Initial state computed
@@ -201,6 +198,9 @@
   Function call = 98
   Pointer dereferencing = 161
   Cyclomatic complexity = 299
+[kernel] :0: Warning: unnamed requires
+[kernel] share/libc/sys/socket.h:451: Warning: 
+  clause with '\initialized' must contain name 'initialization'
 /* Generated by Frama-C */
 #include "__fc_builtin.c"
 #include "__fc_builtin.h"
diff --git a/tests/libc/test_config b/tests/libc/test_config
index cf5c5bb18359425ba47e530ac8c06c936f24d7e8..069a4888d38f81544d6797ecad65e1e1070e3198 100644
--- a/tests/libc/test_config
+++ b/tests/libc/test_config
@@ -1 +1,2 @@
+PLUGIN: @EVA_PLUGINS@
 OPT: -eva @EVA_CONFIG@ -cpp-extra-args='-nostdinc -Ishare/libc'
diff --git a/tests/metrics/test_config b/tests/metrics/test_config
index de6ff0089d8e793cb118e41d7cf4db48f4dfd3d6..b528a2dd90282d3f8f7655c1da9554b390f84662 100644
--- a/tests/metrics/test_config
+++ b/tests/metrics/test_config
@@ -1 +1,2 @@
-OPT: -no-autoload-plugins -load-module metrics,scope -metrics
+PLUGIN: metrics,scope
+OPT: -metrics
diff --git a/tests/misc/audit.c b/tests/misc/audit.c
index 094beded8fc1e0ed11bd9f1b31a8ffd134e870de..40a9e6b9f1b3e13039be451f6027cd259e0c055e 100644
--- a/tests/misc/audit.c
+++ b/tests/misc/audit.c
@@ -1,8 +1,8 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@
    LOG: audit-out.json
    STDOPT: #"-audit-check @PTEST_DIR@/audit-in.json -audit-prepare @PTEST_RESULT@/audit-out.json -kernel-warn-key audit=active"
 */
-
 #include "audit_included.h"
 #include "audit_included_but_not_listed.h"
 
diff --git a/tests/misc/booleans.i b/tests/misc/booleans.i
index 08cbc6cbd89c770448b363d827b620424faf1faa..224a393116b2932b4f29075fbb35705e354b3ca6 100644
--- a/tests/misc/booleans.i
+++ b/tests/misc/booleans.i
@@ -1,6 +1,8 @@
 /*run.config
+PLUGIN: @EVA_PLUGINS@
   OPT: -eva -print
 */
+
 int main (void) {
   int x = 42;
   /*@ check (boolean)x == 17; */
diff --git a/tests/misc/bts0541.c b/tests/misc/bts0541.c
index 6bbabaaa30cadda796dfc7d69e53074fb4058368..a8dd2eebf5d3e4c744ef72e7eabf100b2c8241e2 100644
--- a/tests/misc/bts0541.c
+++ b/tests/misc/bts0541.c
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@
    OPT: -pp-annot -cpp-extra-args="-I./share/libc" -pp-annot -eva @EVA_CONFIG@
 */
-
 #include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/tests/misc/bts1201.i b/tests/misc/bts1201.i
index dda5727fbcd2222c91dcb711d8d75098afd97857..9f4c1d1506d94d42df8fd76ff4a6317639b94298 100644
--- a/tests/misc/bts1201.i
+++ b/tests/misc/bts1201.i
@@ -1,8 +1,11 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT: -eva-verbose 2 -print
 */
-void main() { //@ assert \true;
+
+void main() {
+  //@ assert \true;
 }
 
 void main2() {
diff --git a/tests/misc/bts1347.i b/tests/misc/bts1347.i
index 2cb8c609baa0dfb5d506d7f24694408d1363f62e..f4f0441da5a6fc233463f202e6e1f8dee7175314 100644
--- a/tests/misc/bts1347.i
+++ b/tests/misc/bts1347.i
@@ -1,6 +1,13 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@ report
  MODULE: @PTEST_NAME@
    OPT:  @EVA_OPTIONS@ -then -report
 */
-int f(int *x) { return *x; }
-int g(int *x) { return *(x++); }
+
+int f(int *x) {
+  return *x;
+}
+
+int g(int *x) {
+  return *(x++);
+}
diff --git a/tests/misc/change_main.i b/tests/misc/change_main.i
index 374658f38ce3c2823acdbe90a413a4b8e17deb55..49e603b43cdee671bad07b0047e70732f9dfa92e 100644
--- a/tests/misc/change_main.i
+++ b/tests/misc/change_main.i
@@ -1,6 +1,6 @@
 /* run.config*
+ PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT: -eva -main f -then-on change_main -main g -eva
 */
-
 int f(int x) { return x; }
diff --git a/tests/misc/char_ampamp.c b/tests/misc/char_ampamp.c
index aaa77b01d752f75c7487100266144678c766550b..ca336e60b0d24d6dfb1619fbc1e9f1d20f2b08eb 100644
--- a/tests/misc/char_ampamp.c
+++ b/tests/misc/char_ampamp.c
@@ -1,3 +1,8 @@
+/* run.config
+ PLUGIN: @EVA_PLUGINS@
+STDOPT:
+*/
+
 char c=1;
 int y;
 
diff --git a/tests/misc/ensures.i b/tests/misc/ensures.i
index 88df7e52cee82769532184b9ea77ea1b73d27644..876ba0671a7ffc352a9dab685b156152be9df7f2 100644
--- a/tests/misc/ensures.i
+++ b/tests/misc/ensures.i
@@ -1,6 +1,11 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT:
 */
+
+
 //@ ensures *p==1;
-void main(int * p){ *p = 0; }
+void main(int * p) {
+  *p = 0;
+}
diff --git a/tests/misc/fam_with_init.i b/tests/misc/fam_with_init.i
index d7e8c5463b4468718e08c0388284d369ee08f7d5..72e16cb63b0b2b40dd11e64a6053fae0e56a64ca 100644
--- a/tests/misc/fam_with_init.i
+++ b/tests/misc/fam_with_init.i
@@ -1,7 +1,7 @@
 /* run.config
-STDOPT: +"-print"
+PLUGIN: @EVA_PLUGINS@
+  STDOPT: +"-print"
 */
-
 struct s {
   int a;
   char data[]; // FAM
diff --git a/tests/misc/function_ptr_alignof.i b/tests/misc/function_ptr_alignof.i
index 1f4b218d0bfd2f02b8e5d3e152eb1177fb4ddf75..deda78cccb535cb02e4055951cb34c12529b6f1f 100644
--- a/tests/misc/function_ptr_alignof.i
+++ b/tests/misc/function_ptr_alignof.i
@@ -1,9 +1,9 @@
 /* run.config*
+PLUGIN: @EVA_PLUGINS@
  EXIT: 1
    STDOPT:
 */
 
-
 void f(void) { }
 
 int main(void)
diff --git a/tests/misc/function_ptr_lvalue_1.i b/tests/misc/function_ptr_lvalue_1.i
index b48ddbd09f7be85d24a13b2f581addd5a8a8fbae..3659b05aae347cae3631c649ef9e531f4d060b19 100644
--- a/tests/misc/function_ptr_lvalue_1.i
+++ b/tests/misc/function_ptr_lvalue_1.i
@@ -1,9 +1,9 @@
 /* run.config*
+PLUGIN: @EVA_PLUGINS@
  EXIT: 1
    STDOPT:
 */
 
-
 void f(void) {}
 
 int main()
diff --git a/tests/misc/function_ptr_lvalue_2.i b/tests/misc/function_ptr_lvalue_2.i
index 333304c449f7728babafb3871439aa92bae480a3..a8e98ba4c41961fd96211487a1f5e990c9893a57 100644
--- a/tests/misc/function_ptr_lvalue_2.i
+++ b/tests/misc/function_ptr_lvalue_2.i
@@ -1,8 +1,8 @@
 /* run.config*
+PLUGIN: @EVA_PLUGINS@
  EXIT: 1
    STDOPT:
 */
-
 void f(void) {}
 
 int main()
diff --git a/tests/misc/function_ptr_sizeof.i b/tests/misc/function_ptr_sizeof.i
index 36558b8808f5835948fe3bbe775dda0db517ad39..da0a6d2b8aebecdd7093f6127f843562df543e36 100644
--- a/tests/misc/function_ptr_sizeof.i
+++ b/tests/misc/function_ptr_sizeof.i
@@ -1,9 +1,9 @@
 /* run.config*
+PLUGIN: @EVA_PLUGINS@
    EXIT: 1
    STDOPT:
 */
 
-
 void f(void) { }
 
 int main(void)
diff --git a/tests/misc/issue109.i b/tests/misc/issue109.i
index 4a6e475212ebf15e558888920e4c8e3600bc84fa..60b50daf93dd13b0f37f6a83faf4d3b9fcac4a2a 100644
--- a/tests/misc/issue109.i
+++ b/tests/misc/issue109.i
@@ -1,11 +1,17 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT: -eva @EVA_CONFIG@ -eva-slevel-function main:10
 */
+
 void main() {
+
   int i, j = 0;
+
   for (i=0; i<10; i++) {
     j++;
   }
+
   //@ assert i == j;
+
 }
diff --git a/tests/misc/log-file.i b/tests/misc/log-file.i
index 498e4e0654ef12260798992d0ea71fcc66f73fd8..09a77cc462d57fc1678e9f1263f47bbdbece0569 100644
--- a/tests/misc/log-file.i
+++ b/tests/misc/log-file.i
@@ -6,6 +6,7 @@
    LOG: log-file-value-all.txt
    LOG: log-file-value-default.txt
    LOG: plugin-log-all.txt
+PLUGIN: @EVA_PLUGINS@
    STDOPT: #"-kernel-log w:@PTEST_RESULT@/log-file-kernel-warnings.txt,r:@PTEST_RESULT@/log-file-kernel-results.txt -eva-log f:@PTEST_RESULT@/log-file-feedback.txt,afewr:@PTEST_RESULT@/log-file-value-all.txt -eva-log :@PTEST_RESULT@/log-file-value-default.txt -then -kernel-log f:@PTEST_RESULT@/log-file-feedback.txt"
  MODULE: plugin_log
    OPT: -kernel-msg-key foo-category -kernel-log=a:@PTEST_RESULT@/plugin-log-all.txt
diff --git a/tests/misc/log_selfrec.i b/tests/misc/log_selfrec.i
index e7a647f6e453e88b9a63b844539f12d718e9cfbe..46e688a3e3faf0fd1daada2cb54d82835b03a70a 100644
--- a/tests/misc/log_selfrec.i
+++ b/tests/misc/log_selfrec.i
@@ -1,5 +1,5 @@
 /* run.config*
-
+PLUGIN: report
  EXIT: 1
    OPT: -foobar -report-unclassified-error jazz
 */
diff --git a/tests/misc/log_twice.i b/tests/misc/log_twice.i
index 06a2ebcceeb318a91580fa7d4fb7bab6b922a72f..5a43817b8e49604810dddffb5a010641b79962ae 100644
--- a/tests/misc/log_twice.i
+++ b/tests/misc/log_twice.i
@@ -1,8 +1,8 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT: @EVA_CONFIG@
 */
-
 int* f() {
   int x;
   return &x;
diff --git a/tests/misc/long_ident.c b/tests/misc/long_ident.c
index e0ebb31439ac8df4662bbc3106d93d620ff94a9b..58136fd73650e7c2a9171d569c57cf3a9c6e1600 100644
--- a/tests/misc/long_ident.c
+++ b/tests/misc/long_ident.c
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: obfuscator
    OPT: -obfuscate -journal-disable
 */
 
diff --git a/tests/misc/obfuscate.c b/tests/misc/obfuscate.c
index f993479d0f78d337c57155e20dd3cddbf06a6228..0fb0323afb82e831788ae82bd525b0934b68d17f 100644
--- a/tests/misc/obfuscate.c
+++ b/tests/misc/obfuscate.c
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: obfuscator
    OPT: -obfuscate
 */
 
diff --git a/tests/misc/oracle/audit-out.json b/tests/misc/oracle/audit-out.json
index b7d55c35d2b08c652da0b87c0ac9f06e6d2abe66..8c4217e9169d95b3ceb869fb45f8a1fd96ec8877 100644
--- a/tests/misc/oracle/audit-out.json
+++ b/tests/misc/oracle/audit-out.json
@@ -69,7 +69,7 @@
     }
   },
   "sources": {
-    "tests/misc/audit.c": "aec49f030fcf92bc135bd75e7088194f",
+    "tests/misc/audit.c": "f94ce1c8f5e5911260931783495e2c88",
     "tests/misc/audit_included.h": "c2cc488143a476f69cf2ed04c3439e6e",
     "tests/misc/audit_included_but_not_listed.h":
       "c2cc488143a476f69cf2ed04c3439e6e"
diff --git a/tests/misc/oracle/audit.res.oracle b/tests/misc/oracle/audit.res.oracle
index 40464f54b363d2da4daa36ed357da2364c3f944e..6894ada7dc21fb8274b4aa5db6dd57ce025f0ecd 100644
--- a/tests/misc/oracle/audit.res.oracle
+++ b/tests/misc/oracle/audit.res.oracle
@@ -1,5 +1,5 @@
 [kernel:audit] Warning: 
-  different hashes for tests/misc/audit.c: got aec49f030fcf92bc135bd75e7088194f, expected 01010101010101010101010101010101
+  different hashes for tests/misc/audit.c: got f94ce1c8f5e5911260931783495e2c88, expected 01010101010101010101010101010101
 [kernel:audit] Warning: 
   different hashes for tests/misc/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
 [kernel:audit] Warning: 
diff --git a/tests/misc/oracle/booleans.res.oracle b/tests/misc/oracle/booleans.res.oracle
index 8f7927c6bceb80d83a27026a4ecd2ad4e9c7862b..fbf91d58dadbc18ce9f145ce98f9aaa7d2edc5e3 100644
--- a/tests/misc/oracle/booleans.res.oracle
+++ b/tests/misc/oracle/booleans.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/booleans.i:7: Warning: check got status invalid.
+[eva:alarm] tests/misc/booleans.i:9: Warning: check got status invalid.
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function main:
diff --git a/tests/misc/oracle/bts1201.res.oracle b/tests/misc/oracle/bts1201.res.oracle
index 5d683d1decf911024bb296418d7fb0ea6661b50a..312abde0a4dbef5bb0cce723708e27bb0d10f80b 100644
--- a/tests/misc/oracle/bts1201.res.oracle
+++ b/tests/misc/oracle/bts1201.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] tests/misc/bts1201.i:5: assertion got status valid.
+[eva] tests/misc/bts1201.i:8: assertion got status valid.
 [eva] done for function main
 [eva:summary] ====== ANALYSIS SUMMARY ======
   ----------------------------------------------------------------------------
diff --git a/tests/misc/oracle/bts1347.res.oracle b/tests/misc/oracle/bts1347.res.oracle
index 63b1624064934b9b4fb599dc919fbe8c4e922b4e..bd052d2107e24b757eecbc4a414c8824ad152de7 100644
--- a/tests/misc/oracle/bts1347.res.oracle
+++ b/tests/misc/oracle/bts1347.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/bts1347.i:5: Warning: 
+[eva:alarm] tests/misc/bts1347.i:8: Warning: 
   out of bounds read. assert \valid_read(x);
 [eva] Recording results for f
 [eva] done for function f
@@ -13,7 +13,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/bts1347.i:6: Warning: 
+[eva:alarm] tests/misc/bts1347.i:12: Warning: 
   out of bounds read. assert \valid_read(tmp);
                       (tmp from x++)
 [eva] Recording results for g
@@ -24,22 +24,22 @@
 --- Properties of Function 'f'
 --------------------------------------------------------------------------------
 
-[  Dead   ] Assertion 'emitter' (file tests/misc/bts1347.i, line 5)
+[  Dead   ] Assertion 'emitter' (file tests/misc/bts1347.i, line 8)
             Locally valid, but unreachable.
             By Eva because:
-             - Unreachable return (file tests/misc/bts1347.i, line 5)
-[Unreachable] Unreachable return (file tests/misc/bts1347.i, line 5)
+             - Unreachable return (file tests/misc/bts1347.i, line 8)
+[Unreachable] Unreachable return (file tests/misc/bts1347.i, line 8)
             by Eva.
 
 --------------------------------------------------------------------------------
 --- Properties of Function 'g'
 --------------------------------------------------------------------------------
 
-[    -    ] Assertion 'Eva,mem_access' (file tests/misc/bts1347.i, line 6)
+[    -    ] Assertion 'Eva,mem_access' (file tests/misc/bts1347.i, line 12)
             tried with Eva.
-[ Partial ] Assertion 'emitter' (file tests/misc/bts1347.i, line 6)
+[ Partial ] Assertion 'emitter' (file tests/misc/bts1347.i, line 12)
             By emitter, with pending:
-             - Assertion 'Eva,mem_access' (file tests/misc/bts1347.i, line 6)
+             - Assertion 'Eva,mem_access' (file tests/misc/bts1347.i, line 12)
 
 --------------------------------------------------------------------------------
 --- Status Report Summary
@@ -55,9 +55,9 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/bts1347.i:5: Warning: 
+[eva:alarm] tests/misc/bts1347.i:8: Warning: 
   out of bounds read. assert \valid_read(x);
-[eva] tests/misc/bts1347.i:5: assertion 'emitter' got status valid.
+[eva] tests/misc/bts1347.i:8: assertion 'emitter' got status valid.
 [eva] Recording results for f
 [eva] done for function f
 [eva] Analyzing an incomplete application starting at g
@@ -65,9 +65,9 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/bts1347.i:6: Warning: 
+[eva:alarm] tests/misc/bts1347.i:12: Warning: 
   out of bounds read. assert \valid_read(tmp);
                       (tmp from x++)
-[eva] tests/misc/bts1347.i:6: assertion 'emitter' got status valid.
+[eva] tests/misc/bts1347.i:12: assertion 'emitter' got status valid.
 [eva] Recording results for g
 [eva] done for function g
diff --git a/tests/misc/oracle/char_ampamp.res.oracle b/tests/misc/oracle/char_ampamp.res.oracle
index e48fc08714ecef939dbe64b842387547d45fee89..9b826050d9f6813368d462f3cbcf42717a2a6068 100644
--- a/tests/misc/oracle/char_ampamp.res.oracle
+++ b/tests/misc/oracle/char_ampamp.res.oracle
@@ -6,8 +6,8 @@
   c ∈ {1}
   y ∈ {0}
 [eva] computing for function g <- main.
-  Called from tests/misc/char_ampamp.c:12.
-[eva] tests/misc/char_ampamp.c:6: Frama_C_show_each_x: {1}
+  Called from tests/misc/char_ampamp.c:17.
+[eva] tests/misc/char_ampamp.c:11: Frama_C_show_each_x: {1}
 [eva] Recording results for g
 [eva] Done for function g
 [eva] Recording results for main
diff --git a/tests/misc/oracle/ensures.res.oracle b/tests/misc/oracle/ensures.res.oracle
index ee0832cdeffc1cc003c4ae54db0a7947af527c57..395d3e8484bed83286957dc88b9227ac3313e961 100644
--- a/tests/misc/oracle/ensures.res.oracle
+++ b/tests/misc/oracle/ensures.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/ensures.i:5: Warning: 
+[eva:alarm] tests/misc/ensures.i:8: Warning: 
   function main: postcondition got status invalid.
 [eva] done for function main
 [eva:summary] ====== ANALYSIS SUMMARY ======
diff --git a/tests/misc/oracle/issue109.res.oracle b/tests/misc/oracle/issue109.res.oracle
index 6282ea4acd8c628f4af05e21d7bda570ddfb96c3..b31581fd4bb2e915ffde47bdaafa44636ea3b54b 100644
--- a/tests/misc/oracle/issue109.res.oracle
+++ b/tests/misc/oracle/issue109.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] tests/misc/issue109.i:10: assertion got status valid.
+[eva] tests/misc/issue109.i:15: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
@@ -17,7 +17,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] tests/misc/issue109.i:10: assertion got status valid.
+[eva] tests/misc/issue109.i:15: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/misc/oracle/well_typed_alarm.res.oracle b/tests/misc/oracle/well_typed_alarm.res.oracle
index cff9cdaaa88971d0ae07d576c88835d8e353efe0..5eaf869164e05b944de3f4d17b8ca5c8cc1947d5 100644
--- a/tests/misc/oracle/well_typed_alarm.res.oracle
+++ b/tests/misc/oracle/well_typed_alarm.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva:alarm] tests/misc/well_typed_alarm.i:11: Warning: 
+[eva:alarm] tests/misc/well_typed_alarm.i:16: Warning: 
   pointer comparison. assert \pointer_comparable((void *)p, (void *)q);
 [eva] done for function main
 [eva:summary] ====== ANALYSIS SUMMARY ======
diff --git a/tests/misc/pragma-pack.c b/tests/misc/pragma-pack.c
index b2e44f3f65464fb533c965f48beb09ce1d9be20a..0eda8ce2f0b4ba0a2e56bab74f6477e2ea5780b4 100644
--- a/tests/misc/pragma-pack.c
+++ b/tests/misc/pragma-pack.c
@@ -1,9 +1,9 @@
 /*run.config
+ PLUGIN: @EVA_PLUGINS@
   STDOPT: +"-machdep gcc_x86_64 -kernel-msg-key typing:pragma"
   STDOPT: +"-machdep gcc_x86_32"
   STDOPT: +"-machdep msvc_x86_64"
  */
-
 #include "pragma-pack-utils.h"
 
 #include <stdint.h>
diff --git a/tests/misc/pragma_pack_zero.c b/tests/misc/pragma_pack_zero.c
index 22f956bd3c37c453f011aee30726b8f443dfd79e..52c5a87ad91f6edc44b368af7a0119cd9402e5e6 100644
--- a/tests/misc/pragma_pack_zero.c
+++ b/tests/misc/pragma_pack_zero.c
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@
    STDOPT: +"-machdep gcc_x86_64"
    STDOPT: +"-machdep msvc_x86_64"
  */
@@ -7,7 +8,6 @@
 // In GCC, its current (undocumented) behavior is equivalent to #pragma pack(),
 // that is, disable packing (reset to default). We emulate this behavior,
 // but with a warning.
-
 #include "pragma-pack-utils.h"
 
 #include <stdint.h>
diff --git a/tests/misc/test_config b/tests/misc/test_config
index 111c347883729eb88f73d71774c9496d687e21fb..2cfb7e2f9204e5c904f80f601742facf6608faaa 100644
--- a/tests/misc/test_config
+++ b/tests/misc/test_config
@@ -1,2 +1,7 @@
+PLUGIN:
 MODULE: global_decl_loc
 MODULE:
+STDOPT:
+
+# COMMENT: Directive to add in your test file when using STDOPT:
+# COMMENT: PLUGIN: @EVA_PLUGINS@
diff --git a/tests/misc/well_typed_alarm.i b/tests/misc/well_typed_alarm.i
index 11ac1cd00a1cd0e5ec6f93c00a59b6e0e3ecc00c..dcbe3dacc09f3599f32413e4ae8537b6c61b33b2 100644
--- a/tests/misc/well_typed_alarm.i
+++ b/tests/misc/well_typed_alarm.i
@@ -1,13 +1,19 @@
 /* run.config*
+ PLUGIN: @EVA_PLUGINS@
  MODULE: @PTEST_NAME@
    OPT:
 */
+
 int main(int c) {
+
   int x = 0;
   int y = 0;
+
   int *p = &x;
   int *q = &y;
+
   if (c) q = &x;
   if (p<=q) x++;
+
   return *q;
 }
diff --git a/tests/misc/widen_hints.c b/tests/misc/widen_hints.c
index fca1b6e7e6ef953b698c6d2fa04bee2193bd889c..0148d513d8cad7072b213dc38041fa8d3a85163e 100644
--- a/tests/misc/widen_hints.c
+++ b/tests/misc/widen_hints.c
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@
  EXIT:1
    OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DSYNTAX_ERRORS -kernel-warn-key=annot-error=active
    OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DNONCONST
@@ -7,7 +8,6 @@
    OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DALLGLOBAL -eva-msg-key widen-hints
 */
 #define N 2
-
 const int x = 9;
 int not_const = 42; // cannot be used as widen hint
 
diff --git a/tests/misc/widen_hints2.c b/tests/misc/widen_hints2.c
index bc457535df6b9a0d18e9f93e5a1767dbbaad438d..9d35092bfb98ff4599952dc315eac04772ee74de 100644
--- a/tests/misc/widen_hints2.c
+++ b/tests/misc/widen_hints2.c
@@ -1,8 +1,8 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@
    STDOPT: #"-eva-msg-key widen-hints"
    OPT: -print
  */
-
 #include <stdlib.h>
 
 #define N 2
diff --git a/tests/misc/widen_hints_float.c b/tests/misc/widen_hints_float.c
index a01f0a357842a423528cc508dfc39663b307f0a8..13326812adfc4ab8d1637b3955172fc71a77cdff 100644
--- a/tests/misc/widen_hints_float.c
+++ b/tests/misc/widen_hints_float.c
@@ -1,8 +1,8 @@
 /* run.config*
+ PLUGIN: @EVA_PLUGINS@
    STDOPT: #"-eva-subdivide-non-linear 20"
 */
 
-
 #include "__fc_builtin.h"
 #include <math.h>
 
diff --git a/tests/misc/wstring_phase6.c b/tests/misc/wstring_phase6.c
index f9884778c87c760721d9a3f9616e909abe1f9ff0..c364cd912c972d11721d70b0295354cd5e22d3b5 100644
--- a/tests/misc/wstring_phase6.c
+++ b/tests/misc/wstring_phase6.c
@@ -1,9 +1,9 @@
 /* run.config
+PLUGIN: variadic
  MODULE: @PTEST_NAME@
    OPT: -journal-disable -print -variadic-no-translation
 */
 #include <stdio.h>
-
 // See http://stackoverflow.com/questions/18102502/mixing-wide-and-narrow-string-literals-in-c
 int main(){
 printf( "%s\n", "123" "456" );
diff --git a/tests/occurrence/test_config b/tests/occurrence/test_config
index 5e291a6ae016a6564af7152faf5f6ea67f58a94f..54290ebd2d68ef9aecc5959967d39d46a61ec28b 100644
--- a/tests/occurrence/test_config
+++ b/tests/occurrence/test_config
@@ -1 +1,2 @@
-STDOPT: +"-load-module" +"occurrence" -"-eva" -"-out" -"-input" -"-deps" +"-occurrence-verbose 1"
+PLUGIN: eva,scope occurrence
+STDOPT: -"-eva" -"-out" -"-input" -"-deps" +"-occurrence-verbose 1"
diff --git a/tests/pdg/bts1194.c b/tests/pdg/bts1194.c
index baa829837c3a54216aac8310f110bc0ee53fb35d..37d50ee5443a96ae718e5d645d5540edaea18da3 100644
--- a/tests/pdg/bts1194.c
+++ b/tests/pdg/bts1194.c
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: @EVA_PLUGINS@ pdg slicing
   STDOPT: +"-eva -inout -pdg -calldeps -deps -then -slice-return main -then-last -print @EVA_OPTIONS@"
 */
-
 int Y, X;
 volatile v;
 
diff --git a/tests/pdg/test_config b/tests/pdg/test_config
index d9d741191d10ade715f1080b42b4a421d0d5e4c1..1f84f4645e5d2c1d56c903c01d91046a298c11c2 100644
--- a/tests/pdg/test_config
+++ b/tests/pdg/test_config
@@ -1 +1,2 @@
-OPT: -journal-disable @EVA_OPTIONS@ -pdg-print -pdg-verbose 2
+PLUGIN: @EVA_PLUGINS@ pdg
+OPT: @EVA_OPTIONS@ -pdg-print -pdg-verbose 2
diff --git a/tests/pretty_printing/test_config b/tests/pretty_printing/test_config
index c43ca10542958476406623d6a34d4049fce20852..3ef00bad562303349e568b77920e4499cd980972 100644
--- a/tests/pretty_printing/test_config
+++ b/tests/pretty_printing/test_config
@@ -1,5 +1,6 @@
 COMMENT: this directory is meant to test the parser and pretty-printer
 COMMENT: the default option checks that pretty-printed code can be merged
 COMMENT: with the original one
+PLUGIN:
 CMD: FRAMAC_PLUGIN=tests/.empty @frama-c@
-OPT: @PTEST_FILE@ -print -journal-disable -check -then -ocode @PTEST_DIR@/result/@PTEST_NAME@.c -print -then @PTEST_DIR@/result/@PTEST_NAME@.c @PTEST_FILE@ -ocode="" -print
+OPT: @PTEST_FILE@ -print -then -ocode @PTEST_DIR@/result/@PTEST_NAME@.c -print -then @PTEST_DIR@/result/@PTEST_NAME@.c @PTEST_FILE@ -ocode="" -print
diff --git a/tests/rte/oracle/unspecified_sequence.res.oracle b/tests/rte/oracle/unspecified_sequence.res.oracle
index 3df3256fe5fa9550c8fbe3a96a7c7e8522fd9561..2d9f1c127532b318461b9faaeb99c1befaf198b5 100644
--- a/tests/rte/oracle/unspecified_sequence.res.oracle
+++ b/tests/rte/oracle/unspecified_sequence.res.oracle
@@ -4,15 +4,15 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   t[0..9] ∈ {0}
-[eva:alarm] tests/rte/unspecified_sequence.i:7: Warning: 
+[eva:alarm] tests/rte/unspecified_sequence.i:12: Warning: 
   function main: precondition got status unknown.
 [eva] computing for function f <- main.
-  Called from tests/rte/unspecified_sequence.i:10.
+  Called from tests/rte/unspecified_sequence.i:15.
 [eva] Recording results for f
 [eva] Done for function f
-[eva] tests/rte/unspecified_sequence.i:11: Reusing old results for call to f
+[eva] tests/rte/unspecified_sequence.i:16: Reusing old results for call to f
 [eva] computing for function f <- main.
-  Called from tests/rte/unspecified_sequence.i:11.
+  Called from tests/rte/unspecified_sequence.i:16.
 [eva] Recording results for f
 [eva] Done for function f
 [eva] Recording results for main
diff --git a/tests/rte/test_config b/tests/rte/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..8351f51e855ecf8f8f4951813caf7b5d2bdbc455
--- /dev/null
+++ b/tests/rte/test_config
@@ -0,0 +1,2 @@
+PLUGIN: rtegen
+STDOPT:
diff --git a/tests/rte/unspecified_sequence.i b/tests/rte/unspecified_sequence.i
index bf067c5a072b4f58f001aa60f53788177cf504ce..63e60f119cf1b11b66d6bd7f0736be514624a28a 100644
--- a/tests/rte/unspecified_sequence.i
+++ b/tests/rte/unspecified_sequence.i
@@ -1,3 +1,8 @@
+/* run.config
+ PLUGIN: @EVA_PLUGINS@
+   STDOPT:
+*/
+
 unsigned long long f(int x) {
   return 0;
 }
diff --git a/tests/rte/value_rte.c b/tests/rte/value_rte.c
index 0587fca439d1864503ee51cac0cbafb41e217127..9d2ee91f6686a741f5b2dcb0fd5e23e0fad09c30 100644
--- a/tests/rte/value_rte.c
+++ b/tests/rte/value_rte.c
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: eva,scope rtegen report
 OPT: -rte -then -eva @EVA_OPTIONS@ -then -report
 */
-
 #include "stdio.h"
 
 int main(){
diff --git a/tests/rte_manual/test_config b/tests/rte_manual/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..7455cf5899e3ce3e7270344ef8217b1c06f9f2ee
--- /dev/null
+++ b/tests/rte_manual/test_config
@@ -0,0 +1,2 @@
+PLUGIN: @EVA_PLUGINS@ rtegen
+STDOPT:
diff --git a/tests/saveload/bool.c b/tests/saveload/bool.c
index f90635c4440b48bc7fdd4446bd6f9adadd8a22a6..f942a8cae78be9b6917f8909f0d2349e818aaee5 100644
--- a/tests/saveload/bool.c
+++ b/tests/saveload/bool.c
@@ -1,5 +1,5 @@
 /* run.config
-   EXECNOW: BIN bool.sav LOG bool_sav.res LOG bool_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/bool.sav -machdep x86_32 -eva @EVA_OPTIONS@ ./tests/saveload/bool.c > tests/saveload/result/bool_sav.res 2> tests/saveload/result/bool_sav.err
+   EXECNOW: BIN bool.sav LOG bool_sav.res LOG bool_sav.err @frama-c@ -save ./tests/saveload/result/bool.sav -machdep x86_32 -eva @EVA_OPTIONS@ ./tests/saveload/bool.c > tests/saveload/result/bool_sav.res 2> tests/saveload/result/bool_sav.err
    STDOPT: +"-load ./tests/saveload/result/bool.sav -out -input -deps"
    STDOPT: +"-load ./tests/saveload/result/bool.sav -eva @EVA_OPTIONS@"
  */
diff --git a/tests/saveload/callbacks.i b/tests/saveload/callbacks.i
index b1fe21aabd15e996e1b84a7ba90ab7025dcd4cdb..672fc08788ee5ecc689372682a92e5814c3faa0e 100644
--- a/tests/saveload/callbacks.i
+++ b/tests/saveload/callbacks.i
@@ -1,5 +1,5 @@
 /* run.config
-   EXECNOW: LOG callbacks_initial.res LOG callbacks_initial.err BIN callbacks.sav ./bin/toplevel.opt tests/saveload/callbacks.i -out -calldeps -eva-show-progress -main main1 -save ./tests/saveload/result/callbacks.sav > ./tests/saveload/result/callbacks_initial.res 2> ./tests/saveload/result/callbacks_initial.err
+   EXECNOW: LOG callbacks_initial.res LOG callbacks_initial.err BIN callbacks.sav @frama-c@ tests/saveload/callbacks.i -out -calldeps -eva-show-progress -main main1 -save ./tests/saveload/result/callbacks.sav > ./tests/saveload/result/callbacks_initial.res 2> ./tests/saveload/result/callbacks_initial.err
    STDOPT: +"-load ./tests/saveload/result/callbacks.sav -main main2 -then -main main3"
 */
 
diff --git a/tests/saveload/isset.c b/tests/saveload/isset.c
index 720c3d635f2f3bc362c24fe83422bf51766ddfa6..8cdfc876ef88218d1f1c70f547bd2254820fd3e2 100644
--- a/tests/saveload/isset.c
+++ b/tests/saveload/isset.c
@@ -1,5 +1,5 @@
 /* run.config
-   EXECNOW: LOG isset_sav.res LOG isset_sav.err BIN isset.sav ./bin/toplevel.opt -quiet -eva @EVA_OPTIONS@ -save tests/saveload/result/isset.sav tests/saveload/isset.c > ./tests/saveload/result/isset_sav.res 2> ./tests/saveload/result/isset_sav.err
+   EXECNOW: LOG isset_sav.res LOG isset_sav.err BIN isset.sav @frama-c@ -quiet -eva @EVA_OPTIONS@ -save tests/saveload/result/isset.sav tests/saveload/isset.c > ./tests/saveload/result/isset_sav.res 2> ./tests/saveload/result/isset_sav.err
    STDOPT: +"-quiet -load ./tests/saveload/result/isset.sav"
    STDOPT: +"-load ./tests/saveload/result/isset.sav"
    STDOPT: +"-eva @EVA_OPTIONS@ -load ./tests/saveload/result/isset.sav"
diff --git a/tests/saveload/load_one.i b/tests/saveload/load_one.i
index 75dde3f72926e6957c0fdfb898dbd3c3ba37932d..6eb0a89c1bd111ae094950e02c6e9ad00eee110e 100644
--- a/tests/saveload/load_one.i
+++ b/tests/saveload/load_one.i
@@ -1,6 +1,7 @@
 /* run.config
-   EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs
-   STDOPT: +"-load-module @PTEST_DIR@/@PTEST_NAME@.cmxs"
+  PLUGIN: @EVA_PLUGINS@ sparecode
+  MODULE: @PTEST_NAME@
+   STDOPT:
 */
 int G;
 
@@ -12,7 +13,6 @@ int f (int x, int y) {
 int main (void) {
   int a = 1;
   int b = 1;
-
   /*@ assert a == 1; */
 
   f (0, 0); /* this call is useless : should be removed */
diff --git a/tests/saveload/multi_project.i b/tests/saveload/multi_project.i
index ab0d9a44fd15de6c80394627618705578bd54744..acdf9a01fe1bca09b9aa63049dca4f9180e00298 100644
--- a/tests/saveload/multi_project.i
+++ b/tests/saveload/multi_project.i
@@ -1,8 +1,8 @@
 /* run.config
-   EXECNOW: BIN multi_project.sav LOG multi_project_sav.res LOG multi_project_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/multi_project.sav @EVA_OPTIONS@ -semantic-const-folding @PTEST_DIR@/@PTEST_NAME@.i > tests/saveload/result/multi_project_sav.res 2> tests/saveload/result/multi_project_sav.err
-   EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs
-   STDOPT: +"-load ./tests/saveload/result/multi_project.sav -journal-disable"
-   CMD: @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs
+ PLUGIN: @EVA_PLUGINS@ constant_propagation
+   EXECNOW: BIN multi_project.sav LOG multi_project_sav.res LOG multi_project_sav.err @frama-c@ -save ./tests/saveload/result/multi_project.sav @EVA_OPTIONS@ -semantic-const-folding @PTEST_DIR@/@PTEST_NAME@.i > tests/saveload/result/multi_project_sav.res 2> tests/saveload/result/multi_project_sav.err
+   STDOPT: +"-load ./tests/saveload/result/multi_project.sav"
+ MODULE: @PTEST_NAME@
    OPT: -eva @EVA_OPTIONS@
 */
 int f(int x) {
diff --git a/tests/saveload/sparecode.i b/tests/saveload/sparecode.i
index 33d1776ddc1ace121e6c617062505c43b4219b3d..b82bea7578da014e9734244c1d6f95a0e62e3b30 100644
--- a/tests/saveload/sparecode.i
+++ b/tests/saveload/sparecode.i
@@ -1,9 +1,9 @@
 /* run.config
-   EXECNOW: BIN sparecode.sav LOG sparecode_sav.res LOG sparecode_sav.err ./bin/toplevel.opt -slicing-level 2 -slice-return main -eva-show-progress -save ./tests/saveload/result/sparecode.sav tests/saveload/sparecode.i -then-on 'Slicing export' -print > tests/saveload/result/sparecode_sav.res 2> tests/saveload/result/sparecode_sav.err
+ PLUGIN: @EVA_PLUGINS@ slicing
+   EXECNOW: BIN sparecode.sav LOG sparecode_sav.res LOG sparecode_sav.err @frama-c@ -slicing-level 2 -slice-return main -eva-show-progress -save ./tests/saveload/result/sparecode.sav tests/saveload/sparecode.i -then-on 'Slicing export' -print > tests/saveload/result/sparecode_sav.res 2> tests/saveload/result/sparecode_sav.err
    STDOPT: +"-load ./tests/saveload/result/sparecode.sav"
 */
 int G;
-
 int f (int x, int y) {
   G = y;
   return x;
diff --git a/tests/saveload/test_config b/tests/saveload/test_config
index 1712a20359b38feaedc7a61eec51ffa3aebc9879..0fb1ff9fa15158c8174c8231a22976557eb4dd40 100644
--- a/tests/saveload/test_config
+++ b/tests/saveload/test_config
@@ -1 +1,2 @@
+PLUGIN: @EVA_PLUGINS@
 OPT: @EVA_OPTIONS@
diff --git a/tests/scope/bts971.c b/tests/scope/bts971.c
index 24716e1928853c5f80851385f3bd06a00519ae20..968ca119f331972615296755979e780362adc72f 100644
--- a/tests/scope/bts971.c
+++ b/tests/scope/bts971.c
@@ -1,11 +1,11 @@
 /* run.config
-   MODULE: @PTEST_NAME@
-   OPT: -journal-disable -then -main main2
+ PLUGIN: @EVA_PLUGINS@ pdg
+ MODULE: @PTEST_NAME@
+   OPT: -then -main main2
 */
 /* bug 971: */
 volatile foo;
 int v;
-
 void f1 () {
   v += 1;
 }
diff --git a/tests/scope/test_config b/tests/scope/test_config
new file mode 100644
index 0000000000000000000000000000000000000000..55b824af6be4dcc6553df43fd37dc898a4e4845f
--- /dev/null
+++ b/tests/scope/test_config
@@ -0,0 +1,2 @@
+PLUGIN: @EVA_PLUGINS@
+STDOPT:
diff --git a/tests/scope/zones.c b/tests/scope/zones.c
index a79ee26271d24c6c32a36533d28bf6ea338440c4..b60b239a0fcd7922d9cee94203c6c2f1594f6630 100644
--- a/tests/scope/zones.c
+++ b/tests/scope/zones.c
@@ -1,9 +1,9 @@
 /* run.config
+ PLUGIN: @EVA_PLUGINS@ pdg
  MODULE: @PTEST_NAME@
-   OPT: -eva @EVA_OPTIONS@ -journal-disable
+   OPT: -eva @EVA_OPTIONS@
 */
 
-
 /* bin/viewer.opt -eva @PTEST_DIR@/@PTEST_NAME@.c */
 
 int T [10];
diff --git a/tests/slicing/combine.i b/tests/slicing/combine.i
index 704851ba39349b0e151e4a225cdb9ef865970fc9..05589afc7c888447f562aa65a4c850539bb99790 100644
--- a/tests/slicing/combine.i
+++ b/tests/slicing/combine.i
@@ -1,6 +1,6 @@
 /* run.config
+ PLUGIN: @PTEST_PLUGIN@ constant_propagation sparecode
  MODULE: libSelect @PTEST_NAME@
-
    OPT: @EVA_OPTIONS@ -deps
 */
 
diff --git a/tests/slicing/test_config b/tests/slicing/test_config
index 1c214a23023446fa86e655de311a60df62051ceb..9c7afdad731fc9fe8f51b8d9c0d1b68a6001ebf2 100644
--- a/tests/slicing/test_config
+++ b/tests/slicing/test_config
@@ -1,3 +1,4 @@
 MODULE: libSelect libAnim
 MODULE:
+PLUGIN: eva,scope,variadic slicing
 OPT: @EVA_OPTIONS@ -machdep x86_32
diff --git a/tests/sparecode/bts334.i b/tests/sparecode/bts334.i
index f6af16f8c93874894790dd75e3ce64ab219f6464..f05a44ace82ecd919b5168fe6f219d4116ad420c 100644
--- a/tests/sparecode/bts334.i
+++ b/tests/sparecode/bts334.i
@@ -1,7 +1,8 @@
 /*run.config
- STDOPT: +"-sparecode-debug 0 -main main_init -sparecode-analysis -sparecode-no-annot "
- STDOPT: +"-sparecode-debug 0 -main main_init -slice-pragma loop_body -then-on 'Slicing export' -print"
- STDOPT: +"-sparecode-debug 0 -main main_init -slice-pragma loop_body -calldeps -then-on 'Slicing export' -print"
+  STDOPT: +"-sparecode-debug 0 -main main_init -sparecode-analysis -sparecode-no-annot "
+PLUGIN: @PTEST_PLUGIN@ slicing
+  STDOPT: +"-sparecode-debug 0 -main main_init -slice-pragma loop_body -then-on 'Slicing export' -print"
+  STDOPT: +"-sparecode-debug 0 -main main_init -slice-pragma loop_body -calldeps -then-on 'Slicing export' -print"
  */
 int kf ;
 int k[2] ;
@@ -10,7 +11,6 @@ static int si[2]  = {0, 0};
 static int so[2]  = {0, 0};
 int f(int vi , int i )
 { int vo ;
-
   {vo = so[i] / kf + k[i] * (vi - si[i]);
   so[i] = vo;
   si[i] = vi;
diff --git a/tests/sparecode/calls.i b/tests/sparecode/calls.i
index 91773f1b22e0e11e51ff9a4402e9dd6df50d3b3a..dd0c6996091af7f446143ccee7108a9cdf19b84a 100644
--- a/tests/sparecode/calls.i
+++ b/tests/sparecode/calls.i
@@ -1,9 +1,9 @@
 /* run.config
    STDOPT: +"-sparecode-analysis"
+PLUGIN: @PTEST_PLUGIN@ slicing
    STDOPT: +"-slicing-level 2 -slice-return main -then-on 'Slicing export' -print"
 */
 int G;
-
 int f (int x, int y) {
   G = y;
   return x;
diff --git a/tests/sparecode/dead_code.i b/tests/sparecode/dead_code.i
index 327e62941abd01360bcb74cc728a34ed68931618..5f4165959ff68c54f907c1b6707611503792f28b 100644
--- a/tests/sparecode/dead_code.i
+++ b/tests/sparecode/dead_code.i
@@ -1,5 +1,6 @@
 /* run.config
    STDOPT: +"-sparecode"
+PLUGIN: @PTEST_PLUGIN@ slicing
    STDOPT: +"-slicing-level 2 -slice-return main -then-on 'Slicing export' -print"
 */
 
diff --git a/tests/sparecode/glob_decls.i b/tests/sparecode/glob_decls.i
index abdf205de22a03d9dce5d76f5e67c2cffa3695f3..eb211f029f70d1e7a2720fe26d44691f7472aeaf 100644
--- a/tests/sparecode/glob_decls.i
+++ b/tests/sparecode/glob_decls.i
@@ -1,6 +1,7 @@
 /* run.config
- STDOPT: +"-lib-entry -sparecode-analysis "
- STDOPT: +"-lib-entry -slice-pragma main -slice-return main -then-on 'Slicing export' -print"
+  STDOPT: +"-lib-entry -sparecode-analysis "
+PLUGIN: @PTEST_PLUGIN@ slicing
+  STDOPT: +"-lib-entry -slice-pragma main -slice-return main -then-on 'Slicing export' -print"
  STDOPT: +"-sparecode-rm-unused-globals"
 */
 
@@ -18,7 +19,6 @@ Ps GPs;
 typedef struct { int a; int b; } Ts2;
 Ts2 S2;
 
-
 typedef char Ts2bis;
 Ts2bis C = 'a';
 
diff --git a/tests/sparecode/intra.i b/tests/sparecode/intra.i
index 65316cbe60af3abe7f2e18cfe00cf1bae48b6903..21f41c1d712ad71bb0ec0e4718acf2c335e91df0 100644
--- a/tests/sparecode/intra.i
+++ b/tests/sparecode/intra.i
@@ -1,11 +1,13 @@
 /* run.config
    STDOPT: +"-sparecode-analysis"
+PLUGIN: @PTEST_PLUGIN@ slicing
    STDOPT: +"-sparecode-debug 0 -slicing-level 2 -slice-return main -then-last -print"
+PLUGIN: @SPARECODE_PLUGINS@
    STDOPT: +"-sparecode-debug 0 -main main2 -sparecode-analysis"
+PLUGIN: @PTEST_PLUGIN@ slicing
    STDOPT: +"-sparecode-debug 0 -main main2 -slice-return main2 -then-last -print"
    STDOPT: +"-sparecode-debug 0 -main main2 -slice-return main2 -slice-assert f10 -then-last -print"
 */
-
 /* Waiting for results such as:
  * spare code analysis removes statements having variables with
  * prefix "spare_"
@@ -13,9 +15,7 @@
  * slicing analysis removes statement having variables with
  * prefix "spare_" and "any_"
  */
-
 int G;
-
 int tmp (int a) {
   int x = a;
   //@ assert x == a ;
diff --git a/tests/sparecode/params.i b/tests/sparecode/params.i
index 26bb415eefc1cd598a97b4b0fe1957132d1d0cab..4fd2d1b6efdebd9eb7f0ea088e74a442bb2049ab 100644
--- a/tests/sparecode/params.i
+++ b/tests/sparecode/params.i
@@ -1,8 +1,8 @@
 /* run.config
    STDOPT: +"-sparecode-analysis"
+PLUGIN: @PTEST_PLUGIN@ slicing
    STDOPT: +"-slicing-level 2 -slice-return main -then-last -print"
 */
-
 /* This is an example from #529. 'y' in [main1] should be visible to get a
  * compilable result. But unfortunatly, this leads to also select [b=1] in
  * [main]. This should be enhanced... */
diff --git a/tests/sparecode/test_config b/tests/sparecode/test_config
index a9330dd48d062e0b27b9bb948a88af6f4250c17a..40e3a32e1141194ae21aebe0470c76bca948bc06 100644
--- a/tests/sparecode/test_config
+++ b/tests/sparecode/test_config
@@ -1 +1,3 @@
+MACRO: SPARECODE_PLUGINS @EVA_PLUGINS@ sparecode
+PLUGIN: @SPARECODE_PLUGINS@
 OPT: -journal-disable @EVA_OPTIONS@ -sparecode-debug 1
diff --git a/tests/spec/array_typedef.c b/tests/spec/array_typedef.c
index 86387dcf4273550cd3a88f637d544008c16bacdb..88daa60d902d2501043d8f697ce6152c0c9f44e0 100644
--- a/tests/spec/array_typedef.c
+++ b/tests/spec/array_typedef.c
@@ -1,9 +1,9 @@
 /*run.config
- OPT: -print -eva @EVA_CONFIG@ -journal-disable
+PLUGIN: eva, scope
+ OPT: -print -eva @EVA_CONFIG@
  */
 #define IP_FIELD 4
 typedef int ip_address[IP_FIELD];
-
 typedef struct {
   ip_address src;
   int dst[IP_FIELD];
diff --git a/tests/spec/assigns_result.i b/tests/spec/assigns_result.i
index f850166909efe129536bc4b54cae90447f6dbaaa..55ebd04043412a8e6d2f9e9480b4c0bb94de85b5 100644
--- a/tests/spec/assigns_result.i
+++ b/tests/spec/assigns_result.i
@@ -1,8 +1,8 @@
 /* run.config
+PLUGIN: eva,scope
    STDOPT: +"-deps @EVA_OPTIONS@"
 */
 int X,Y;
-
 /*@ assigns \result;
     assigns \exit_status;
 */
diff --git a/tests/spec/assigns_void.c b/tests/spec/assigns_void.c
index 6e70195b864bfe5bb5f5d6f5c48ae74d798d9fbf..36cfe99b1ec2643f87f63401a3361e8cfce14152 100644
--- a/tests/spec/assigns_void.c
+++ b/tests/spec/assigns_void.c
@@ -1,10 +1,10 @@
 /* run.config
- OPT: -print -journal-disable -kernel-warn-key=annot-error=active
- OPT: -eva @EVA_CONFIG@ -main g -print -no-annot -journal-disable
+ OPT: -print -kernel-warn-key=annot-error=active
+PLUGIN: eva,scope
+ OPT: -eva @EVA_CONFIG@ -main g -print -no-annot
  */
 //@ assigns *x;
 void f(void *x);
-
 void g() {
   int y;
   int* x = &y;
diff --git a/tests/spec/behavior_assert.c b/tests/spec/behavior_assert.c
index 2f5d7f9760516f5bb73dea22b220b91f2e07edc3..7d0ce3885199a400d456597f6083bdf51a3470c2 100644
--- a/tests/spec/behavior_assert.c
+++ b/tests/spec/behavior_assert.c
@@ -1,8 +1,8 @@
 /* run.config 
-OPT: -eva @EVA_CONFIG@ -deps -out -input -journal-disable -lib-entry
-OPT: -eva @EVA_CONFIG@ -deps -out -input -journal-disable
+PLUGIN: eva,from,inout,scope
+  OPT: -eva @EVA_CONFIG@ -deps -out -input -journal-disable -lib-entry
+  OPT: -eva @EVA_CONFIG@ -deps -out -input -journal-disable
 */
-
 int e;
 
 /*@
diff --git a/tests/spec/default_assigns_bts0966.i b/tests/spec/default_assigns_bts0966.i
index 6b4cd671eda66ecb86c8a548620127b06604a1e6..4e2abccd49e698ad4aa3fc57c1e3c48b5556d250 100644
--- a/tests/spec/default_assigns_bts0966.i
+++ b/tests/spec/default_assigns_bts0966.i
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: eva,scope
    OPT: -eva -print
  */
-
 int auto_states[4] ; //   = { 1 , 0 , 0, 0 };
 
 enum states {
diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i
index 06f74139cfb7854ec517df292b9ca720dbd9ceed..ec9786ea47fe132077767e2b02ceda89f6849843 100644
--- a/tests/spec/generalized_check.i
+++ b/tests/spec/generalized_check.i
@@ -1,10 +1,10 @@
 /* run.config
-OPT: -eva -eva-use-spec f
-OPT: -print
+PLUGIN: eva,scope
+    OPT: -eva -eva-use-spec f
+PLUGIN:
+    OPT: -print
 */
-
 /*@ check lemma easy_proof: \false; */ // should not be put in any environment
-
 /*@ check requires f_valid_x: \valid(x);
     assigns *x;
     check ensures f_init_x: *x == 0;
diff --git a/tests/spec/kw.c b/tests/spec/kw.c
index e57a4869f38f02d6bb9c79f6e7c7b1b7139b50fc..c780af02c9dc6fbc09f6badafd206db025676aa0 100644
--- a/tests/spec/kw.c
+++ b/tests/spec/kw.c
@@ -1,3 +1,9 @@
+/* run.config
+COMMENT: eva plugin is required for the slevel annotation
+PLUGIN: eva
+  STDOPT:
+*/
+
 typedef int assert;
 
 assert behavior = 0;
diff --git a/tests/spec/logic_def.c b/tests/spec/logic_def.c
index a9050410d76999cd48d4168575d26b22c5760e8d..c01bfb9e61297a6a281ab144bdd7c3524a753d9a 100644
--- a/tests/spec/logic_def.c
+++ b/tests/spec/logic_def.c
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: eva,scope
     STDOPT: +"-eva -eva-verbose 2"
 */
-
 //@ logic integer foo(int x) = x + 2 ;
 
 int main() {
diff --git a/tests/spec/oracle/assigns_void.0.res.oracle b/tests/spec/oracle/assigns_void.0.res.oracle
index ad68c8cfaa692fac538086d5a4969b433d91fff7..4e730b46a501a71788c2a543b438e9ad4922a0dc 100644
--- a/tests/spec/oracle/assigns_void.0.res.oracle
+++ b/tests/spec/oracle/assigns_void.0.res.oracle
@@ -1,5 +1,5 @@
 [kernel] Parsing tests/spec/assigns_void.c (with preprocessing)
-[kernel:annot-error] tests/spec/assigns_void.c:5: Warning: 
+[kernel:annot-error] tests/spec/assigns_void.c:6: Warning: 
   Cannot use a pointer to void here. Ignoring specification of function f
 /* Generated by Frama-C */
 void f(void *x);
diff --git a/tests/spec/oracle/statement_behavior.res.oracle b/tests/spec/oracle/statement_behavior.res.oracle
index 355b543903f30f9c0f17481e84bf35b15329bd6a..75f55931501876f76e9cd706ac8856116d8a50ec 100644
--- a/tests/spec/oracle/statement_behavior.res.oracle
+++ b/tests/spec/oracle/statement_behavior.res.oracle
@@ -10,7 +10,7 @@
   no \from part for clause 'assigns five_times;'
 [eva:alarm] tests/spec/statement_behavior.c:17: Warning: 
   assertion got status unknown.
-[eva:alarm] tests/spec/statement_behavior.c:4: Warning: 
+[eva:alarm] tests/spec/statement_behavior.c:5: Warning: 
   function pfsqopfc: postcondition got status unknown.
 [eva:alarm] tests/spec/statement_behavior.c:18: Warning: 
   accessing uninitialized left-value. assert \initialized(&five_times);
diff --git a/tests/spec/preprocess.c b/tests/spec/preprocess.c
index 64b0e62aeec278a03dfd822ddc33e5f539566b1f..5047548c8ecacacc9a172e81fc4cd7f069841aa2 100644
--- a/tests/spec/preprocess.c
+++ b/tests/spec/preprocess.c
@@ -1,7 +1,7 @@
 /* run.config
-   OPT: -eva @EVA_CONFIG@ -journal-disable -print
+PLUGIN: eva,scope
+   OPT: -eva @EVA_CONFIG@ -print
 */
-
 // see bts 1357
 #define assert(x) (x)?1:0
 
diff --git a/tests/spec/shifts.c b/tests/spec/shifts.c
index a7d934e68da3bb28a16e8b0922eb34cc823694dc..5979c3d67ff3dc7feb1a1da0a3728bef50dc1ab6 100644
--- a/tests/spec/shifts.c
+++ b/tests/spec/shifts.c
@@ -1,7 +1,7 @@
 /* run.config
-   OPT: -eva @EVA_CONFIG@ -deps -journal-disable
+PLUGIN: eva,scope,from
+   OPT: -eva @EVA_CONFIG@ -deps
 */
-
 int e;
 
 /*@
diff --git a/tests/spec/statement_behavior.c b/tests/spec/statement_behavior.c
index e91bc04723652701f7477a479ac8abf29fbacac5..c8834f72c8ea2102631e6060ac6dc0c3acc9cc3c 100644
--- a/tests/spec/statement_behavior.c
+++ b/tests/spec/statement_behavior.c
@@ -1,11 +1,11 @@
 /* run.config
-   OPT: -eva @EVA_CONFIG@ -inout -journal-disable
+PLUGIN: eva,inout,scope
+   OPT: -eva @EVA_CONFIG@ -inout
 */
 /*@ ensures \result == (int)(5 * x);
 */
 int pfsqopfc(int x) {
 int five_times;
-
 /*@
   assigns five_times;
   ensures five_times == (int)(5 * x);
diff --git a/tests/syntax/Refresh_visitor.i b/tests/syntax/Refresh_visitor.i
index 6bf2f55e42ef1cd1009a5f8de7b7962f3349a710..c1d19f0a1d62fa1dd8b3d2f9befaaf2872fd4b25 100644
--- a/tests/syntax/Refresh_visitor.i
+++ b/tests/syntax/Refresh_visitor.i
@@ -1,8 +1,8 @@
 /* run.config
+ PLUGIN: eva,scope
  MODULE: @PTEST_NAME@
    OPT: @EVA_OPTIONS@
 */
-
 struct S { int i; };
 
 /*@ lemma foo: \forall struct S x; x.i >= 0 || x.i < 0; */
diff --git a/tests/syntax/char_is_unsigned.i b/tests/syntax/char_is_unsigned.i
index 771ea26e6800c6fac56c23f00561be16aeda4fce..02a2088fef3e3a4aa038f1bd41a176bd45e36cf1 100644
--- a/tests/syntax/char_is_unsigned.i
+++ b/tests/syntax/char_is_unsigned.i
@@ -1,6 +1,7 @@
 /* run.config
+PLUGIN: rtegen
  MODULE: machdep_char_unsigned
-   OPT:-print -machdep unsigned_char -then -constfold -rte
+   OPT: -print -machdep unsigned_char -then -constfold -rte
 */
 char t[10];
 
diff --git a/tests/syntax/copy_logic.i b/tests/syntax/copy_logic.i
index 271bdce7af4fbd5e66c5393e3a7078be00677bbc..fee16b6120468fa4170798dc4290114348c9ee3d 100644
--- a/tests/syntax/copy_logic.i
+++ b/tests/syntax/copy_logic.i
@@ -1,7 +1,7 @@
 /* run.config
+PLUGIN: eva,scope
    STDOPT: +"-copy" +"-eva"
  */
-
 /*@ predicate p(int x); */
 /*@ predicate q(int x) = x == 42; */
 /*@ logic int f (int y); */
diff --git a/tests/syntax/copy_visitor.i b/tests/syntax/copy_visitor.i
index 2f475d79ae7a5ebeaf572e79e97e4b5f533cc833..d2d4bdb124e786dd2ee04327d9803b86b6c3dbe7 100644
--- a/tests/syntax/copy_visitor.i
+++ b/tests/syntax/copy_visitor.i
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: eva,scope
    STDOPT: +"-copy -eva @EVA_CONFIG@"
  */
 struct S {
@@ -6,7 +7,6 @@ struct S {
   int b;
 };
 struct S s = {.a = 1, .b=2};
-
 /*@
   requires \valid(s);
   assigns s->a;
diff --git a/tests/syntax/copy_visitor_bts_1073.c b/tests/syntax/copy_visitor_bts_1073.c
index ec7e1ab180571bc3edbdc5ddafa90c2a602d0b21..e028f3cbe4d7e4d22d360e84786dad8c073e43e7 100644
--- a/tests/syntax/copy_visitor_bts_1073.c
+++ b/tests/syntax/copy_visitor_bts_1073.c
@@ -1,10 +1,10 @@
 /* run.config
+PLUGIN: variadic
  MODULE: @PTEST_NAME@
    OPT:
  MODULE: @PTEST_NAME@_bis
    OPT: -test -then-on filtered -print
 */
-
 #include "stdio.h"
 
 int f(int x);
diff --git a/tests/syntax/cpp-command.c b/tests/syntax/cpp-command.c
index 3b9d41a71f080ea682cbc3482fa8412e53af2064..48585271169f5f929f117075c3011689e3011168 100644
--- a/tests/syntax/cpp-command.c
+++ b/tests/syntax/cpp-command.c
@@ -1,10 +1,10 @@
 /* run.config*
    FILTER: sed "s:/[^ ]*[/]cpp-command\.[^ ]*\.i:TMPDIR/FILE.i:g; s:$PWD/::g; s: -m32::"
-   OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo [\$(basename '%1') \$(basename '%1') \$(basename '%i') \$(basename '%input')] ['%2' '%2' '%o' '%output'] ['%args']"
-   OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %%1 = \$(basename '%1') %%2 = '%2' %%args = '%args'"
-   OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "printf \"%s\n\" \"using \\% has no effect : \$(basename \"\%input\")\""
-   OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %var is not an interpreted placeholder"
-   OPT: -machdep x86_32 -no-autoload-plugins -print-cpp-commands
+   OPT: -machdep x86_32 -cpp-frama-c-compliant -cpp-command "echo [\$(basename '%1') \$(basename '%1') \$(basename '%i') \$(basename '%input')] ['%2' '%2' '%o' '%output'] ['%args']"
+   OPT: -machdep x86_32 -cpp-frama-c-compliant -cpp-command "echo %%1 = \$(basename '%1') %%2 = '%2' %%args = '%args'"
+   OPT: -machdep x86_32 -cpp-frama-c-compliant -cpp-command "printf \"%s\n\" \"using \\% has no effect : \$(basename \"\%input\")\""
+   OPT: -machdep x86_32 -cpp-frama-c-compliant -cpp-command "echo %var is not an interpreted placeholder"
+   OPT: -machdep x86_32 -print-cpp-commands
    OPT: -cpp-extra-args-per-file=@PTEST_FILE@:"-DPF=\\\"cp%02d_3f\\\"" -no-autoload-plugins @PTEST_FILE@ -print
    */
 
diff --git a/tests/syntax/extern_init.i b/tests/syntax/extern_init.i
index e6773ed70089a517ab8a9499fbeb5b1b49304902..37a97faef54b721dcfc5c135e34f9c294e4c7235 100644
--- a/tests/syntax/extern_init.i
+++ b/tests/syntax/extern_init.i
@@ -1,7 +1,9 @@
 /* run.config
+PLUGIN: eva,scope
 OPT: @PTEST_DIR@/@PTEST_NAME@_1.i @PTEST_DIR@/@PTEST_NAME@_2.i -eva @EVA_CONFIG@
 OPT: @PTEST_DIR@/@PTEST_NAME@_2.i @PTEST_DIR@/@PTEST_NAME@_1.i -eva @EVA_CONFIG@
 */
+
 extern int a[] ;
 
 /*@ assigns a[3] \from \nothing; */
diff --git a/tests/syntax/fct_ptr.i b/tests/syntax/fct_ptr.i
index 6b64b57479349ea4bb49e98aba19bcfce06789d3..63a57c55fdf6f3f53de8efb85cf41aa2a6aad003 100644
--- a/tests/syntax/fct_ptr.i
+++ b/tests/syntax/fct_ptr.i
@@ -1,20 +1,20 @@
-int f(int);
+/* run.config
+ PLUGIN: variadic
+   STDOPT:
+*/
 
+int f(int);
 void *p = f;
-
 int (*pf) (int x) = f;
-
 int g() {
   return ((int (*)(int))(*pf))(4);
 }
-
 int main () {
   int (*q)(int) = (void *)0xfff45;
   q(2);
   q = p;
   q(3);
 }
-
 typedef int (*Function_ptr)();
 char *f_va(int a, ...) { return a; }
 Function_ptr fp_table[1] = {(Function_ptr) f_va}; // warning, but no error
diff --git a/tests/syntax/function-types-compatible.i b/tests/syntax/function-types-compatible.i
index 770198b5691b45604630bd53effc937be6319407..a02b6ba9d748b2b9d10446148b7c43fd3f65c2bd 100644
--- a/tests/syntax/function-types-compatible.i
+++ b/tests/syntax/function-types-compatible.i
@@ -1,5 +1,12 @@
+/* run.config
+PLUGIN: variadic
+STDOPT:
+*/
+
 void (*p)(int, ...);
+
 void f();
+
 void main() {
   p = f;
   p(1, 2); // warning, but no parsing error; will fail during execution
diff --git a/tests/syntax/gcc_builtins.c b/tests/syntax/gcc_builtins.c
index 00a9054c8b191a212b70e1b5000c4b710c4984ae..db5d0e38bdd1c27bea62b457f061eacbdb2c3211 100644
--- a/tests/syntax/gcc_builtins.c
+++ b/tests/syntax/gcc_builtins.c
@@ -1,7 +1,7 @@
 /* run.config
+  PLUGIN: variadic
    STDOPT: +"-machdep gcc_x86_32"
  */
-
 #include "stdint.h"
 
 #define likely(x)  __builtin_expect((x),1)
diff --git a/tests/syntax/inline_calls.i b/tests/syntax/inline_calls.i
index a71073677d14b7d1b989f2d667f54b3d2bb917ac..4cf6b9c05992ba6000408bbe11dde27f4ad4bda0 100644
--- a/tests/syntax/inline_calls.i
+++ b/tests/syntax/inline_calls.i
@@ -1,9 +1,9 @@
 /* run.config
+PLUGIN: eva,scope
    STDOPT: +"-inline-calls @all -kernel-msg-key printer:attrs"
    STDOPT: +"-inline-calls @inline"
    STDOPT: +"-inline-calls @inline -remove-inlined @inline"
  */
-
 int f() {
   return 2;
 }
diff --git a/tests/syntax/local-init-const.i b/tests/syntax/local-init-const.i
index 1d79724df761cbe3b412972bc0fb43c3fd156ea1..09793138d4693239a17072a39327874320e9e4ff 100644
--- a/tests/syntax/local-init-const.i
+++ b/tests/syntax/local-init-const.i
@@ -1,6 +1,8 @@
 /*run.config
-  OPT: -no-autoload-plugins -load-module eva,scope -eva -eva-verbose 0
+PLUGIN: eva,scope
+  OPT: -eva -eva-verbose 0
  */
+
 unsigned id(unsigned x) { return x; }
 
 void main() {
diff --git a/tests/syntax/loop-case-switch-for-unroll.c b/tests/syntax/loop-case-switch-for-unroll.c
index 7785be51b6a9e2495750bee02becb6c8fd846b61..3052cb9f5529fa6a77d6763f81aaee4673598cbd 100644
--- a/tests/syntax/loop-case-switch-for-unroll.c
+++ b/tests/syntax/loop-case-switch-for-unroll.c
@@ -1,4 +1,5 @@
 /* run.config
+PLUGIN: eva,scope
    STDOPT: +"-eva-slevel 100 -eva"
    STDOPT: +"-ulevel 1 -eva-slevel 100 -eva"
    STDOPT: +"-ulevel 2 -eva-slevel 100 -eva"
@@ -6,7 +7,6 @@
    the result of Frama-C piped to:
      "| grep Frama_C_show_each | sed 's/^.*Frama_C_show_each_//'"
 */
-
 #ifdef __FRAMAC__
 #define print(line, s, a) Frama_C_show_each_ ## s ## _(a)
 #else
diff --git a/tests/syntax/merge_variadic.i b/tests/syntax/merge_variadic.i
index dab33541e614a5c024f194ca824c8de30c0ffea6..b296224e959149e92dd12a8136ea5ed89d60076d 100644
--- a/tests/syntax/merge_variadic.i
+++ b/tests/syntax/merge_variadic.i
@@ -1,9 +1,9 @@
 /* run.config
-OPT: @PTEST_DIR@/@PTEST_NAME@_aux.i -print
+PLUGIN: variadic
+  OPT: @PTEST_DIR@/@PTEST_NAME@_aux.i -print
 */
 int open (const char* file, int flags, int mode) {
   return -1;
 }
-
 /*@ assigns \result \from x; */
 int foo (int x, int y);
diff --git a/tests/syntax/oracle/bts1553_2.res.oracle b/tests/syntax/oracle/bts1553_2.res.oracle
index 93dacee514969b19d8bc20ff47fcaffdd2a4c526..9293259fe565811c4e9f7f6dedc355b38faa4288 100644
--- a/tests/syntax/oracle/bts1553_2.res.oracle
+++ b/tests/syntax/oracle/bts1553_2.res.oracle
@@ -5,8 +5,6 @@
   struct a {
      int b ;
   };
-  /* compiler builtin: 
-     void Frama_C_show_aorai_state(...);   */
   /* compiler builtin: 
      __builtin_va_list __builtin_next_arg(void);   */
   /* compiler builtin: 
@@ -42,8 +40,6 @@
   struct a {
      int b ;
   };
-  /* compiler builtin: 
-     void Frama_C_show_aorai_state(...);   */
   /* compiler builtin: 
      __builtin_va_list __builtin_next_arg(void);   */
   /* compiler builtin: 
diff --git a/tests/syntax/oracle/check_builtin_bts1440.res.oracle b/tests/syntax/oracle/check_builtin_bts1440.res.oracle
index f81e5813ccc1c324160bc8600bf6e042c3e3fbbd..510a8f2b3ab41a3c39cd5c26cc41c8703528b9e1 100644
--- a/tests/syntax/oracle/check_builtin_bts1440.res.oracle
+++ b/tests/syntax/oracle/check_builtin_bts1440.res.oracle
@@ -2,8 +2,6 @@
 [kernel:file:print-one] 
   result of parsing tests/syntax/check_builtin_bts1440.i:
   /* Generated by Frama-C */
-  void Frama_C_show_aorai_state(...);
-  
   void __builtin__Exit(int);
   
   int __builtin___fprintf_chk(void *, int, char const * , ...);
diff --git a/tests/syntax/oracle/function-types-compatible.res.oracle b/tests/syntax/oracle/function-types-compatible.res.oracle
index 121d63a24e7721aba55611f25c673bf25953f32f..b25ea3698a6a3dd2d6995d583b96a878368f2cda 100644
--- a/tests/syntax/oracle/function-types-compatible.res.oracle
+++ b/tests/syntax/oracle/function-types-compatible.res.oracle
@@ -1,5 +1,5 @@
 [kernel] Parsing tests/syntax/function-types-compatible.i (no preprocessing)
-[kernel:typing:incompatible-types-call] tests/syntax/function-types-compatible.i:4: Warning: 
+[kernel:typing:incompatible-types-call] tests/syntax/function-types-compatible.i:11: Warning: 
   implicit conversion between incompatible function types:
   void (*)()
   and
diff --git a/tests/syntax/oracle/merge_variadic.res.oracle b/tests/syntax/oracle/merge_variadic.res.oracle
index 88885da35e2f84e1f548dd833903435f798a8958..a0c39aecf62846a1e8877d3a78f32647a8704355 100644
--- a/tests/syntax/oracle/merge_variadic.res.oracle
+++ b/tests/syntax/oracle/merge_variadic.res.oracle
@@ -3,7 +3,7 @@
 [kernel:linker:drop-conflicting-unused] Warning: 
   Incompatible declaration for open:
   different vararg specifiers
-  First declaration was at tests/syntax/merge_variadic.i:4
+  First declaration was at tests/syntax/merge_variadic.i:5
   Current declaration is at tests/syntax/merge_variadic_aux.i:5
   Current declaration is unused, silently removing it
 [kernel:linker:drop-conflicting-unused] Warning: 
diff --git a/tests/syntax/oracle/static_formals_1.res.oracle b/tests/syntax/oracle/static_formals_1.res.oracle
index f3dc98b3d3003fb066ecc0db86d86140b90ce85c..6261380034edbdbaf53954bee958450e2f36d238 100644
--- a/tests/syntax/oracle/static_formals_1.res.oracle
+++ b/tests/syntax/oracle/static_formals_1.res.oracle
@@ -1,24 +1,24 @@
 [kernel] Parsing tests/syntax/static_formals_1.c (with preprocessing)
 [kernel] Parsing tests/syntax/static_formals_2.c (with preprocessing)
 /* Generated by Frama-C */
-/*@ requires /* vid:26, lvid:26 */x < 10; */
-static int /* vid:60 */f(int /* vid:26, lvid:26 */x);
+/*@ requires /* vid:23, lvid:23 */x < 10; */
+static int /* vid:56 */f(int /* vid:23, lvid:23 */x);
 
-int /* vid:31 */g(void)
+int /* vid:28 */g(void)
 {
-  int /* vid:32 */tmp;
-  /* vid:32 */tmp = /* vid:60 */f(4);
-  return /* vid:32 */tmp;
+  int /* vid:29 */tmp;
+  /* vid:29 */tmp = /* vid:56 */f(4);
+  return /* vid:29 */tmp;
 }
 
-/*@ requires /* vid:55, lvid:55 */x < 10; */
-static int /* vid:61 */f_0(int /* vid:55, lvid:55 */x);
+/*@ requires /* vid:51, lvid:51 */x < 10; */
+static int /* vid:57 */f_0(int /* vid:51, lvid:51 */x);
 
-int /* vid:58 */h(void)
+int /* vid:54 */h(void)
 {
-  int /* vid:59 */tmp;
-  /* vid:59 */tmp = /* vid:61 */f_0(6);
-  return /* vid:59 */tmp;
+  int /* vid:55 */tmp;
+  /* vid:55 */tmp = /* vid:57 */f_0(6);
+  return /* vid:55 */tmp;
 }
 
 
diff --git a/tests/syntax/oracle/unroll_visit.res.oracle b/tests/syntax/oracle/unroll_visit.res.oracle
index 271518ba4c2d9a67a2fd616ca5818cbe5d4818b3..1679a9dc5d55a5b96376f47c9800d9501192aa9e 100644
--- a/tests/syntax/oracle/unroll_visit.res.oracle
+++ b/tests/syntax/oracle/unroll_visit.res.oracle
@@ -4,8 +4,8 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] tests/syntax/unroll_visit.i:9: assertion got status valid.
-[eva] tests/syntax/unroll_visit.i:7: starting to merge loop iterations
+[eva] tests/syntax/unroll_visit.i:12: assertion got status valid.
+[eva] tests/syntax/unroll_visit.i:10: starting to merge loop iterations
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/syntax/oracle/variadic.res.oracle b/tests/syntax/oracle/variadic.res.oracle
index 9e0223986f0000922185c919e1881cb0f45c1bca..1052103bac84ae187ec185f26ae494a81c58d95d 100644
--- a/tests/syntax/oracle/variadic.res.oracle
+++ b/tests/syntax/oracle/variadic.res.oracle
@@ -1,7 +1,7 @@
 [kernel] Parsing tests/syntax/variadic.i (no preprocessing)
-[kernel:typing:implicit-function-declaration] tests/syntax/variadic.i:20: Warning: 
+[kernel:typing:implicit-function-declaration] tests/syntax/variadic.i:26: Warning: 
   Calling undeclared function f. Old style K&R code?
-[kernel:typing:no-proto] tests/syntax/variadic.i:21: Warning: 
+[kernel:typing:no-proto] tests/syntax/variadic.i:27: Warning: 
   Calling function h that is declared without prototype.
   Its formals will be inferred from actual arguments
 /* Generated by Frama-C */
diff --git a/tests/syntax/static_formals_1.c b/tests/syntax/static_formals_1.c
index 6cd8687eba15553886326158692c69839fd4e061..97cfbca9a65701a0dfebf4cab8f8550af431ebbf 100644
--- a/tests/syntax/static_formals_1.c
+++ b/tests/syntax/static_formals_1.c
@@ -1,7 +1,6 @@
 /* run.config
 STDOPT: +"@PTEST_DIR@/static_formals_2.c" +"-cpp-extra-args=\"-I @PTEST_DIR@\"" +"-kernel-msg-key printer:vid"
 */
-
 #include "static_formals.h"
 
 int g() { return f(4); }
diff --git a/tests/syntax/string_concat.c b/tests/syntax/string_concat.c
index 924e8b423c7f30720939ddfb15b23b5c78ddc01b..b78a7d85590f3c5981b36737e9d20ec207dc0aad 100644
--- a/tests/syntax/string_concat.c
+++ b/tests/syntax/string_concat.c
@@ -1,4 +1,5 @@
 /* run.config*
+PLUGIN: eva,scope variadic
 TIMEOUT: 600
 OPT: -eva
 */
diff --git a/tests/syntax/test_config b/tests/syntax/test_config
index df749c62084f1dff34265d08aa76546e4a89949e..3d75cb1ea823f0885cd7c5d9e4be187df1b0b67d 100644
--- a/tests/syntax/test_config
+++ b/tests/syntax/test_config
@@ -1,4 +1,5 @@
 COMMENT: this directory is meant to test exclusively the front-end
 COMMENT: (parser, type-checker, linker, syntactic transformations)
-OPT: -print -journal-disable -check -machdep x86_32
+PLUGIN:
+OPT: -print -machdep x86_32
 FILEREG:.*\.\(c\|i\|ci\)$
diff --git a/tests/syntax/unroll_labels.i b/tests/syntax/unroll_labels.i
index 66da8b7cf4882b0214a9cc46294e20ff7f81668b..4fcef3f5d46dfd9784cf49c16fa8fbe38b7c99f4 100644
--- a/tests/syntax/unroll_labels.i
+++ b/tests/syntax/unroll_labels.i
@@ -1,10 +1,10 @@
 /* run.config
+PLUGIN: eva,scope
   STDOPT: +"-eva @EVA_CONFIG@"
   STDOPT: +"-eva @EVA_CONFIG@ -main main2 -eva-slevel 3"
 */
 enum { SIX = 6 } ;
 volatile foo;
-
 void main () {
   int j = 0;
   /*@ loop pragma UNROLL "completely", 4; */
diff --git a/tests/syntax/unroll_property_status_bts1442.i b/tests/syntax/unroll_property_status_bts1442.i
index 70ac3a9bbafb983c076f2aa1f3b6960753d24444..0a8970b5b8990d77268c0b7a7e2b8d8f54512e28 100644
--- a/tests/syntax/unroll_property_status_bts1442.i
+++ b/tests/syntax/unroll_property_status_bts1442.i
@@ -1,8 +1,8 @@
 /* run.config
-OPT: -report
-OPT: -ulevel -1 -report
+PLUGIN: report
+  OPT: -report
+  OPT: -ulevel -1 -report
 */
-
 int u(void);
 
 char *strcpy(char*dst, char*src) {
diff --git a/tests/syntax/unroll_visit.i b/tests/syntax/unroll_visit.i
index 495b3bd0c50ce064137350a98b95406b6d5ed3ff..f4d949c53ef9a94e93a366b61bbb2a14caf8356c 100644
--- a/tests/syntax/unroll_visit.i
+++ b/tests/syntax/unroll_visit.i
@@ -1,7 +1,10 @@
 /* run.config
+PLUGIN: eva,scope,from,inout
    STDOPT: +"-eva @EVA_CONFIG@ -deps -out -input -deps"
  */
+
 typedef char i8; // ideally, pretty-printing should keep 'i8' for some casts
+
 void main() {
    /*@ loop pragma UNROLL 2; */
   for(i8 i=0; i<100; i++) {
diff --git a/tests/syntax/variadic.i b/tests/syntax/variadic.i
index b07b22acab044134cb870e6860a21a96783784ab..fc23e732c0c17b9d7407c4a07236490a6a0dc62d 100644
--- a/tests/syntax/variadic.i
+++ b/tests/syntax/variadic.i
@@ -1,8 +1,14 @@
+/* run.config
+ PLUGIN: variadic
+   STDOPT:
+*/
 
 int normal(int n);
 int vf(int x, ...);
+
 typedef char tt;
 struct T {int a;} st;
+
 tt abstract;
 unsigned char uchar;
 signed char chr;
@@ -14,7 +20,7 @@ double d;
 void h();
 
 void g() {
-  vf(1,1u,uchar,3.0f, ushort, ll, abstract, st, ld,d); 
+  vf(1,1u,uchar,3.0f, ushort, ll, abstract, st, ld,d);
   // vf() is variadic: the default argument promotions apply after the initial
   // arguments. C99 6.5.2.2:7
   f(1,uchar); // f undeclared, default argument promotions apply C99 6.5.2.2:6
diff --git a/tests/syntax/wstring_concat.c b/tests/syntax/wstring_concat.c
index 76f68ddd1b187f24f22591786cda9f13ce1a8209..9bd6571dd63b901380598f6dc29c9b769f8f6f24 100644
--- a/tests/syntax/wstring_concat.c
+++ b/tests/syntax/wstring_concat.c
@@ -1,8 +1,8 @@
 /* run.config*
+PLUGIN: eva,scope,variadic
 TIMEOUT: 600
 OPT: -eva
 */
-
 #include <wchar.h>
 #include <stdio.h>
 
diff --git a/tests/test_config b/tests/test_config
index 11d75bf850c7c2f65ff98bf5fd486ec47200f499..f188ff4072509a1f23ce78441acaac71a8d02cf9 100644
--- a/tests/test_config
+++ b/tests/test_config
@@ -1,3 +1,6 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
+
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/test_config_apron b/tests/test_config_apron
index ff3a028903375e622d271ae85a070bdad02df8cb..411673ceafcafde7b9e20b8a40abe841a1cbd1a5 100644
--- a/tests/test_config_apron
+++ b/tests/test_config_apron
@@ -1,7 +1,9 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains apron-octagon -eva-warn-key experimental=inactive
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
 
 # Compare the result with the oracle of the default config.
 FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
 
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/test_config_equality b/tests/test_config_equality
index ffa23c9d32dac550f13db32f54185a48c1b3772e..fff8c6fb43f010c4d22835dbf0a4e5c43f2a249f 100644
--- a/tests/test_config_equality
+++ b/tests/test_config_equality
@@ -1,7 +1,9 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains equality
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
 
 # Compare the result with the oracle of the default config.
 FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
 
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/test_config_gauges b/tests/test_config_gauges
index 2c04eba2c74acdaa705e8dc6437b577266183d32..37ea7dfeb18c677bbb3d58d199a4d7030cd5dcac 100644
--- a/tests/test_config_gauges
+++ b/tests/test_config_gauges
@@ -1,7 +1,9 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains gauges
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
 
 # Compare the result with the oracle of the default config.
 FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
 
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/test_config_octagon b/tests/test_config_octagon
index c3f170e9652940aae572fa469a014cb5da8baf23..a63c091418a391a00eee6a9f0bb681358a49d7c5 100644
--- a/tests/test_config_octagon
+++ b/tests/test_config_octagon
@@ -1,7 +1,9 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-domains octagon
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
 
 # Compare the result with the oracle of the default config.
 FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
 
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps
diff --git a/tests/test_config_symblocs b/tests/test_config_symblocs
index d25a43c5eb7a0aeff3b6cddcdda469a1433ba638..3b082f3869cd61f8bb7baf1944ea34ca3eb2e66f 100644
--- a/tests/test_config_symblocs
+++ b/tests/test_config_symblocs
@@ -1,7 +1,9 @@
+MACRO: EVA_PLUGINS from,inout,eva,scope,variadic
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains symbolic-locations
-MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+MACRO: EVA_CONFIG @EVA_OPTIONS@ -machdep x86_32
 
 # Compare the result with the oracle of the default config.
 FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
 
-OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
+PLUGIN: @EVA_PLUGINS@
+OPT: -eva @EVA_CONFIG@ -out -input -deps