Hi all, Each time I do development on Windows, I get annoyed by the fact that it is not easy to run individual test scripts in the same way as we do on any other platforms, using PROVE_TESTS, or even PROVE_FLAGS. And there have been recent complaints about not being able to do that.
Please find attached a patch to support both variables, with some documentation. Using a terminal on Windows, one can set those variables using just.. "set", say: set PROVE_FLAGS=--timer set PROVE_TESTS=t/020*.pl t/010*.pl Note the absence of quotes for the second one, so as it is possible to apply cleanly glob() to each element passed down. Thoughts? -- Michael
diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 47e5f7c8ae..3692b49b39 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -496,6 +496,19 @@ $ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib'; </varlistentry> </variablelist> </para> + + <para> + The TAP tests run with <command>vcregress</command> support the + environment variables <varname>PROVE_TESTS</varname>, that is expanded + automatically using the name patterns given, and + <varname>PROVE_FLAGS</varname>. These can for instance be set + on a Windows terminal as follows, before running + <command>vcregress</command>: +<programlisting> +set PROVE_FLAGS=--timer +set PROVE_TESTS=t/020*.pl t/010*.pl +</programlisting> + </para> </sect2> </sect1> diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 266098e193..d6c33f68ee 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -209,7 +209,21 @@ sub tap_check my $dir = shift; chdir $dir; - my @args = ("prove", @flags, glob("t/*.pl")); + # Fetch and adjust PROVE_TESTS, applying glob() to each element + # defined to get and list individual tests. + my $prove_tests_val = $ENV{PROVE_TESTS} || "t/*.pl"; + my @prove_tests_array = split(/\s+/, $prove_tests_val); + my @prove_tests = (); + foreach (@prove_tests_array) + { + push(@prove_tests, glob($_)); + } + + # Fetch and adjust PROVE_FLAGS, handling multiple arguments. + my $prove_flags_val = $ENV{PROVE_FLAGS} || ""; + my @prove_flags = split(/\s+/, $prove_flags_val); + + my @args = ("prove", @flags, @prove_tests, @prove_flags); # adjust the environment for just this test local %ENV = %ENV;
signature.asc
Description: PGP signature