Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8bc496c

Browse files
committed
Back-patch fixes to make TAP tests work on Windows.
This back-ports commit13d856e and assorted followon patchesinto 9.4 and 9.5. 9.5 and HEAD are now substantially identical in allthe files touched by this commit, except that 010_pg_basebackup.pl hasa few more tests related to the new --slot option. 9.4 has many fewerTAP tests, but the test infrastructure files are substantially the same,with the exception that 9.4 lacks the single-tmp-install infrastructureintroduced in 9.5 (commitdcae5fa).The primary motivation for this patch is to ensure that TAP test casefixes can be back-patched without hazards of the kind seen in commits34557f5/06dd4b44f. In principle it should also make the world safefor running the TAP tests in the buildfarm in these branches; althoughwe might want to think about back-portingdcae5fa to 9.4 ifwe're going to do that for real, because the TAP tests are quite diskspace hungry without it.Michael Paquier did the back-porting work; original patches were byhim and assorted other people.
1 parenta6c4c07 commit8bc496c

File tree

9 files changed

+239
-76
lines changed

9 files changed

+239
-76
lines changed

‎doc/src/sgml/install-windows.sgml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ $ENV{CONFIG}="Debug";
438438
<userinput>vcregress contribcheck</userinput>
439439
<userinput>vcregress ecpgcheck</userinput>
440440
<userinput>vcregress isolationcheck</userinput>
441+
<userinput>vcregress tapcheck</userinput>
441442
<userinput>vcregress upgradecheck</userinput>
442443
</screen>
443444

@@ -450,6 +451,29 @@ $ENV{CONFIG}="Debug";
450451
For more information about the regression tests, see
451452
<xref linkend="regress">.
452453
</para>
454+
455+
<para>
456+
Running the TAP regression tests, with "vcregress tapcheck", requires an
457+
additional Perl module to be installed:
458+
<variablelist>
459+
<varlistentry>
460+
<term><productname>IPC::Run</productname></term>
461+
<listitem><para>
462+
As of this writing, <literal>IPC::Run</> is not included in the
463+
ActiveState Perl installation, nor in the ActiveState Perl Package
464+
Manager (PPM) library. To install, download the
465+
<filename>IPC-Run-&lt;version&gt;.tar.gz</> source archive from CPAN,
466+
at <ulink url="http://search.cpan.org/dist/IPC-Run/"></>, and
467+
uncompress. Edit the <filename>buildenv.pl</> file, and add a PERL5LIB
468+
variable to point to the <filename>lib</> subdirectory from the
469+
extracted archive. For example:
470+
<programlisting>
471+
$ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib';
472+
</programlisting>
473+
</para></listitem>
474+
</varlistentry>
475+
</variablelist>
476+
</para>
453477
</sect2>
454478

455479
<sect2>

‎src/Makefile.global.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,14 +334,14 @@ ifeq ($(enable_tap_tests),yes)
334334

