This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document what to do with object on the left and add some TODO tests for that
[perl5.git] / t / win32 / system_tests
CommitLineData
dd7038b3
JH
1#!perl
2
02ef22d5 3use Config;
dd7038b3
JH
4use Cwd;
5use strict;
6
7$| = 1;
8
9my $cwdb = my $cwd = cwd();
10$cwd =~ s,\\,/,g;
11$cwdb =~ s,/,\\,g;
12
13my $testdir = "t e s t";
14my $exename = "showav";
15my $plxname = "showargv";
16
17my $exe = "$testdir/$exename";
18my $exex = $exe . ".exe";
19(my $exeb = $exe) =~ s,/,\\,g;
20my $exebx = $exeb . ".exe";
21
22my $bat = "$testdir/$plxname";
23my $batx = $bat . ".bat";
24(my $batb = $bat) =~ s,/,\\,g;
25my $batbx = $batb . ".bat";
26
27my $cmdx = $bat . ".cmd";
28my $cmdb = $batb;
29my $cmdbx = $cmdb . ".cmd";
30
31my @commands = (
32 $exe,
33 $exex,
34 $exeb,
35 $exebx,
36 "./$exe",
37 "./$exex",
38 ".\\$exeb",
39 ".\\$exebx",
40 "$cwd/$exe",
41 "$cwd/$exex",
42 "$cwdb\\$exeb",
43 "$cwdb\\$exebx",
44 $bat,
45 $batx,
46 $batb,
47 $batbx,
48 "./$bat",
49 "./$batx",
50 ".\\$batb",
51 ".\\$batbx",
52 "$cwd/$bat",
53 "$cwd/$batx",
54 "$cwdb\\$batb",
55 "$cwdb\\$batbx",
56 $cmdx,
57 $cmdbx,
58 "./$cmdx",
59 ".\\$cmdbx",
60 "$cwd/$cmdx",
61 "$cwdb\\$cmdbx",
62 [$^X, $batx],
63 [$^X, $batbx],
64 [$^X, "./$batx"],
65 [$^X, ".\\$batbx"],
66 [$^X, "$cwd/$batx"],
67 [$^X, "$cwdb\\$batbx"],
68);
69
70my @av = (
71 undef,
72 "",
73 " ",
74 "abc",
75 "a b\tc",
76 "\tabc",
77 "abc\t",
78 " abc\t",
79 "\ta b c ",
80 ["\ta b c ", ""],
81 ["\ta b c ", " "],
82 ["", "\ta b c ", "abc"],
83 [" ", "\ta b c ", "abc"],
02ef22d5 84 ['" "', 'a" "b" "c', "abc"],
dd7038b3
JH
85);
86
87print "1.." . (@commands * @av * 2) . "\n";
88for my $cmds (@commands) {
89 for my $args (@av) {
90 my @all_args;
91 my @cmds = defined($cmds) ? (ref($cmds) ? @$cmds : $cmds) : ();
92 my @args = defined($args) ? (ref($args) ? @$args : $args) : ();
93 print "######## [@cmds]\n";
02ef22d5
JH
94 print "<", join('><',
95 $cmds[$#cmds],
96 map { my $x = $_; $x =~ s/"//g; $x } @args),
97 ">\n";
dd7038b3
JH
98 if (system(@cmds,@args) != 0) {
99 print "Failed, status($?)\n";
02ef22d5
JH
100 if ($Config{ccflags} =~ /\bDDEBUGGING\b/) {
101 print "Running again in debug mode\n";
102 $^D = 1; # -Dp
103 system(@cmds,@args);
104 }
dd7038b3
JH
105 }
106 $^D = 0;
02ef22d5
JH
107 my $cmdstr = join " ", map { /\s|^$/ && !/\"/
108 ? qq["$_"] : $_ } @cmds, @args;
dd7038b3
JH
109 print "######## '$cmdstr'\n";
110 if (system($cmdstr) != 0) {
111 print "Failed, status($?)\n";
02ef22d5
JH
112 if ($Config{ccflags} =~ /\bDDEBUGGING\b/) {
113 print "Running again in debug mode\n";
114 $^D = 1; # -Dp
115 system($cmdstr);
116 }
dd7038b3
JH
117 }
118 $^D = 0;
119 }
120}