# New Ticket Created by Ron Schmidt
# Please include the string: [perl #93576]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=93576 >
Under Linux if you are in the rakudo build directory and type make
t/spec/S02-builtin_data_types/anon_block.t (or make followed by the
name of any test file) the test file is run with the right configuration
and command line parameters to make "#? skip" and "#? todo" directives
etc behave properly. This currently does not seem to work on Windows.
It doesn't work for me and after a discussion on IRC with JimmyZ, see
http://irclog.perlgeek.de/perl6/2011-06-26#i_4005711, it became clear it
didn't work for him on Windows either.
I have attached a patch that fixes the problem to the point of having
such a command line request usable under windows. The solution is
somewhat lacking in that it doesn't allow the test file names provided
to make to have the '\' back slash separators that are native to Windows
but includes a comment in the make file to "document around" the issue.
I hope and believe that the patch makes the situation better than it is
now. The patch takes out the translation of \* to \\* that, I believe,
was intended to work around this at one point but after testing with
gmake and strawberry Perl as well as mingw32-make and ActiveState Perl
believe that the build and install work properly without that
translation and with this patch.
Hope this helps,
Ron Schmidt
diff --git a/Configure.pl b/Configure.pl
index 79c24af..b8467a2 100644
--- a/Configure.pl
+++ b/Configure.pl
@@ -181,7 +181,10 @@ sub create_makefile {
$maketext =~ s/@(\w+)@/$config{$1}/g;
if ($^O eq 'MSWin32') {
$maketext =~ s{/}{\\}g;
- $maketext =~ s{\\\*}{\\\\*}g;
+ $maketext =~ s{^\s*t\\\*.t .*}{
+ my $t = $&; $t =~ s!\\!/!g;
+ "# under windows provide forward slashes on command line for single test file$/$t";
+ }me;
$maketext =~ s{(?:git|http):\S+}{ do {my $t = $&; $t =~ s'\\'/'g; $t} }eg;
$maketext =~ s/.*curl.*/do {my $t = $&; $t =~ s'%'%%'g; $t}/meg;
}