mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-16 04:17:25 +00:00
postgresql: add ptest support
Add ptest infrastructure to run the PostgreSQL standard regression test suite (pg_regress) on the target system. Test logs: root@qemux86-64:~# ptest-runner postgresql START: ptest-runner 2026-03-24T02:42 BEGIN: /usr/lib64/postgresql/ptest ..... **if all pass ** PASS: - event_trigger_login 1901 ms PASS: - fast_default 9459 ms PASS: - tablespace 16542 ms PASS: all tests passed **if have fail** FAIL: create_type 1763 ms PASS: create_schema 2123 ms PASS: - tablespace 23226 ms FAIL: some tests failed waiting for server to shut down.... done server stopped DURATION: 853 END: /usr/lib64/postgresql/ptest 2026-03-24T02:56 STOP: ptest-runner TOTAL: 1 FAIL: 0 Signed-off-by: Guocai He <guocai.he.cn@windriver.com> Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
@@ -29,6 +29,7 @@ SRC_URI = "https://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
|
||||
file://postgresql.pam \
|
||||
file://postgresql-setup \
|
||||
file://postgresql.service \
|
||||
file://run-ptest \
|
||||
"
|
||||
|
||||
LEAD_SONAME = "libpq.so"
|
||||
@@ -37,7 +38,7 @@ LEAD_SONAME = "libpq.so"
|
||||
export LDFLAGS_SL = "${LDFLAGS}"
|
||||
export LDFLAGS_EX_BE = "-Wl,--export-dynamic"
|
||||
|
||||
inherit autotools pkgconfig perlnative python3native python3targetconfig useradd update-rc.d systemd gettext perl-version multilib_header
|
||||
inherit autotools pkgconfig perlnative python3native python3targetconfig useradd update-rc.d systemd gettext perl-version multilib_header ptest
|
||||
|
||||
CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR}"
|
||||
|
||||
@@ -184,6 +185,45 @@ do_compile:append() {
|
||||
done
|
||||
}
|
||||
|
||||
do_compile_ptest() {
|
||||
oe_runmake -C src/test/regress all
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
mkdir -p ${D}${PTEST_PATH}/test
|
||||
|
||||
# Install pg_regress binary
|
||||
install -m 0755 ${B}/src/test/regress/pg_regress ${D}${PTEST_PATH}/test/
|
||||
|
||||
# Install test schedules and resultmap
|
||||
for f in parallel_schedule serial_schedule resultmap; do
|
||||
[ -f ${S}/src/test/regress/$f ] && install -m 0644 ${S}/src/test/regress/$f ${D}${PTEST_PATH}/test/
|
||||
done
|
||||
|
||||
# Install SQL, expected, input, output, and data files
|
||||
for d in sql expected input output data; do
|
||||
if [ -d ${S}/src/test/regress/$d ]; then
|
||||
cp -r ${S}/src/test/regress/$d ${D}${PTEST_PATH}/test/
|
||||
fi
|
||||
done
|
||||
|
||||
# Install the regress test shared library into the standard PostgreSQL
|
||||
# package library directory (PKGLIBDIR) alongside contrib modules such
|
||||
# as autoinc.so and refint.so. This allows pg_regress --dlpath to
|
||||
# resolve all required shared libraries from a single location.
|
||||
install -d ${D}${libdir}/${BPN}
|
||||
install -m 0755 ${B}/src/test/regress/regress.so ${D}${libdir}/${BPN}/
|
||||
|
||||
# Install run-ptest
|
||||
install -m 0755 ${UNPACKDIR}/run-ptest ${D}${PTEST_PATH}/
|
||||
|
||||
# Set ownership to postgres user for running tests
|
||||
chown -R postgres:postgres ${D}${PTEST_PATH}
|
||||
}
|
||||
|
||||
RDEPENDS:${PN}-ptest += "${PN}-client ${PN}-contrib perl"
|
||||
FILES:${PN}-ptest += "${libdir}/${BPN}/regress.so"
|
||||
|
||||
# server needs to configure user and group
|
||||
usernum = "28"
|
||||
groupnum = "28"
|
||||
|
||||
Reference in New Issue
Block a user