mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-14 17:43:34 +08:00
160 lines
5.8 KiB
CMake
160 lines
5.8 KiB
CMake
set(TEST_ROLE_SUPERUSER super_user)
|
|
set(TEST_ROLE_CLUSTER_SUPERUSER cluster_super_user)
|
|
set(TEST_ROLE_DEFAULT_PERM_USER default_perm_user)
|
|
set(TEST_ROLE_DEFAULT_PERM_USER_2 default_perm_user_2)
|
|
|
|
set(TEST_ROLE_1 test_role_1)
|
|
set(TEST_ROLE_2 test_role_2)
|
|
set(TEST_ROLE_3 test_role_3)
|
|
set(TEST_ROLE_4 test_role_4)
|
|
set(TEST_ROLE_READ_ONLY test_role_read_only)
|
|
|
|
# TEST_ROLE_2 has password in passfile
|
|
set(TEST_ROLE_2_PASS pass)
|
|
# TEST_ROLE_3 does not have password in passfile
|
|
set(TEST_ROLE_3_PASS pass)
|
|
# TEST_ROLE_4 does not have password in passfile
|
|
set(TEST_ROLE_4_PASS pass)
|
|
|
|
set(TEST_INPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
|
set(TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
set(TEST_CLUSTER ${TEST_OUTPUT_DIR}/testcluster)
|
|
|
|
# Basic connection info for test instance
|
|
set(TEST_PGPORT_LOCAL
|
|
5432
|
|
CACHE STRING "The port of a running PostgreSQL instance")
|
|
set(TEST_PGHOST
|
|
localhost
|
|
CACHE STRING "The hostname of a running PostgreSQL instance")
|
|
set(TEST_PGUSER
|
|
${TEST_ROLE_DEFAULT_PERM_USER}
|
|
CACHE STRING "The PostgreSQL test user")
|
|
set(TEST_DBNAME
|
|
single
|
|
CACHE STRING "The database name to use for tests")
|
|
set(TEST_PGPORT_TEMP_INSTANCE
|
|
55432
|
|
CACHE STRING "The port to run a temporary test PostgreSQL instance on")
|
|
set(TEST_SCHEDULE ${CMAKE_CURRENT_BINARY_DIR}/test_schedule)
|
|
set(TEST_SCHEDULE_SHARED
|
|
${CMAKE_CURRENT_BINARY_DIR}/shared/test_schedule_shared)
|
|
set(ISOLATION_TEST_SCHEDULE ${CMAKE_CURRENT_BINARY_DIR}/isolation_test_schedule)
|
|
set(TEST_PASSFILE ${TEST_OUTPUT_DIR}/pgpass.conf)
|
|
|
|
# Windows does not support local connections (unix domain sockets)
|
|
if(WIN32)
|
|
set(TEST_HBA_LOCAL "#local")
|
|
else()
|
|
set(TEST_HBA_LOCAL "local")
|
|
endif()
|
|
|
|
configure_file(${PRIMARY_TEST_DIR}/pg_hba.conf.in pg_hba.conf)
|
|
set(TEST_PG_HBA_FILE ${TEST_OUTPUT_DIR}/pg_hba.conf)
|
|
|
|
if(USE_TELEMETRY)
|
|
set(TELEMETRY_DEFAULT_SETTING "timescaledb.telemetry_level=off")
|
|
else()
|
|
set(TELEMETRY_DEFAULT_SETTING)
|
|
endif()
|
|
configure_file(postgresql.conf.in postgresql.conf)
|
|
configure_file(${PRIMARY_TEST_DIR}/pgtest.conf.in pgtest.conf)
|
|
|
|
# pgpass file requires chmod 0600
|
|
configure_file(${PRIMARY_TEST_DIR}/pgpass.conf.in
|
|
${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf)
|
|
file(
|
|
COPY ${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf
|
|
DESTINATION ${TEST_OUTPUT_DIR}
|
|
NO_SOURCE_PERMISSIONS
|
|
FILE_PERMISSIONS OWNER_READ OWNER_WRITE)
|
|
|
|
set(PG_REGRESS_OPTS_BASE --host=${TEST_PGHOST}
|
|
--dlpath=${PROJECT_BINARY_DIR}/src)
|
|
|
|
set(PG_REGRESS_OPTS_EXTRA
|
|
--create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3},${TEST_ROLE_4},${TEST_ROLE_READ_ONLY}
|
|
--dbname=${TEST_DBNAME}
|
|
--launcher=${PRIMARY_TEST_DIR}/runner.sh)
|
|
|
|
set(PG_REGRESS_SHARED_OPTS_EXTRA
|
|
--create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2}
|
|
--dbname=${TEST_DBNAME}
|
|
--launcher=${PRIMARY_TEST_DIR}/runner_shared.sh)
|
|
|
|
set(PG_ISOLATION_REGRESS_OPTS_EXTRA
|
|
--create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3},${TEST_ROLE_READ_ONLY}
|
|
--dbname=${TEST_DBNAME}
|
|
--launcher=${PRIMARY_TEST_DIR}/runner_isolation.sh)
|
|
|
|
set(PG_REGRESS_OPTS_INOUT --inputdir=${TEST_INPUT_DIR}
|
|
--outputdir=${TEST_OUTPUT_DIR})
|
|
|
|
set(PG_REGRESS_SHARED_OPTS_INOUT
|
|
--inputdir=${TEST_INPUT_DIR}/shared --outputdir=${TEST_OUTPUT_DIR}/shared
|
|
--load-extension=timescaledb)
|
|
|
|
set(PG_ISOLATION_REGRESS_OPTS_INOUT
|
|
--inputdir=${TEST_INPUT_DIR}/isolation
|
|
--outputdir=${TEST_OUTPUT_DIR}/isolation --load-extension=timescaledb)
|
|
|
|
set(PG_REGRESS_OPTS_TEMP_INSTANCE
|
|
--port=${TEST_PGPORT_TEMP_INSTANCE} --temp-instance=${TEST_CLUSTER}
|
|
--temp-config=${TEST_OUTPUT_DIR}/postgresql.conf)
|
|
|
|
set(PG_REGRESS_OPTS_TEMP_INSTANCE_PGTEST
|
|
--port=${TEST_PGPORT_TEMP_INSTANCE} --temp-instance=${TEST_CLUSTER}
|
|
--temp-config=${TEST_OUTPUT_DIR}/pgtest.conf)
|
|
|
|
set(PG_REGRESS_OPTS_LOCAL_INSTANCE --port=${TEST_PGPORT_LOCAL})
|
|
|
|
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_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER}
|
|
TEST_ROLE_1=${TEST_ROLE_1}
|
|
TEST_ROLE_2=${TEST_ROLE_2}
|
|
TEST_ROLE_3=${TEST_ROLE_3}
|
|
TEST_ROLE_READ_ONLY=${TEST_ROLE_READ_ONLY}
|
|
TEST_ROLE_2_PASS=${TEST_ROLE_2_PASS}
|
|
TEST_ROLE_3_PASS=${TEST_ROLE_3_PASS}
|
|
TEST_ROLE_4_PASS=${TEST_ROLE_4_PASS}
|
|
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()
|
|
|
|
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_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER}
|
|
TEST_ROLE_1=${TEST_ROLE_1}
|
|
TEST_ROLE_2=${TEST_ROLE_2}
|
|
TEST_ROLE_3=${TEST_ROLE_3}
|
|
TEST_ROLE_2_PASS=${TEST_2_PASS}
|
|
TEST_ROLE_3_PASS=${TEST_3_PASS}
|
|
TEST_ROLE_READ_ONLY=${TEST_ROLE_READ_ONLY}
|
|
TEST_DBNAME=${TEST_DBNAME}
|
|
TEST_INPUT_DIR=${TEST_INPUT_DIR}
|
|
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
|
|
TEST_SCHEDULE=${ISOLATION_TEST_SCHEDULE}
|
|
PG_REGRESS=${PG_ISOLATION_REGRESS})
|
|
endif()
|
|
|
|
set(TEST_VERSION_SUFFIX ${PG_VERSION_MAJOR})
|
|
if(APACHE_ONLY)
|
|
set(TEST_LICENSE_SUFFIX "oss")
|
|
else()
|
|
set(TEST_LICENSE_SUFFIX "tsl")
|
|
endif()
|