diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml
index dff58c2f8ad..7e99d0c5329 100644
--- a/doc/src/sgml/install-windows.sgml
+++ b/doc/src/sgml/install-windows.sgml
@@ -511,15 +511,6 @@ $ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib';
-
- LZ4
-
- Path to a lz4 command. The default is
- lz4, that would be the command found in
- PATH.
-
-
-
TAR
diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
index 2d5980eb579..13fa310d6f1 100644
--- a/src/tools/msvc/vcregress.pl
+++ b/src/tools/msvc/vcregress.pl
@@ -12,6 +12,7 @@ use File::Basename;
use File::Copy;
use File::Find ();
use File::Path qw(rmtree);
+use File::Spec qw(devnull);
use FindBin;
use lib $FindBin::RealBin;
@@ -28,11 +29,13 @@ my $tmp_installdir = "$topdir/tmp_install";
do './src/tools/msvc/config_default.pl';
do './src/tools/msvc/config.pl' if (-f 'src/tools/msvc/config.pl');
+my $devnull = File::Spec->devnull;
+
# These values are defaults that can be overridden by the calling environment
-# (see buildenv.pl processing below).
+# (see buildenv.pl processing below). We assume that the ones listed here
+# always exist by default. Other values may optionally be set for bincheck
+# or taptest, see set_command_env() below.
# c.f. src/Makefile.global.in and configure.ac
-$ENV{GZIP_PROGRAM} ||= 'gzip';
-$ENV{LZ4} ||= 'lz4';
$ENV{TAR} ||= 'tar';
# buildenv.pl is for specifying the build environment settings
@@ -116,6 +119,32 @@ exit 0;
########################################################################
+# Helper function for set_command_env, to set one environment command.
+sub set_single_env
+{
+ my $envname = shift;
+ my $envdefault = shift;
+
+ # If a command is defined by the environment, just use it.
+ return if (defined($ENV{$envname}));
+
+ # Nothing is defined, so attempt to assign a default. The command
+ # may not be in the current environment, hence check if it can be
+ # executed.
+ my $rc = system("$envdefault --version >$devnull 2>&1");
+
+ # Set the environment to the default if it exists, else leave it.
+ $ENV{$envname} = $envdefault if $rc == 0;
+ return;
+}
+
+# Set environment values for various command types. These can be used
+# in the TAP tests.
+sub set_command_env
+{
+ set_single_env('GZIP_PROGRAM', 'gzip');
+}
+
sub installcheck_internal
{
my ($schedule, @EXTRA_REGRESS_OPTS) = @_;
@@ -244,6 +273,8 @@ sub bincheck
{
InstallTemp();
+ set_command_env();
+
my $mstat = 0;
# Find out all the existing TAP tests by looking for t/ directories
@@ -277,6 +308,9 @@ sub taptest
push(@args, "$topdir/$dir");
InstallTemp();
+
+ set_command_env();
+
my $status = tap_check(@args);
exit $status if $status;
return;