Move regression.diffs of pg_upgrade test suite
От | Noah Misch |
---|---|
Тема | Move regression.diffs of pg_upgrade test suite |
Дата | |
Msg-id | 20181224034411.GA3224776@rfd.leadboat.com обсуждение исходный текст |
Ответы |
Re: Move regression.diffs of pg_upgrade test suite
|
Список | pgsql-hackers |
src/bin/pg_upgrade/test.sh runs installcheck, which writes to files in src/test/regress. This has at least two disadvantages when check-world runs both this test suite and the "make check" suite: 1. The suite finishing second will overwrite the other's regression.{out,diffs}. 2. If these suites run a given test file in parallel (possible with "make -j check-world"), they simultaneously edit a file in src/test/regress/results. This can cause reporting of spurious failures. On my system, the symptom is a regression.diffs indicating that the .out file contained ranges of NUL bytes (holes) and/or lacked expected lines. A disadvantage of any change here is that it degrades buildfarm reports, which recover slowly as owners upgrade to a fixed buildfarm release. This will be similar to the introduction of --outputdir=output_iso. On non-upgraded animals, pg_upgradeCheck failures will omit regression.diffs. I think the right fix, attached, is to use "pg_regress --outputdir" to redirect these files to src/bin/pg_upgrade/tmp_check/regress. I chose that particular path because it will still fit naturally if we ever rewrite test.sh using src/test/perl. I'm recommending that the buildfarm capture[1] files matching src/bin/pg_upgrade/tmp_check/*/*.diffs, which will work even if we make this test suite run installcheck more than once. This revealed a few places where tests assume @abs_builddir@ is getcwd(), which I fixed. Thanks, nm [1] https://github.com/PGBuildFarm/client-code/blob/REL_9/PGBuild/Modules/TestUpgrade.pm#L126
Вложения
В списке pgsql-hackers по дате отправления: