diff --git a/tests/syntax/cpp-command.c b/tests/syntax/cpp-command.c
new file mode 100644
index 0000000000000000000000000000000000000000..8b55bb3e5fd12011082daaf3d62df88f3f11d1c8
--- /dev/null
+++ b/tests/syntax/cpp-command.c
@@ -0,0 +1,6 @@
+/* run.config*
+   OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo ['%1' '%1' '%i' '%input'] ['%2' '%2' '%o' '%output'] ['%args']"
+   OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %%1 = %1 %%2 = %2 %%args = %args"
+   OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo using \\\\% has no effect : \\\\%input"
+   OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %var is not an interpreted placeholder"
+   */
\ No newline at end of file
diff --git a/tests/syntax/oracle/cpp-command.0.res.oracle b/tests/syntax/oracle/cpp-command.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d5d058033c1f96dfd3bea22b6ae0f813a375f709
--- /dev/null
+++ b/tests/syntax/oracle/cpp-command.0.res.oracle
@@ -0,0 +1,2 @@
+[kernel] Parsing tests/syntax/cpp-command.c (with preprocessing)
+[tests/syntax/cpp-command.c tests/syntax/cpp-command.c tests/syntax/cpp-command.c tests/syntax/cpp-command.c] [/tmp/cpp-command.cc1c5af.i /tmp/cpp-command.cc1c5af.i /tmp/cpp-command.cc1c5af.i /tmp/cpp-command.cc1c5af.i] [ -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc -m32]
diff --git a/tests/syntax/oracle/cpp-command.1.res.oracle b/tests/syntax/oracle/cpp-command.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c8e543a9189c23d86c276dc15df841a1ffb424ed
--- /dev/null
+++ b/tests/syntax/oracle/cpp-command.1.res.oracle
@@ -0,0 +1,2 @@
+[kernel] Parsing tests/syntax/cpp-command.c (with preprocessing)
+%1 = tests/syntax/cpp-command.c %2 = /tmp/cpp-command.cee4fe3.i %args = -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc -m32
diff --git a/tests/syntax/oracle/cpp-command.2.res.oracle b/tests/syntax/oracle/cpp-command.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..55681f513862d219342b4f2bff8527cc04deb4b8
--- /dev/null
+++ b/tests/syntax/oracle/cpp-command.2.res.oracle
@@ -0,0 +1,2 @@
+[kernel] Parsing tests/syntax/cpp-command.c (with preprocessing)
+using \% has no effect : 	ests/syntax/cpp-command.c
diff --git a/tests/syntax/oracle/cpp-command.3.res.oracle b/tests/syntax/oracle/cpp-command.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f149d8c6d5b8b5f55d16a41d27b35a929e143a5b
--- /dev/null
+++ b/tests/syntax/oracle/cpp-command.3.res.oracle
@@ -0,0 +1,2 @@
+[kernel] Parsing tests/syntax/cpp-command.c (with preprocessing)
+%var is not an interpreted placeholder