335335
defineprove_installcheck
336336
rm -rf$(CURDIR)/tmp_check/log
337-
cd$(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' top_builddir='$(CURDIR)/$(top_builddir)'$(PROVE)$(PG_PROVE_FLAGS)$(PROVE_FLAGS) t/*.pl
337+
cd$(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' top_builddir='$(CURDIR)/$(top_builddir)'PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress'$(PROVE)$(PG_PROVE_FLAGS)$(PROVE_FLAGS) t/*.pl
338338
endef
339339

340340
defineprove_check
341341
rm -rf$(CURDIR)/tmp_check/log
342342
$(MKDIR_P) tmp_check/log
343343
$(MAKE) -C$(top_builddir) DESTDIR='$(CURDIR)'/tmp_check/install install >'$(CURDIR)'/tmp_check/log/install.log 2>&1
344-
cd$(srcdir) && TESTDIR='$(CURDIR)' PATH="$(CURDIR)/tmp_check/install$(bindir):$$PATH"$(call add_to_path,$(ld_library_path_var),$(CURDIR)/tmp_check/install$(libdir)) top_builddir='$(CURDIR)/$(top_builddir)' PGPORT='6$(DEF_PGPORT)'$(PROVE)$(PG_PROVE_FLAGS)$(PROVE_FLAGS) t/*.pl
344+
cd$(srcdir) && TESTDIR='$(CURDIR)' PATH="$(CURDIR)/tmp_check/install$(bindir):$$PATH"$(call add_to_path,$(ld_library_path_var),$(CURDIR)/tmp_check/install$(libdir)) top_builddir='$(CURDIR)/$(top_builddir)' PGPORT='6$(DEF_PGPORT)'PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress'$(PROVE)$(PG_PROVE_FLAGS)$(PROVE_FLAGS) t/*.pl
345345
endef
346346

347347
else

‎src/bin/pg_basebackup/t/010_pg_basebackup.pl

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@
2525
close BADCHARS;
2626
}
2727

28-
open HBA,">>$tempdir/pgdata/pg_hba.conf";
29-
print HBA"local replication all trust\n";
30-
print HBA"host replication all 127.0.0.1/32 trust\n";
31-
print HBA"host replication all ::1/128 trust\n";
32-
close HBA;
28+
configure_hba_for_replication"$tempdir/pgdata";
3329
system_or_bail'pg_ctl','-D',"$tempdir/pgdata",'reload';
3430

3531
command_fails(
@@ -57,54 +53,60 @@
5753
'tar format');
5854
ok(-f"$tempdir/tarbackup/base.tar",'backup tar was created');
5955

60-
# Create a temporary directory in the system location and symlink it
61-
# to our physical temp location. That way we can use shorter names
62-
# for the tablespace directories, which hopefully won't run afoul of
63-
# the 99 character length limit.
64-
my$shorter_tempdir = tempdir_short ."/tempdir";
65-
symlink"$tempdir",$shorter_tempdir;
66-
67-
mkdir"$tempdir/tblspc1";
68-
psql'postgres',"CREATE TABLESPACE tblspc1 LOCATION '$shorter_tempdir/tblspc1';";
69-
psql'postgres',"CREATE TABLE test1 (a int) TABLESPACE tblspc1;";
70-
command_ok(['pg_basebackup','-D',"$tempdir/tarbackup2",'-Ft' ],
71-
'tar format with tablespaces');
72-
ok(-f"$tempdir/tarbackup2/base.tar",'backup tar was created');
73-
my@tblspc_tars =glob"$tempdir/tarbackup2/[0-9]*.tar";
74-
is(scalar(@tblspc_tars), 1,'one tablespace tar was created');
75-
76-
command_fails(
77-
['pg_basebackup','-D',"$tempdir/backup1",'-Fp' ],
78-
'plain format with tablespaces fails without tablespace mapping');
79-
80-
command_ok(
81-
['pg_basebackup','-D',
82-
"$tempdir/backup1",'-Fp',
83-
"-T$shorter_tempdir/tblspc1=$tempdir/tbackup/tblspc1" ],
84-
'plain format with tablespaces succeeds with tablespace mapping');
85-
ok(-d"$tempdir/tbackup/tblspc1",'tablespace was relocated');
86-
opendir(my$dh,"$tempdir/pgdata/pg_tblspc")ordie;
87-
ok( (grep
88-
{
89-
-l"$tempdir/backup1/pg_tblspc/$_"
90-
andreadlink"$tempdir/backup1/pg_tblspc/$_"eq
91-
"$tempdir/tbackup/tblspc1"
92-
}readdir($dh)),
93-
"tablespace symlink was updated");
94-
closedir$dh;
95-
96-
mkdir"$tempdir/tbl=spc2";
97-
psql'postgres',"DROP TABLE test1;";
98-
psql'postgres',"DROP TABLESPACE tblspc1;";
99-
psql'postgres',"CREATE TABLESPACE tblspc2 LOCATION '$shorter_tempdir/tbl=spc2';";
100-
command_ok(
101-
['pg_basebackup','-D',
102-
"$tempdir/backup3",'-Fp',
103-
"-T$shorter_tempdir/tbl\\=spc2=$tempdir/tbackup/tbl\\=spc2" ],
104-
'mapping tablespace with = sign in path');
105-
ok(-d"$tempdir/tbackup/tbl=spc2",'tablespace with = sign was relocated');
106-
107-
psql'postgres',"DROP TABLESPACE tblspc2;";
56+
# The following tests test symlinks. Windows doesn't have symlinks, so
57+
# skip on Windows.
58+
SKIP: {
59+
# Create a temporary directory in the system location and symlink it
60+
# to our physical temp location. That way we can use shorter names
61+
# for the tablespace directories, which hopefully won't run afoul of
62+
# the 99 character length limit.
63+
skip"symlinks not supported on Windows", 9if ($windows_os);
64+
65+
my$shorter_tempdir = tempdir_short ."/tempdir";
66+
symlink"$tempdir",$shorter_tempdir;
67+
68+
mkdir"$tempdir/tblspc1";
69+
psql'postgres',"CREATE TABLESPACE tblspc1 LOCATION '$shorter_tempdir/tblspc1';";
70+
psql'postgres',"CREATE TABLE test1 (a int) TABLESPACE tblspc1;";
71+
command_ok(['pg_basebackup','-D',"$tempdir/tarbackup2",'-Ft' ],
72+
'tar format with tablespaces');
73+
ok(-f"$tempdir/tarbackup2/base.tar",'backup tar was created');
74+
my@tblspc_tars =glob"$tempdir/tarbackup2/[0-9]*.tar";
75+
is(scalar(@tblspc_tars), 1,'one tablespace tar was created');
76+
77+
command_fails(
78+
['pg_basebackup','-D',"$tempdir/backup1",'-Fp' ],
79+
'plain format with tablespaces fails without tablespace mapping');
80+
81+
command_ok(
82+
['pg_basebackup','-D',
83+
"$tempdir/backup1",'-Fp',
84+
"-T$shorter_tempdir/tblspc1=$tempdir/tbackup/tblspc1" ],
85+
'plain format with tablespaces succeeds with tablespace mapping');
86+
ok(-d"$tempdir/tbackup/tblspc1",'tablespace was relocated');
87+
opendir(my$dh,"$tempdir/pgdata/pg_tblspc")ordie;
88+
ok( (grep
89+
{
90+
-l"$tempdir/backup1/pg_tblspc/$_"
91+
andreadlink"$tempdir/backup1/pg_tblspc/$_"eq
92+
"$tempdir/tbackup/tblspc1"
93+
}readdir($dh)),
94+
"tablespace symlink was updated");
95+
closedir$dh;
96+
97+
mkdir"$tempdir/tbl=spc2";
98+
psql'postgres',"DROP TABLE test1;";
99+
psql'postgres',"DROP TABLESPACE tblspc1;";
100+
psql'postgres',"CREATE TABLESPACE tblspc2 LOCATION '$shorter_tempdir/tbl=spc2';";
101+
command_ok(
102+
['pg_basebackup','-D',
103+
"$tempdir/backup3",'-Fp',
104+
"-T$shorter_tempdir/tbl\\=spc2=$tempdir/tbackup/tbl\\=spc2" ],
105+
'mapping tablespace with = sign in path');
106+
ok(-d"$tempdir/tbackup/tbl=spc2",'tablespace with = sign was relocated');
107+
108+
psql'postgres',"DROP TABLESPACE tblspc2;";
109+
}
108110

109111
command_fails(
110112
['pg_basebackup','-D',"$tempdir/backup_foo",'-Fp',"-T=/foo" ],

‎src/bin/pg_ctl/t/001_start_stop.pl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use strict;
22
use warnings;
3+
use Config;
34
use TestLib;
45
use Test::Moretests=> 16;
56

@@ -12,12 +13,20 @@
1213

1314
command_ok(['pg_ctl','initdb','-D',"$tempdir/data" ],'pg_ctl initdb');
1415
command_ok(
15-
["$ENV{top_builddir}/src/test/regress/pg_regress",'--config-auth',
16+
[$ENV{PG_REGRESS},'--config-auth',
1617
"$tempdir/data" ],
1718
'configure authentication');
1819
open CONF,">>$tempdir/data/postgresql.conf";
19-
print CONF"listen_addresses = ''\n";
20-
print CONF"unix_socket_directories = '$tempdir_short'\n";
20+
print CONF"fsync = off\n";
21+
if (!$windows_os)
22+
{
23+
print CONF"listen_addresses = ''\n";
24+
print CONF"unix_socket_directories = '$tempdir_short'\n";
25+
}
26+
else
27+
{
28+
print CONF"listen_addresses = '127.0.0.1'\n";
29+
}
2130
close CONF;
2231
command_ok(['pg_ctl','start','-D',"$tempdir/data",'-w' ],
2332
'pg_ctl start -w');

‎src/bin/pg_ctl/t/002_status.pl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
my$tempdir_short = TestLib::tempdir_short;
88

99
standard_initdb"$tempdir/data";
10-
open CONF,">>$tempdir/data/postgresql.conf";
11-
print CONF"listen_addresses = ''\n";
12-
print CONF"unix_socket_directories = '$tempdir_short'\n";
13-
close CONF;
1410

1511
command_exit_is(['pg_ctl','status','-D',"$tempdir/data" ],
1612
3,'pg_ctl status with server not running');

‎src/test/perl/SimpleTee.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ sub PRINT {
2020
my$ok = 1;
2121
formy$fh (@$self) {
2222
print$fh@_or$ok = 0;
23+
$fh->flushor$ok = 0;
2324
}
2425
return$ok;
2526
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp