CMake check for necessary testing tools

Adding checks for `pg_isolation_regress` and `pg_regress` and not
running the tests if the programs cannot be found either installed in
default directories or provided with the `PG_PATH` variable, or the
`PG_SOURCE_DIR` variable.
This commit is contained in:
Mats Kindahl 2019-06-27 18:21:42 +02:00 committed by Mats Kindahl
parent 2768c5db3f
commit d1f8f9d326
9 changed files with 183 additions and 142 deletions

View File

@ -280,6 +280,7 @@ endif ()
option(USE_OPENSSL "Enable use of OpenSSL if available" ON)
option(SEND_TELEMETRY_DEFAULT "The default value for whether to send telemetry" ON)
option(REGRESS_CHECKS "PostgreSQL regress checks through installcheck" ON)
# Check if PostgreSQL has OpenSSL enabled by inspecting pg_config --configure.
# Right now, a Postgres header will redefine an OpenSSL function if Postgres is not installed --with-openssl,

View File

@ -95,7 +95,7 @@ build_script:
# build timescale
.\bootstrap -DUSE_OPENSSL=0 -DPG_PATH="C:\Program Files\PostgreSQL\10" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CONFIGURATION_TYPES=Debug -DCMAKE_C_FLAGS=/MP
.\bootstrap -DUSE_OPENSSL=0 -DPG_PATH="C:\Program Files\PostgreSQL\10" -DREGRESS_CHECKS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CONFIGURATION_TYPES=Debug -DCMAKE_C_FLAGS=/MP
cmake --build ./build --config Debug
@ -134,7 +134,7 @@ build_script:
docker exec -it pgregress /bin/bash -c "git clone --depth 1 https://github.com/timescale/timescaledb.git /timescaledb && cd /timescaledb && git fetch -q origin $commit && git checkout -qf FETCH_HEAD"
docker exec -it pgregress /bin/bash -c "cd /timescaledb && ./bootstrap -DCMAKE_BUILD_TYPE=Debug -DPG_REGRESS=/usr/local/bin/pg_regress -DTEST_PGHOST=docker.for.win.localhost"
docker exec -it pgregress /bin/bash -c "cd /timescaledb && ./bootstrap -DCMAKE_BUILD_TYPE=Debug -DREGRESS_CHECKS=OFF -DPG_REGRESS=/usr/local/bin/pg_regress -DTEST_PGHOST=docker.for.win.localhost"
test_script:
- ps: >-

View File

@ -76,7 +76,7 @@ build_timescaledb()
run_postgres_build_image ${PG_IMAGE}
# Build and install the extension with debug symbols and assertions
docker exec -u root -it ${BUILD_CONTAINER_NAME} /bin/bash -c "cp -a /src/{src,sql,test,scripts,tsl,version.config,CMakeLists.txt,timescaledb.control.in} /build/ && cd build/debug && cmake -DUSE_OPENSSL=${USE_OPENSSL} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. && make && make install && echo \"shared_preload_libraries = 'timescaledb'\" >> /usr/local/share/postgresql/postgresql.conf.sample && echo \"timescaledb.telemetry_level=off\" >> /usr/local/share/postgresql/postgresql.conf.sample && cd / && rm -rf /build"
docker exec -u root -it ${BUILD_CONTAINER_NAME} /bin/bash -c "cp -a /src/{src,sql,test,scripts,tsl,version.config,CMakeLists.txt,timescaledb.control.in} /build/ && cd build/debug && cmake -DUSE_OPENSSL=${USE_OPENSSL} -DREGRESS_CHECKS=OFF -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. && make && make install && echo \"shared_preload_libraries = 'timescaledb'\" >> /usr/local/share/postgresql/postgresql.conf.sample && echo \"timescaledb.telemetry_level=off\" >> /usr/local/share/postgresql/postgresql.conf.sample && cd / && rm -rf /build"
docker commit -a $USER -m "TimescaleDB development image" ${BUILD_CONTAINER_NAME} ${TS_IMAGE}
}

View File

