Browse Source

Make qtgrpc echo test pass via ctest (#100)

Viktor Kopp 5 năm trước cách đây
mục cha
commit
330201cbf9
3 tập tin đã thay đổi với 35 bổ sung1 xóa
  1. 1 0
      CMakeLists.txt
  2. 8 1
      tests/test_grpc/CMakeLists.txt
  3. 26 0
      tests/test_grpc/test_driver.sh.in

+ 1 - 0
CMakeLists.txt

@@ -125,6 +125,7 @@ if(MAKE_TESTS)
         link_directories(${GTEST_BOTH_LIBRARIES})
     endif()
 
+    enable_testing()
     add_subdirectory("tests")
 endif()
 

+ 8 - 1
tests/test_grpc/CMakeLists.txt

@@ -1,5 +1,6 @@
-set(TARGET qtgrpc_test)
+configure_file(test_driver.sh.in test_driver.sh @ONLY)
 
+set(TARGET qtgrpc_test)
 set(GENERATED_HEADERS
     simplestringmessage.h
     testserviceclient.h
@@ -9,8 +10,14 @@ set(GENERATED_HEADERS
 file(GLOB SOURCES main.cpp
 #    servertest.cpp
     clienttest.cpp)
+
 add_test_target(TARGET ${TARGET}
     GENERATED_HEADERS ${GENERATED_HEADERS}
     SOURCES ${SOURCES})
 
 add_subdirectory(echoserver)
+
+message(STATUS "CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
+add_test(NAME qtgrpc_echo_test
+         COMMAND test_driver.sh ./tests/test_grpc/qtgrpc_test ./tests/test_grpc/echoserver/echoserver
+)

+ 26 - 0
tests/test_grpc/test_driver.sh.in

@@ -0,0 +1,26 @@
+#! /bin/bash
+
+# Arguments:
+# 1. Test path/file (relative to "tests" folder)
+# 2. Optional server to run (relative to "tests" folder)
+
+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" &
+    sleep 0.2
+fi
+
+# execute test provided in $1 with backend provided in $2
+echo "CLIENT: $BUILD_FOLDER/$1"
+"$BUILD_FOLDER/$1"
+
+EXIT_CODE=$?
+
+# kill qml background server process
+[[ $2 ]] && kill $!
+
+exit $EXIT_CODE
+