Add ability to run regression test locally

This commit is contained in:
Matvey Arye 2017-10-18 15:07:57 -04:00 committed by Matvey Arye
parent 44f9fec2fa
commit ec746d1ef8

View File

@ -12,34 +12,24 @@ set(TEST_ROLE_DEFAULT_PERM_USER default_perm_user)
set(TEST_ROLE_DEFAULT_PERM_USER_2 default_perm_user_2)
# Basic connection info for test instance
set(TEST_PGPORT 1432)
set(TEST_PGPORT_LOCAL 5432)
set(TEST_PGPORT_TEMP_INSTANCE 1432)
set(TEST_PGHOST localhost)
set(TEST_PGUSER ${TEST_ROLE_DEFAULT_PERM_USER})
set(TEST_DBNAME single)
set(TEST_INPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(TEST_CLUSTER ${TEST_OUTPUT_DIR}/testcluster)
set(PG_REGRESS_OPTS
--temp-instance=${TEST_CLUSTER}
--temp-config=${TEST_OUTPUT_DIR}/postgresql.conf
set(PG_REGRESS_OPTS_COMMON
--create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2}
--dbname=${TEST_DBNAME}
--outputdir=${TEST_OUTPUT_DIR}
--launcher=${TEST_INPUT_DIR}/runner.sh
--host=${TEST_PGHOST}
--port=${TEST_PGPORT}
--user=${TEST_PGUSER}
--load-language=plpgsql
--dlpath=${PROJECT_BINARY_DIR}/src
--inputdir=${TEST_INPUT_DIR})
# Configuration setting needed to LOAD module for tests instead of
# preloading
file(MAKE_DIRECTORY ${TEST_OUTPUT_DIR})
file(WRITE ${TEST_OUTPUT_DIR}/postgresql.conf "shared_preload_libraries=timescaledb")
add_custom_target(installcheck
COMMAND ${CMAKE_COMMAND} -E env
SET(PG_REGRESS_ENV
TEST_PGUSER=${TEST_PGUSER}
TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER}
TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER}
@ -48,5 +38,33 @@ add_custom_target(installcheck
TEST_INPUT_DIR=${TEST_INPUT_DIR}
TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR}
PG_REGRESS=${PG_REGRESS}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS}
)
set(PG_REGRESS_OPTS_TEMP_INSTANCE
--user=${TEST_PGUSER}
--port=${TEST_PGPORT_TEMP_INSTANCE}
--temp-instance=${TEST_CLUSTER}
--temp-config=${TEST_OUTPUT_DIR}/postgresql.conf
${PG_REGRESS_OPTS_COMMON}
)
set(PG_REGRESS_OPTS_LOCAL
--user=postgres
--port=${TEST_PGPORT_LOCAL}
${PG_REGRESS_OPTS_COMMON}
)
file(MAKE_DIRECTORY ${TEST_OUTPUT_DIR})
file(WRITE ${TEST_OUTPUT_DIR}/postgresql.conf "shared_preload_libraries=timescaledb")
#installcheck starts up new temporary instances for testing code
add_custom_target(installcheck
COMMAND ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_TEMP_INSTANCE}
USES_TERMINAL)
#installchecklocal tests against an existing postgres instance
add_custom_target(installchecklocal
COMMAND ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV}
${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_LOCAL}
USES_TERMINAL)