Make upgradecheck a no-op in MSVC's vcregress.pl

322becb has changed upgradecheck to use the TAP tests, discarding
pg_upgrade's tests in bincheck.  However, this is proving to be a bad
idea for the Windows buildfarm clients that use MSVC when TAP tests are
disabled as this causes a hard failure at the pg_upgrade step.

This commit disables upgradecheck, moving the execution of the tests of
pg_upgrade to bincheck, as per an initial suggestion from Andres
Freund, so as the buildfarm is able to live happily with those changes.

While on it, remove the routine that was used by upgradecheck to
create databases whose names are generated with a range of ASCII
characters as it is not used since 322becb.  upgradecheck is removed
from the CI script for Windows, as bincheck takes care of that now.

Per report from buildfarm member hamerkop (MSVC 2017 without a TAP
setup).

Reviewed-by: Justin Pryzby
Discussion: https://postgr.es/m/YkbnpriYEAagZ2wH@paquier.xyz
This commit is contained in:
Michael Paquier 2022-04-02 12:06:11 +09:00
parent d43085d12e
commit d2a2ce4184
3 changed files with 5 additions and 31 deletions

View file

@ -443,8 +443,6 @@ task:
%T_C% perl src/tools/msvc/vcregress.pl recoverycheck
test_bin_script: |
%T_C% perl src/tools/msvc/vcregress.pl bincheck
test_pg_upgrade_script: |
%T_C% perl src/tools/msvc/vcregress.pl upgradecheck
test_ecpg_script: |
rem tries to build additional stuff
vcvarsall x64

View file

@ -470,7 +470,6 @@ $ENV{CONFIG}="Debug";
<userinput>vcregress isolationcheck</userinput>
<userinput>vcregress bincheck</userinput>
<userinput>vcregress recoverycheck</userinput>
<userinput>vcregress upgradecheck</userinput>
</screen>
To change the schedule used (default is parallel), append it to the

View file

@ -106,7 +106,7 @@ my %command = (
ISOLATIONCHECK => \&isolationcheck,
BINCHECK => \&bincheck,
RECOVERYCHECK => \&recoverycheck,
UPGRADECHECK => \&upgradecheck,
UPGRADECHECK => \&upgradecheck, # no-op
TAPTEST => \&taptest,);
my $proc = $command{$what};
@ -286,9 +286,6 @@ sub bincheck
foreach my $dir (@bin_dirs)
{
next unless -d "$dir/t";
# Do not consider pg_upgrade, as it is handled by
# upgradecheck.
next if ($dir =~ "/pg_upgrade/");
my $status = tap_check($dir);
$mstat ||= $status;
@ -498,31 +495,11 @@ sub quote_system_arg
return "\"$arg\"";
}
# Generate a database with a name made of a range of ASCII characters, useful
# for testing pg_upgrade.
sub generate_db
{
my ($prefix, $from_char, $to_char, $suffix) = @_;
my $dbname = $prefix;
for my $i ($from_char .. $to_char)
{
next if $i == 7 || $i == 10 || $i == 13; # skip BEL, LF, and CR
$dbname = $dbname . sprintf('%c', $i);
}
$dbname .= $suffix;
system('createdb', quote_system_arg($dbname));
my $status = $? >> 8;
exit $status if $status;
return;
}
sub upgradecheck
{
InstallTemp();
my $mstat = tap_check("$topdir/src/bin/pg_upgrade");
exit $mstat if $mstat;
# pg_upgrade is now handled by bincheck, but keep this target for
# backward compatibility.
print "upgradecheck is a no-op, use bincheck instead.\n";
return;
}
@ -640,7 +617,7 @@ sub usage
" plcheck run tests of PL languages\n",
" recoverycheck run recovery test suite\n",
" taptest run an arbitrary TAP test set\n",
" upgradecheck run tests of pg_upgrade\n",
" upgradecheck run tests of pg_upgrade (no-op)\n",
"\nOptions for <arg>: (used by check and installcheck)\n",
" serial serial mode\n",
" parallel parallel mode\n",