[t/spec] Add tricky tests (which pass after latest Rakudo patch), unfudge old simple...
[pugs.git] / t / run / 04-dash-ce.t
blob28c24f19fe67ec229e8057e99e801353e8d0ddec
1 use v6;
3 use Test;
5 =begin pod
7 Test evaluation of combination of C<-e> and C<-c> switches.
9 They should all do a syntax check and never evaluate the
10 C<-e> fragments.
12 =end pod
14 my @examples = (
15   '-ce "print qq,Code got interpreted!,"',
16   '-c -e "print qq,Code got interpreted!,"',
17   '-e "print qq,Code got interpreted!," -c',
18   '-eprint -c',
19   '-ceprint',
22 plan +@examples;
23 if $*OS eq "browser" {
24   skip_rest "Programs running in browsers don't have access to regular IO.";
25   exit;
28 diag "Running under $*OS";
30 my $redir =  ">";
32 if $*OS eq any <MSWin32 mingw msys cygwin> {
33   $redir = '>';
36 sub nonce () { return (".{$*PID}." ~ (1..1000).pick) }
38 for @examples -> $ex {
39   my $out_fn = "temp-ex-output" ~ nonce;
40   my $command = "$*EXECUTABLE_NAME $ex $redir $out_fn";
41   diag $command;
42   run $command;
44   my $expected = "-e syntax OK\n";
45   my $got      = slurp $out_fn;
46   unlink $out_fn;
48   is $got, $expected, "$ex works";