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
