[t/spec] Add tricky tests (which pass after latest Rakudo patch), unfudge old simple...
[pugs.git] / t / run / 09-dash-uppercase-c.t
bloba6a61ab6b7a7edd42f6ab14150240ed7d5b13ec9
1 use v6;
3 use Test;
5 =begin pod
7 Test handling of C<-Cbackend>.
9 =end pod
11 sub flatten (Mu $x) {
12     ($x.isa(Junction)) ?? (map &flatten, $x.eigenstates) !! $x
15 my @t_good = map &flatten, (
16   any('-C')
17     ~ any('Pugs', 'pUGs')
18     ~ ' '
19     ~ any('-e1', map { "examples/$_.pl" }, <
20   functional/fp
21   algorithms/hanoi
22   junctions/1
23   junctions/all-all
24   junctions/3 junctions/all-any junctions/any-any
25   junctions/any-any2 junctions/grades
26   algorithms/quicksort
27 >),
28   any('-C')
29     ~ any('PIR', 'pir')
30     ~ ' '
31     ~ any('-e1', map {"examples/$_.pl"}, <
32   junctions/1
33   junctions/any-any
34   junctions/any-any2
35   junctions/3
36   junctions/all-all
37   junctions/grades
38   functional/fp
39   algorithms/hanoi
40   junctions/all-any
44 # I don't know (yet) how to force a junction into expansion
45 my (@tests_ok);
46 for @t_good -> $test {
47   push @tests_ok, $test;
51 plan((+@tests_ok)*2);
52 if $*OS eq "browser" {
53   skip_rest "Programs running in browsers don't have access to regular IO.";
54   exit;
57 diag "Running under $*OS";
59 # 2>&1 only works on WinNT upwards (cmd.exe) !
60 my $redir_stderr = ">";
62 sub nonce () { return (".{$*PID}." ~ (1..1000).pick) }
63 sub run_pugs ($c) {
64   my $tempfile = "temp-ex-output" ~ nonce;
65   my $command = "$*EXECUTABLE_NAME $c $redir_stderr $tempfile";
66   diag $command;
67   run $command;
68   my $res = $tempfile ~~ :s;
69   unlink $tempfile;
70   return $res;
73 for @tests_ok -> $test {
74   my $f = run_pugs($test);
75   ok( defined $f, "dump file was created" );
76   ok( $f >= 3, "... and it contains some output" );