[t/spec] Add tricky tests (which pass after latest Rakudo patch), unfudge old simple...
[pugs.git] / t / run / 05-unknown-option.t
blob733fff052c321d734fd8c6da9106a2c7aa2b0c4e
1 use v6;
3 use Test;
5 =begin pod
7 Test rejection of unknown command line switches.
9 Pugs should output
11   Unrecognized switch: -foo  (-h will show valid options).
13 if called with the (unknown) option C<-foo>
15 =end pod
17 my @examples = map -> Junction $_ { $_.eigenstates },
18                map -> Junction $_ { $_.eigenstates }, (
19     any('-foo ', '-e "print" -foo ', '-c -foo ', '-eprint -foo ')
20   ~ any("", '-e "print" ', '-c '),
23 plan +@examples;
24 if $*OS eq "browser" {
25   skip_rest "Programs running in browsers don't have access to regular IO.";
26   exit;
29 diag "Running under $*OS";
31 # Win9x breakage:
32 my $redir = "2>&1 >";
34 sub nonce () { return (".{$*PID}." ~ (1..1000).pick) }
36 for @examples -> $ex {
37   my $out_fn = "temp-ex-output" ~ nonce;
38   my $command = "$*EXECUTABLE $ex $redir $out_fn";
39   diag $command;
40   run $command;
42   my $expected = "Unrecognized switch: -foo  (-h will show valid options).\n";
43   my $got      = slurp $out_fn;
44   unlink $out_fn;
46   is $got, $expected, "$ex works", :todo;