From ce53159e7ddbbe769179114a08872eba3c5c53b4 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Fri, 19 Dec 2014 17:23:26 +0200 Subject: [PATCH] Moved dbshard tests to a separate cmake file --- server/modules/routing/dbshard/test/CMakeLists.txt | 6 ++---- server/modules/routing/dbshard/test/prepare_shard.sh | 12 +++++++++--- server/modules/routing/dbshard/test/test.cmake.in | 10 ++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 server/modules/routing/dbshard/test/test.cmake.in diff --git a/server/modules/routing/dbshard/test/CMakeLists.txt b/server/modules/routing/dbshard/test/CMakeLists.txt index 46cc796b5..3fe6dd388 100644 --- a/server/modules/routing/dbshard/test/CMakeLists.txt +++ b/server/modules/routing/dbshard/test/CMakeLists.txt @@ -1,8 +1,6 @@ if(MYSQLCLIENT_FOUND AND BUILD_TESTS) add_executable(testdbshard testdbshard.c) target_link_libraries(testdbshard ${MYSQLCLIENT_LIBRARIES} ssl crypto dl z m rt pthread) - foreach(VAR RANGE 3000 3003) - execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/prepare_shard.sh ${TEST_HOST} ${VAR} ${TEST_USER} ${TEST_PASSWORD}) - endforeach() - add_test(NAME DBShardTest COMMAND $ ${TEST_HOST} ${TEST_PORT_DB} ${TEST_USER} ${TEST_PASSWORD}) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/test.cmake @ONLY) + add_test(NAME DBShardTest COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/test.cmake) endif() diff --git a/server/modules/routing/dbshard/test/prepare_shard.sh b/server/modules/routing/dbshard/test/prepare_shard.sh index 7ed41ecb6..376b32a19 100755 --- a/server/modules/routing/dbshard/test/prepare_shard.sh +++ b/server/modules/routing/dbshard/test/prepare_shard.sh @@ -1,13 +1,19 @@ #!/bin/bash -if [ $# -lt 3 ] +if [ $# -lt 5 ] then - echo "usage $0 " + printf "Not enough arguments: '" + for i in $@ + do + printf "$i " + done + echo "'given, 5 needed." + echo "usage $0 " exit 1 fi HOST=$1 PORT=$2 USER=$3 PW=$4 -SHD="shard$RANDOM" +SHD=$5 mysql -u $USER -p$PW -P $PORT -h $HOST -e "create database $SHD;" echo "Created database \"$SHD\" at $HOST:$PORT" diff --git a/server/modules/routing/dbshard/test/test.cmake.in b/server/modules/routing/dbshard/test/test.cmake.in new file mode 100644 index 000000000..fe0a8cab3 --- /dev/null +++ b/server/modules/routing/dbshard/test/test.cmake.in @@ -0,0 +1,10 @@ +set(DBSHARD_TEST_PORTS 3000 3001 3002 3003) +foreach(VAR ${DBSHARD_TEST_PORTS}) + execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/prepare_shard.sh @TEST_HOST@ ${VAR} @TEST_USER@ @TEST_PASSWORD@ "db${VAR}") +endforeach() +execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/testdbshard @TEST_HOST@ @TEST_PORT_DB@ @TEST_USER@ @TEST_PASSWORD@ RESULT_VARIABLE RVAL) +if(RVAL EQUAL 0) + message("Test passed.") +else() + message(FATAL_ERROR "Test failed.") +endif()