Skip to content

Commit

Permalink
fixup! reftest: update commands prefix replacement
Browse files Browse the repository at this point in the history
  • Loading branch information
rjbou committed Sep 8, 2023
1 parent 952d269 commit abbdc5c
Showing 1 changed file with 49 additions and 49 deletions.
98 changes: 49 additions & 49 deletions tests/reftests/run.ml
Original file line number Diff line number Diff line change
Expand Up @@ -421,59 +421,59 @@ module Parse = struct
| "|" :: "unordered" :: r ->
get_rewr (true, acc) r
| "|" :: "sed-cmd" :: cmd :: r ->
let repn r = repn r 1 None in
let re =
alt [
let sandbox =
(* Sandbox prefix
>[...] /tmp/build_592d92_dune/opam-reftest-2b89f9/OPAM/opam-init/hooks/sandbox.sh "build" "cmd" <
>[...] ${BASEDIR}/opam-init/hooks/sandbox.sh "build" "cmd" <
-->
>[...] cmd <
>[...] /tmp/build_592d92_dune/opam-reftest-2b89f9/OPAM/opam-init/hooks/sandbox.sh "build" "cmd" <
>[...] ${BASEDIR}/opam-init/hooks/sandbox.sh "build" "cmd" <
-->
>[...] cmd <
*)
seq [
alt [ char '/'; Re.str "${"; ];
repn any; Re.str "sandbox.sh";
space;
char '"';
alt @@ List.map Re.str [ "build"; "install"; "remove" ];
char '"';
space;
char '"'; Re.str cmd; char '"';
space;
];
(* Unix & Mac command prefix
>[...] /usr/bin/cmd <
>[...] /usr/bin/cmd <
-->
>[...] cmd <
*)
seq [
opt @@ char '"';
repn @@ seq [ char '/'; repn @@ diff any (alt [ space; char '/']) ];
char '/';
Re.str cmd;
opt @@ char '"';
space
];
(* Windows command prefix
>[...] C:\Windows\system32\cmd.exe <
>[...] C:\Windows\system32\cmd <
>[...] C:\Windows\system 32\cmd <
-->
>[...] cmd <
*)
seq [
opt @@ char '"';
alpha; char ':';
repn @@ seq [ char '\\'; repn @@ diff any (char '\\') ];
char '\\';
Re.str cmd;
opt @@ Re.str ".exe";
opt @@ char '"';
space
]
seq [
alt [ char '/'; Re.str "${" ];
non_greedy @@ rep1 any; Re.str "sandbox.sh";
space;
char '"';
alt @@ List.map Re.str [ "build"; "install"; "remove" ];
char '"';
space;
char '"'; Re.str cmd; char '"';
space;
]
in
let with_quote_set s = set ("\"'"^s) in
let opt_quoted r = [
seq @@ [ char '"'] @ r @ [ char '"'; rep1 space ];
seq @@ r @ [ rep1 space ];
] in
let unix_prefix =
(* Unix & Mac command prefix
>[...] /usr/bin/cmd <
>[...] /usr/bin/cmd <
-->
>[...] cmd <
*)
opt_quoted @@ [
rep1 @@ seq [ char '/'; rep1 @@ diff any (with_quote_set "/ ") ];
char '/';
Re.str cmd;
]
in
let win_prefix =
(* Windows command prefix
>[...] C:\Windows\system32\cmd.exe <
>[...] C:\Windows\system32\cmd <
>[...] C:\Windows\system 32\cmd <
-->
>[...] cmd <
*)
opt_quoted @@ [
alpha; char ':';
rep1 @@ seq [ char '\\'; rep1 @@ diff any (with_quote_set "\\") ];
char '\\';
Re.str cmd;
opt @@ Re.str ".exe";
] in
let re = alt @@ sandbox :: unix_prefix @ win_prefix in
let str = Printf.sprintf "%s " cmd in
get_rewr (unordered, (re, Sed str) :: acc) r
| ">$" :: output :: [] ->
Expand Down

0 comments on commit abbdc5c

Please sign in to comment.