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

Commit422584c

Browse files
committed
In the pg_upgrade test suite, don't write to src/test/regress.
When this suite runs installcheck, redirect file creations fromsrc/test/regress to src/bin/pg_upgrade/tmp_check/regress. This closes arace condition in "make -j check-world". If the pg_upgrade suite wroteto a given src/test/regress/results file in parallel with the regularsrc/test/regress invocation writing it, a test failed spuriously. Evenwithout parallelism, in "make -k check-world", the suite finishingsecond overwrote the other's regression.diffs. This revealed test"largeobject" assuming @abs_builddir@ is getcwd(), so fix that, too.Buildfarm client REL_10, released forty-five days ago, supports savingregression.diffs from its new location. When an older client reports apg_upgradeCheck failure, it will no longer include regression.diffs.Back-patch to 9.5, where pg_upgrade moved to src/bin.Reviewed by Andrew Dunstan.Discussion:https://postgr.es/m/20181224034411.GA3224776@rfd.leadboat.com
1 parent0459596 commit422584c

File tree

5 files changed

+38
-10
lines changed

5 files changed

+38
-10
lines changed

‎src/bin/pg_upgrade/test.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,18 @@ PGDATA="$BASE_PGDATA.old"
108108
export PGDATA
109109
rm -rf"$BASE_PGDATA""$PGDATA"
110110

111+
# Send installcheck outputs to a private directory. This avoids conflict when
112+
# check-world runs pg_upgrade check concurrently with src/test/regress check.
113+
# To retrieve interesting files after a run, use pattern tmp_check/*/*.diffs.
114+
outputdir="$temp_root/regress"
115+
EXTRA_REGRESS_OPTS="$EXTRA_REGRESS_OPTS --outputdir=$outputdir"
116+
export EXTRA_REGRESS_OPTS
117+
rm -rf"$outputdir"
118+
mkdir"$outputdir"
119+
mkdir"$outputdir"/sql
120+
mkdir"$outputdir"/expected
121+
mkdir"$outputdir"/testtablespace
122+
111123
logdir=`pwd`/log
112124
rm -rf"$logdir"
113125
mkdir"$logdir"

‎src/test/regress/input/largeobject.source

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,12 @@ END;
203203

204204
SELECT lo_export(loid, '@abs_builddir@/results/lotest.txt') FROM lotest_stash_values;
205205

206-
\lo_import 'results/lotest.txt'
206+
\lo_import '@abs_builddir@/results/lotest.txt'
207207

208208
\set newloid :LASTOID
209209

210210
-- just make sure \lo_export does not barf
211-
\lo_export :newloid 'results/lotest2.txt'
211+
\lo_export :newloid '@abs_builddir@/results/lotest2.txt'
212212

213213
-- This is a hack to test that export/import are reversible
214214
-- This uses knowledge about the inner workings of large object mechanism
@@ -223,7 +223,7 @@ TRUNCATE lotest_stash_values;
223223

224224
\lo_unlink :newloid
225225

226-
\lo_import 'results/lotest.txt'
226+
\lo_import '@abs_builddir@/results/lotest.txt'
227227

228228
\set newloid_1 :LASTOID
229229

‎src/test/regress/output/largeobject.source

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,10 +385,10 @@ SELECT lo_export(loid, '@abs_builddir@/results/lotest.txt') FROM lotest_stash_va
385385
1
386386
(1 row)
387387

388-
\lo_import 'results/lotest.txt'
388+
\lo_import '@abs_builddir@/results/lotest.txt'
389389
\set newloid :LASTOID
390390
-- just make sure \lo_export does not barf
391-
\lo_export :newloid 'results/lotest2.txt'
391+
\lo_export :newloid '@abs_builddir@/results/lotest2.txt'
392392
-- This is a hack to test that export/import are reversible
393393
-- This uses knowledge about the inner workings of large object mechanism
394394
-- which should not be used outside it. This makes it a HACK
@@ -407,7 +407,7 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
407407

408408
TRUNCATE lotest_stash_values;
409409
\lo_unlink :newloid
410-
\lo_import 'results/lotest.txt'
410+
\lo_import '@abs_builddir@/results/lotest.txt'
411411
\set newloid_1 :LASTOID
412412
SELECT lo_from_bytea(0, lo_get(:newloid_1)) AS newloid_2
413413
\gset

‎src/test/regress/output/largeobject_1.source

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,10 +385,10 @@ SELECT lo_export(loid, '@abs_builddir@/results/lotest.txt') FROM lotest_stash_va
385385
1
386386
(1 row)
387387

388-
\lo_import 'results/lotest.txt'
388+
\lo_import '@abs_builddir@/results/lotest.txt'
389389
\set newloid :LASTOID
390390
-- just make sure \lo_export does not barf
391-
\lo_export :newloid 'results/lotest2.txt'
391+
\lo_export :newloid '@abs_builddir@/results/lotest2.txt'
392392
-- This is a hack to test that export/import are reversible
393393
-- This uses knowledge about the inner workings of large object mechanism
394394
-- which should not be used outside it. This makes it a HACK
@@ -407,7 +407,7 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
407407

408408
TRUNCATE lotest_stash_values;
409409
\lo_unlink :newloid
410-
\lo_import 'results/lotest.txt'
410+
\lo_import '@abs_builddir@/results/lotest.txt'
411411
\set newloid_1 :LASTOID
412412
SELECT lo_from_bytea(0, lo_get(:newloid_1)) AS newloid_2
413413
\gset

‎src/tools/msvc/vcregress.pl

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@
101101
subinstallcheck
102102
{
103103
my$schedule =shift ||'serial';
104+
installcheck_internal$schedule;
105+
return;
106+
}
107+
108+
subinstallcheck_internal
109+
{
110+
my ($schedule,@EXTRA_REGRESS_OPTS) =@_;
104111
my@args = (
105112
"../../../$Config/pg_regress/pg_regress",
106113
"--dlpath=.",
@@ -109,6 +116,7 @@ sub installcheck
109116
"--encoding=SQL_ASCII",
110117
"--no-locale");
111118
push(@args,$maxconn)if$maxconn;
119+
push(@args,@EXTRA_REGRESS_OPTS);
112120
system(@args);
113121
my$status =$? >> 8;
114122
exit$statusif$status;
@@ -513,6 +521,14 @@ sub upgradecheck
513521
$ENV{PATH} ="$bindir;$ENV{PATH}";
514522
my$data ="$tmp_root/data";
515523
$ENV{PGDATA} ="$data.old";
524+
my$outputdir ="$tmp_root/regress";
525+
my@EXTRA_REGRESS_OPTS = ("--outputdir=$outputdir");
526+
rmtree("$outputdir");
527+
mkdir"$outputdir" ||die$!;
528+
mkdir"$outputdir/sql" ||die$!;
529+
mkdir"$outputdir/expected" ||die$!;
530+
mkdir"$outputdir/testtablespace" ||die$!;
531+
516532
my$logdir ="$topdir/src/bin/pg_upgrade/log";
517533
(mkdir$logdir ||die$!)unless-d$logdir;
518534
print"\nRunning initdb on old cluster\n\n";
@@ -527,7 +543,7 @@ sub upgradecheck
527543
generate_db('', 91, 127,'');
528544

529545
print"\nSetting up data for upgrading\n\n";
530-
installcheck();
546+
installcheck_internal('serial',@EXTRA_REGRESS_OPTS);
531547

532548
# now we can chdir into the source dir
533549
chdir"$topdir/src/bin/pg_upgrade";

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp