diff --git a/tools/ptests/ptests.ml b/tools/ptests/ptests.ml
index e7277921dfd04d138f1e5540dee51690f2115d48..41d8b80de12865c46f63406df5b6a7340b2ee567 100644
--- a/tools/ptests/ptests.ml
+++ b/tools/ptests/ptests.ml
@@ -751,11 +751,13 @@ end = struct
       try
         Scanf.sscanf s.ex_cmd "%_[ ]LOG%_[ ]%[-A-Za-z0-9_',+=:.\\@@]%_[ ]%s@\n"
           (fun name cmd ->
+             if name = "" then fail (file ^": EXEC"^ (if once then "NOW" else "") ^ " directive with an invalid LOG filename: " ^ s.ex_cmd);
              aux { s with ex_cmd = cmd; ex_log = name :: s.ex_log })
       with Scanf.Scan_failure _ ->
       try
         Scanf.sscanf s.ex_cmd "%_[ ]BIN%_[ ]%[A-Za-z0-9_.\\-@@]%_[ ]%s@\n"
           (fun name cmd ->
+             if name = "" then fail (file ^": EXEC"^ (if once then "NOW" else "") ^ " directive with an invalid BIN filename: " ^ s.ex_cmd);
              aux { s with ex_cmd = cmd; ex_bin = name :: s.ex_bin })
       with Scanf.Scan_failure _ ->
       try
@@ -1758,7 +1760,7 @@ let process_file ~env ~result_fmt ~oracle_fmt file directory config ~modules ~en
              (deps %a %a)\n  \
              (targets %a %a)\n  \
              %a\n\
-             (action (%a (run %s %%{dep:%s} %S)))\n\
+             (action (run %s %%{dep:%s} %S))\n\
              )@."
             (* rule: *)
             wtest.info
@@ -1773,7 +1775,6 @@ let process_file ~env ~result_fmt ~oracle_fmt file directory config ~modules ~en
             (* enabled_if: *)
             pp_enabled_if cmd.deps
             (* action: *)
-            pp_accepted_exit_code cmd
             !wrapper_cmd
             wrapper_basename
             wtest.cmd;