Browse Source

Add separate batch script to support ctest in windows

Alexey Edelev 5 years ago
parent
commit
33fd7afc3d

+ 11 - 6
tests/test_grpc/CMakeLists.txt

@@ -1,7 +1,3 @@
-configure_file(test_driver.sh.in test_driver.sh @ONLY)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testfile ${CMAKE_CURRENT_BINARY_DIR}/testfile COPYONLY)
-
 include(${CMAKE_SOURCE_DIR}/cmake/QtProtobufCommon.cmake)
 
 set(GENERATED_HEADERS
@@ -28,10 +24,19 @@ add_target_windeployqt(TARGET qtgrpc_secure_test
 add_subdirectory(echoserver)
 add_subdirectory(secureechoserver)
 
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testfile ${CMAKE_CURRENT_BINARY_DIR}/testfile COPYONLY)
+
+if(UNIX)
+    set(TEST_DRIVER_NAME "test_driver.sh")
+elseif(WIN32)
+    set(TEST_DRIVER_NAME "test_driver.bat")
+endif()
+
+configure_file(${TEST_DRIVER_NAME}.in ${TEST_DRIVER_NAME} @ONLY)
 add_test(NAME qtgrpc_echo_test
-         COMMAND test_driver.sh ./tests/test_grpc/qtgrpc_test ./tests/test_grpc/echoserver/echoserver
+         COMMAND ${TEST_DRIVER_NAME} $<TARGET_FILE:qtgrpc_test> $<TARGET_FILE:echoserver> $<TARGET_FILE_NAME:qtgrpc_test> $<TARGET_FILE_NAME:echoserver>
 )
 
 add_test(NAME qtgrpc_secure_test
-         COMMAND test_driver.sh ./tests/test_grpc/qtgrpc_secure_test ./tests/test_grpc/echoserver/secureechoserver
+         COMMAND ${TEST_DRIVER_NAME} $<TARGET_FILE:qtgrpc_secure_test> $<TARGET_FILE:secureechoserver> $<TARGET_FILE_NAME:qtgrpc_secure_test> $<TARGET_FILE_NAME:secureechoserver>
 )

+ 6 - 0
tests/test_grpc/test_driver.bat.in

@@ -0,0 +1,6 @@
+START "Server" %2
+
+START "Client test" %1 /WAIT
+
+; kill background server process
+taskkill /im %4

+ 5 - 5
tests/test_grpc/test_driver.sh.in

@@ -8,18 +8,18 @@ BUILD_FOLDER=@CMAKE_BINARY_DIR@
 
 # start optional server provided in $2
 if [[ $2 ]] ; then
-    echo "SERVER: $BUILD_FOLDER/$2 & sleep 0.2"
-    "$BUILD_FOLDER/$2" &
+    echo "SERVER: $2 & sleep 0.2"
+    "$2" &
     sleep 0.2
 fi
 
 # execute test provided in $1 with backend provided in $2
-echo "CLIENT: $BUILD_FOLDER/$1"
-"$BUILD_FOLDER/$1"
+echo "CLIENT: $1"
+"$1"
 
 EXIT_CODE=$?
 
-# kill qml background server process
+# kill background server process
 [[ $2 ]] && kill $!
 
 exit $EXIT_CODE