@ -37,7 +37,7 @@ create_base_container() {
docker exec -u root -it $1 /bin/bash -c "apk add --no-cache --virtual .build-deps coreutils dpkg-dev gcc libc-dev make util-linux-dev diffutils cmake bison flex openssl-dev && mkdir -p /build/debug"
# Copy the source files to build directory
docker exec -u root -it $1 /bin/bash -c "cp -a /src/{src,sql,scripts,test,tsl,CMakeLists.txt,timescaledb.control.in,version.config} /build/ && cd /build/debug/ && CFLAGS=-Werror cmake .. -DCMAKE_BUILD_TYPE=Debug && make -C /build/debug install && chown -R postgres /build"
docker exec -u root -it $1 /bin/bash -c "cp -a /src/{src,sql,scripts,test,tsl,CMakeLists.txt,timescaledb.control.in,version.config} /build/ && cd /build/debug/ && CFLAGS=-Werror cmake .. -DCMAKE_BUILD_TYPE=Debug -DREGRESS_CHECKS=OFF && make -C /build/debug install && chown -R postgres /build"
}
create_base_container $CONTAINER_NAME_COMPILE $PG_IMAGE_TAG_COMPILE

View File

@ -1,77 +1,103 @@
set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR})
set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR} PARENT_SCOPE)
set(_local_install_checks)
set(_install_checks)
# Testing support
find_program(PG_REGRESS pg_regress
HINTS
"${PG_PKGLIBDIR}/pgxs/src/test/regress/")
message(STATUS "Using pg_regress ${PG_REGRESS}")
find_program(PG_ISOLATION_REGRESS pg_isolation_regress
find_program(PG_ISOLATION_REGRESS
NAMES pg_isolation_regress
HINTS
${BINDIR}/
${PG_PKGLIBDIR}/pgxs/src/test/isolation/
${BINDIR}
${PG_PKGLIBDIR}/pgxs/src/test/isolation
${PG_SOURCE_DIR}/src/test/isolation)
message(STATUS "Using pg_isolation_regress ${PG_ISOLATION_REGRESS}")
set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR})
set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR} PARENT_SCOPE)
include(test-defs.cmake)
# installcheck starts up new temporary instances for testing code
if(NOT APACHE_ONLY)
add_custom_target(installcheck
DEPENDS regresscheck isolationcheck installcheck-t)
if(PG_REGRESS)
message(STATUS "Using pg_regress ${PG_REGRESS}")
add_custom_target(regresscheck
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
add_custom_target(regresschecklocal
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
list(APPEND _local_install_checks regresschecklocal)
list(APPEND _install_checks regresscheck)
elseif(REGRESS_CHECKS)
message(FATAL_ERROR
"Program 'pg_regress' not found, but regressions checks were required.\n"
"Skip regression checks using -DREGRESS_CHECKS=OFF")
else()
add_custom_target(installcheck
DEPENDS regresscheck isolationcheck)
message(STATUS "Skipping isolation regress checks since program 'pg_regress' was not found")
endif()
add_custom_target(regresscheck
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
if(PG_ISOLATION_REGRESS)
message(STATUS "Using pg_isolation_regress ${PG_ISOLATION_REGRESS}")
add_custom_target(isolationcheck
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs
${CMAKE_CURRENT_SOURCE_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
add_custom_target(isolationcheck
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs
${CMAKE_CURRENT_SOURCE_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
add_custom_target(isolationchecklocal
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs
${CMAKE_CURRENT_SOURCE_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
list(APPEND _local_install_checks isolationchecklocal)
list(APPEND _install_checks isolationcheck)
elseif(REGRESS_CHECKS)
message(FATAL_ERROR
"Program 'pg_isolation_regress' not found, but regressions checks were required.\n"
"Skip regression checks using -DREGRESS_CHECKS=OFF")
else()
message(STATUS "Skipping isolation regress checks since program 'pg_isolation_regress' was not found")
endif()
# installcheck starts up new temporary instances for testing code
if(NOT APACHE_ONLY)
list(APPEND _install_checks installcheck-t)
endif()
if(_install_checks)
add_custom_target(installcheck DEPENDS ${_install_checks})
endif()
# installchecklocal tests against an existing postgres instance
add_custom_target(installchecklocal
DEPENDS regresschecklocal isolationchecklocal)
add_custom_target(regresschecklocal
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
add_custom_target(isolationchecklocal
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs
${CMAKE_CURRENT_SOURCE_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
if(_local_install_checks)
add_custom_target(installchecklocal DEPENDS ${_local_install_checks})
endif()
add_subdirectory(sql)
add_subdirectory(isolation)

View File

@ -79,12 +79,12 @@ SELECT _timescaledb_internal.test_install_timestamp() = :'timestamp_1' as timest
-- Now make sure that only the exported_uuid is exported on pg_dump
\c postgres :ROLE_SUPERUSER
\! pg_dump -h ${TEST_PGHOST} -U super_user -Fc "${TEST_DBNAME}" > dump/instmeta.sql
\! dropdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! createdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! ${PG_BINDIR}/pg_dump -h ${TEST_PGHOST} -U super_user -Fc "${TEST_DBNAME}" > dump/instmeta.sql
\! ${PG_BINDIR}/dropdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! ${PG_BINDIR}/createdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
ALTER DATABASE :TEST_DBNAME SET timescaledb.restoring='on';
-- Redirect to /dev/null to suppress NOTICE
\! pg_restore -h ${TEST_PGHOST} -U super_user -d "${TEST_DBNAME}" dump/instmeta.sql > /dev/null 2>&1
\! ${PG_BINDIR}/pg_restore -h ${TEST_PGHOST} -U super_user -d "${TEST_DBNAME}" dump/instmeta.sql > /dev/null 2>&1
ALTER DATABASE :TEST_DBNAME SET timescaledb.restoring='off';
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER
-- Should have all 3 row, because pg_dump includes the insertion of uuid and timestamp.

View File

@ -36,12 +36,12 @@ SELECT _timescaledb_internal.test_install_timestamp() = :'timestamp_1' as timest
-- Now make sure that only the exported_uuid is exported on pg_dump
\c postgres :ROLE_SUPERUSER
\! pg_dump -h ${TEST_PGHOST} -U super_user -Fc "${TEST_DBNAME}" > dump/instmeta.sql
\! dropdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! createdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! ${PG_BINDIR}/pg_dump -h ${TEST_PGHOST} -U super_user -Fc "${TEST_DBNAME}" > dump/instmeta.sql
\! ${PG_BINDIR}/dropdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
\! ${PG_BINDIR}/createdb -h ${TEST_PGHOST} -U super_user "${TEST_DBNAME}"
ALTER DATABASE :TEST_DBNAME SET timescaledb.restoring='on';
-- Redirect to /dev/null to suppress NOTICE
\! pg_restore -h ${TEST_PGHOST} -U super_user -d "${TEST_DBNAME}" dump/instmeta.sql > /dev/null 2>&1
\! ${PG_BINDIR}/pg_restore -h ${TEST_PGHOST} -U super_user -d "${TEST_DBNAME}" dump/instmeta.sql > /dev/null 2>&1
ALTER DATABASE :TEST_DBNAME SET timescaledb.restoring='off';
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER

View File

@ -1,4 +1,3 @@
set(TEST_ROLE_SUPERUSER super_user)
set(TEST_ROLE_DEFAULT_PERM_USER default_perm_user)
set(TEST_ROLE_DEFAULT_PERM_USER_2 default_perm_user_2)
@ -54,26 +53,30 @@ set(PG_REGRESS_OPTS_TEMP_INSTANCE_PGTEST
set(PG_REGRESS_OPTS_LOCAL_INSTANCE
--port=${TEST_PGPORT_LOCAL})
set(PG_REGRESS_ENV
TEST_PGUSER=${TEST_PGUSER}
TEST_PGHOST=${TEST_PGHOST}
TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER}
TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER}
TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2}
TEST_DBNAME=${TEST_DBNAME}
TEST_INPUT_DIR=${TEST_INPUT_DIR}
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
TEST_SCHEDULE=${TEST_SCHEDULE}
PG_BINDIR=${PG_BINDIR}
PG_REGRESS=${PG_REGRESS})
if(PG_REGRESS)
set(PG_REGRESS_ENV
TEST_PGUSER=${TEST_PGUSER}
TEST_PGHOST=${TEST_PGHOST}
TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER}
TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER}
TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2}
TEST_DBNAME=${TEST_DBNAME}
TEST_INPUT_DIR=${TEST_INPUT_DIR}
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
TEST_SCHEDULE=${TEST_SCHEDULE}
PG_BINDIR=${PG_BINDIR}
PG_REGRESS=${PG_REGRESS})
endif()
set(PG_ISOLATION_REGRESS_ENV
TEST_PGUSER=${TEST_PGUSER}
TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER}
TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER}
TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2}
TEST_DBNAME=${TEST_DBNAME}
TEST_INPUT_DIR=${TEST_INPUT_DIR}
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
ISOLATION_TEST_SCHEDULE=${ISOLATION_TEST_SCHEDULE}
PG_ISOLATION_REGRESS=${PG_ISOLATION_REGRESS})
if(PG_ISOLATION_REGRESS)
set(PG_ISOLATION_REGRESS_ENV
TEST_PGUSER=${TEST_PGUSER}
TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER}
TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER}
TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2}
TEST_DBNAME=${TEST_DBNAME}
TEST_INPUT_DIR=${TEST_INPUT_DIR}
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
ISOLATION_TEST_SCHEDULE=${ISOLATION_TEST_SCHEDULE}
PG_ISOLATION_REGRESS=${PG_ISOLATION_REGRESS})
endif()

View File

@ -1,58 +1,69 @@
include("${PRIMARY_TEST_DIR}/test-defs.cmake")
add_custom_target(installcheck-t
DEPENDS regresscheck-t isolationcheck-t)
#TODO after we have isolation checks isolationcheck-t)
#TODO after we have isolation checks isolationcheck-t)
add_custom_target(regresscheck-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
${PRIMARY_TEST_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
set(_local_install_checks)
set(_install_checks)
add_custom_target(isolationcheck-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs
${PRIMARY_TEST_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
if(PG_REGRESS)
add_custom_target(regresscheck-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
${PRIMARY_TEST_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
add_custom_target(regresschecklocal-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
${PRIMARY_TEST_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
list(APPEND _local_install_checks regresschecklocal-t)
list(APPEND _install_checks regresscheck-t)
endif()
if(PG_ISOLATION_REGRESS)
add_custom_target(isolationcheck-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs
${PRIMARY_TEST_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
add_custom_target(isolationchecklocal-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs
${PRIMARY_TEST_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
list(APPEND _local_install_checks isolationchecklocal-t)
list(APPEND _install_checks isolationcheck-t)
endif()
# installchecklocal tests against an existing postgres instance
add_custom_target(installchecklocal-t
DEPENDS regresschecklocal isolationchecklocal)
add_custom_target(regresschecklocal-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
${PRIMARY_TEST_DIR}/pg_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_REGRESS_OPTS_EXTRA}
${PG_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
add_custom_target(isolationchecklocal-t
COMMAND ${CMAKE_COMMAND} -E env
${PG_ISOLATION_REGRESS_ENV}
EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs
${PRIMARY_TEST_DIR}/pg_isolation_regress.sh
${PG_REGRESS_OPTS_BASE}
${PG_ISOLATION_REGRESS_OPTS_EXTRA}
${PG_ISOLATION_REGRESS_OPTS_INOUT}
${PG_REGRESS_OPTS_LOCAL_INSTANCE}
USES_TERMINAL)
add_custom_target(installchecklocal-t DEPENDS ${_local_install_checks})
add_custom_target(installcheck-t DEPENDS ${_install_checks})
add_subdirectory(sql)
add_subdirectory(isolation)