# 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;
     }

Reply via email to