Re: CI and test improvements - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: CI and test improvements
Date
Msg-id 20230117173509.GV9837@telsasoft.com
Whole thread Raw
In response to Re: CI and test improvements  (Justin Pryzby <pryzby@telsasoft.com>)
Responses Re: CI and test improvements
Re: CI and test improvements
List pgsql-hackers
The autoconf system runs all tap tests in t/*.pl, but meson requires
enumerating them in ./meson.build.

This checks for and finds no missing tests in the current tree:

$ for pl in `find src contrib -path '*/t/*.pl'`; do base=${pl##*/}; dir=${pl%/*}; meson=${dir%/*}/meson.build; grep
"$base""$meson" >/dev/null || echo "$base is missing from $meson"; done
 

However, this finds two real problems and one false-positive with
missing regress/isolation tests:

$ for makefile in `find src contrib -name Makefile`; do for testname in `sed -r '/^(REGRESS|ISOLATION) =/!d; s///; :l;
/\\\\$/{s///;N; b l}; s/\n//g' "$makefile"`; do meson=${makefile%/Makefile}/meson.build; grep -Fw "$testname" "$meson"
>/dev/null|| echo "$testname is missing from $meson"; done; done
 
guc_privs is missing from src/test/modules/unsafe_tests/meson.build
oldextversions is missing from contrib/pg_stat_statements/meson.build
$(CF_PGP_TESTS) is missing from contrib/pgcrypto/meson.build

I also tried but failed to write something to warn if "meson test" was
run with a list of tests but without tmp_install.  Help wanted.

I propose to put something like this into "SanityCheck".

-- 
Justin



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?
Next
From: Tomas Vondra
Date:
Subject: Re: Sampling-based timing for EXPLAIN ANALYZE