From ec746d1ef80244b99962da64508afff7a4c2e88a Mon Sep 17 00:00:00 2001 From: Matvey Arye Date: Wed, 18 Oct 2017 15:07:57 -0400 Subject: [PATCH] Add ability to run regression test locally --- test/CMakeLists.txt | 48 +++++++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 93319eca0..1f06eea65 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -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)