Rewriting the test of pg_upgrade as a TAP test - take three - remastered set
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-15T02:26:22Z
Lists: pgsql-hackers
Attachments
- 0001-Switch-tests-of-pg_upgrade-to-use-TAP.patch (text/x-diff) patch 0001
Hi, (Adding Andrew in CC for the buildfarm and PostgresNode parts.) $subject has been around for a couple of years now, with the following threads: https://www.postgresql.org/message-id/20180126080026.GI17847@paquier.xyz https://www.postgresql.org/message-id/CAB7nPqRdaN1A1YNjxNL9T1jUEWct8ttqq29dNv8W_o37+e8wfA@mail.gmail.com An advantage of moving to TAP is that we can then remove the support for upgrades within the MSVC scripts, and also remove pg_upgrade's test.sh that has accumulated tweaks that are solved by the TAP tests, resulting in cleanup: 8 files changed, 230 insertions(+), 403 deletions(-) Based on the past discussions, there were two obstacles preventing to do this switch: - Support for tests with older versions, something where the gap as been closed thanks to Andrew's work in 4c4eaf3d. - Buildfarm support, and I am not sure how things need to be extended there. Another thing to note is that HEAD uses oldbindir, bindir and libdir to track the location of the old and new libraries and binaries. With the infrastructure in place, once can define only an install path for a PostgresNode, so this version uses only two variables: - oldinstall, for the installation path of the version to upgrade from. - oldsrc, to point to the source of the old version. It is not difficult to switch to one approach or the other, but reducing the logic to a minimum number of variables is a good deal to take IMO. I have been testing this patch a bit with older versions, down to 12, and that was logically working, and PostgresNode may need more to be able to work with ~11, as documented in get_new_node(). And I have not tested that with MSVC yet. Anyway, attached is a new patch to make the discussion move on. Even if there is still work to be done here, would people here still support this switch? Thanks, -- Michael
Commits
-
Improve and fix some issues in the TAP tests of pg_upgrade
- eaa5ebe046c4 15.0 landed
-
Fix several issues with the TAP tests of pg_upgrade
- 7dd3ee508432 15.0 landed
-
Make upgradecheck a no-op in MSVC's vcregress.pl
- d2a2ce4184b0 15.0 landed
-
Switch the regression tests of pg_upgrade to use TAP tests
- 322becb6085c 15.0 landed
-
Fix check for PGHOST[ADDR] in pg_upgrade with Windows and temporary paths
- dc57366c5836 15.0 landed
-
Remove REGRESS_OUTPUTDIR environment variable.
- 7e6124ca7d81 15.0 landed
-
Add PostgreSQL::Test::Cluster::config_data()
- ba15f16107be 15.0 landed