From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: fairywren is generating bogus BASE_BACKUP commands |
Date: | 2022-01-25 02:36:09 |
Message-ID: | 20220125023609.5ohu3nslxgoygihl@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2022-01-24 16:47:28 -0500, Andrew Dunstan wrote:
> Give me what you can and I'll see what I can do. I have a couple of
> moderately high priority items on my plate, but I will probably be able
> to fit in some testing when those make my eyes completely glaze over.
Steps:
# install msys from https://www.msys2.org/
# install dependencies in msys shell
pacman -S git bison flex make ucrt64/mingw-w64-ucrt-x86_64-perl ucrt64/mingw-w64-ucrt-x86_64-gcc ucrt64/mingw-w64-ucrt-x86_64-zlib ucrt64/mingw-w64-ucrt-x86_64-ccache diffutils
# start mingw ucrt64 x64 shell
cpan install -T IPC::Run
perl -MIPC::Run -e 1 # verify ipc run is installed
cd /c/dev
# I added --reference postgres to accelerate the cloning
git clone https://git.postgresql.org/git/postgresql.git postgres-mingw
cd /c/dev/postgres-mingw
git revert ed52c3707bcf8858defb0d9de4b55f5c7f18fed7
git revert 6051857fc953a62db318329c4ceec5f9668fd42a
# apply attached patch
# see below why out-of-tree is easier or now
mkdir build
cd build
# path parameters probably not necessary, I thought I needed them earlier, not sure why
../configure --without-readline --cache cache --enable-tap-tests PROVE=/ucrt64/bin/core_perl/prove PERL=/ucrt64/bin/perl.exe CC="ccache gcc"
make -j8 -s world-bin && make -j8 -s -C src/interfaces/ecpg/test
make -j8 -s temp-install
# pg_regress' make_temp_socketdir() otherwise picks up the wrong TMPDIR
mkdir /c/dev/postgres-mingw/build/tmp
# the TAR= ensures that tests pick up a tar accessible with a windows path
# PG_TEST_USE_UNIX_SOCKETS=1 is required for test concurrency, otherwise there are port conflicts
(make -Otarget -j12 check-world NO_TEMP_INSTALL=1 PG_TEST_USE_UNIX_SOCKETS=1 TMPDIR=C:/dev/postgres-mingw/tmp TAR="C:\Windows\System32\tar.exe" 2>&1 && echo test-world-success || echo test-world-fail) 2>&1 |tee test-world.log
To make tests in "in-tree" builds work, a bit more hackery would be
needed. The problem is that windows chooses binaries from the current working
directory *before* PATH. That's a problem for things like initdb.exe or
pg_ctl.exe that want to find postgres.exe, as that only works with the program
in their proper location, rather than CWD.
Greetings,
Andres Freund
Attachment | Content-Type | Size |
---|---|---|
mingw-wip-minimal.diff | text/x-diff | 1.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-01-25 02:50:12 | Re: Why is src/test/modules/committs/t/002_standby.pl flaky? |
Previous Message | Thomas Munro | 2022-01-25 02:28:45 | Re: Why is src/test/modules/committs/t/002_standby.pl flaky? |