mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Add new target modulescheck in vcregress.pl
This allows an MSVC build to run regression tests related to modules in src/test/modules. Author: Michael Paquier Reviewed by: Andrew Dunstan
This commit is contained in:
parent
2e5d52a644
commit
4cb7d671fd
@ -436,6 +436,7 @@ $ENV{CONFIG}="Debug";
|
|||||||
<userinput>vcregress installcheck</userinput>
|
<userinput>vcregress installcheck</userinput>
|
||||||
<userinput>vcregress plcheck</userinput>
|
<userinput>vcregress plcheck</userinput>
|
||||||
<userinput>vcregress contribcheck</userinput>
|
<userinput>vcregress contribcheck</userinput>
|
||||||
|
<userinput>vcregress modulescheck</userinput>
|
||||||
<userinput>vcregress ecpgcheck</userinput>
|
<userinput>vcregress ecpgcheck</userinput>
|
||||||
<userinput>vcregress isolationcheck</userinput>
|
<userinput>vcregress isolationcheck</userinput>
|
||||||
<userinput>vcregress upgradecheck</userinput>
|
<userinput>vcregress upgradecheck</userinput>
|
||||||
|
@ -31,7 +31,7 @@ if (-e "src/tools/msvc/buildenv.pl")
|
|||||||
|
|
||||||
my $what = shift || "";
|
my $what = shift || "";
|
||||||
if ($what =~
|
if ($what =~
|
||||||
/^(check|installcheck|plcheck|contribcheck|ecpgcheck|isolationcheck|upgradecheck)$/i
|
/^(check|installcheck|plcheck|contribcheck|modulescheck|ecpgcheck|isolationcheck|upgradecheck)$/i
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$what = uc $what;
|
$what = uc $what;
|
||||||
@ -49,7 +49,7 @@ copy("$Config/autoinc/autoinc.dll", "src/test/regress");
|
|||||||
copy("$Config/regress/regress.dll", "src/test/regress");
|
copy("$Config/regress/regress.dll", "src/test/regress");
|
||||||
copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress");
|
copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress");
|
||||||
|
|
||||||
$ENV{PATH} = "../../../$Config/libpq;../../$Config/libpq;$ENV{PATH}";
|
$ENV{PATH} = "$topdir/$Config/libpq;$topdir/$Config/libpq;$ENV{PATH}";
|
||||||
|
|
||||||
my $schedule = shift;
|
my $schedule = shift;
|
||||||
unless ($schedule)
|
unless ($schedule)
|
||||||
@ -76,6 +76,7 @@ my %command = (
|
|||||||
INSTALLCHECK => \&installcheck,
|
INSTALLCHECK => \&installcheck,
|
||||||
ECPGCHECK => \&ecpgcheck,
|
ECPGCHECK => \&ecpgcheck,
|
||||||
CONTRIBCHECK => \&contribcheck,
|
CONTRIBCHECK => \&contribcheck,
|
||||||
|
MODULESCHECK => \&modulescheck,
|
||||||
ISOLATIONCHECK => \&isolationcheck,
|
ISOLATIONCHECK => \&isolationcheck,
|
||||||
UPGRADECHECK => \&upgradecheck,);
|
UPGRADECHECK => \&upgradecheck,);
|
||||||
|
|
||||||
@ -213,10 +214,39 @@ sub plcheck
|
|||||||
chdir "../../..";
|
chdir "../../..";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub subdircheck
|
||||||
|
{
|
||||||
|
my $subdir = shift;
|
||||||
|
my $module = shift;
|
||||||
|
my $mstat = 0;
|
||||||
|
|
||||||
|
if ( ! -d "$module/sql" ||
|
||||||
|
! -d "$module/expected" ||
|
||||||
|
( ! -f "$module/GNUmakefile" && ! -f "$module/Makefile"))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
chdir $module;
|
||||||
|
print
|
||||||
|
"============================================================\n";
|
||||||
|
print "Checking $module\n";
|
||||||
|
my @tests = fetchTests();
|
||||||
|
my @opts = fetchRegressOpts();
|
||||||
|
my @args = (
|
||||||
|
"$topdir/$Config/pg_regress/pg_regress",
|
||||||
|
"--psqldir=$topdir/$Config/psql",
|
||||||
|
"--dbname=contrib_regression", @opts, @tests);
|
||||||
|
system(@args);
|
||||||
|
my $status = $? >> 8;
|
||||||
|
$mstat ||= $status;
|
||||||
|
chdir "..";
|
||||||
|
|
||||||
|
exit $mstat if $mstat;
|
||||||
|
}
|
||||||
|
|
||||||
sub contribcheck
|
sub contribcheck
|
||||||
{
|
{
|
||||||
chdir "../../../contrib";
|
chdir "$topdir/contrib";
|
||||||
my $mstat = 0;
|
|
||||||
foreach my $module (glob("*"))
|
foreach my $module (glob("*"))
|
||||||
{
|
{
|
||||||
# these configuration-based exclusions must match Install.pm
|
# these configuration-based exclusions must match Install.pm
|
||||||
@ -225,28 +255,20 @@ sub contribcheck
|
|||||||
next if ($module eq "xml2" && !defined($config->{xml}));
|
next if ($module eq "xml2" && !defined($config->{xml}));
|
||||||
next if ($module eq "sepgsql");
|
next if ($module eq "sepgsql");
|
||||||
|
|
||||||
next
|
subdircheck("$topdir/contrib", $module);
|
||||||
unless -d "$module/sql"
|
|
||||||
&& -d "$module/expected"
|
|
||||||
&& (-f "$module/GNUmakefile" || -f "$module/Makefile");
|
|
||||||
chdir $module;
|
|
||||||
print
|
|
||||||
"============================================================\n";
|
|
||||||
print "Checking $module\n";
|
|
||||||
my @tests = fetchTests();
|
|
||||||
my @opts = fetchRegressOpts();
|
|
||||||
my @args = (
|
|
||||||
"../../$Config/pg_regress/pg_regress",
|
|
||||||
"--psqldir=../../$Config/psql",
|
|
||||||
"--dbname=contrib_regression", @opts, @tests);
|
|
||||||
system(@args);
|
|
||||||
my $status = $? >> 8;
|
|
||||||
$mstat ||= $status;
|
|
||||||
chdir "..";
|
|
||||||
}
|
}
|
||||||
exit $mstat if $mstat;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub modulescheck
|
||||||
|
{
|
||||||
|
chdir "$topdir/src/test/modules";
|
||||||
|
foreach my $module (glob("*"))
|
||||||
|
{
|
||||||
|
subdircheck("$topdir/src/test/modules", $module);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Run "initdb", then reconfigure authentication.
|
# Run "initdb", then reconfigure authentication.
|
||||||
sub standard_initdb
|
sub standard_initdb
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user