-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
101 lines (86 loc) · 3.2 KB
/
CMakeLists.txt
File metadata and controls
101 lines (86 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
find_program(EXPECTOR NAMES expect)
if (NOT EXPECTOR)
message(WARNING "expect not found: integration testing is not enabled")
return()
endif ()
execute_process(COMMAND ${EXPECTOR} -v)
find_program(GOLANG_EXE NAMES go REQUIRED)
set(qs_home ${CMAKE_CURRENT_BINARY_DIR}/qs-home)
set(test_client_jwt ${qs_home}/test-client.jwt)
set(test_server_jwt ${qs_home}/test-server.jwt)
set(test_client_json ${qs_home}/test-client.json)
set(test_server_json ${qs_home}/test-server.json)
set(test_service test-service)
set(ZITI_CLI ${CMAKE_CURRENT_BINARY_DIR}/ziti)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/test-data.h.in
${CMAKE_CURRENT_BINARY_DIR}/include/test-data.h
@ONLY
)
add_executable(integ-tests
main.cpp
legacy-auth.cpp
oidc-tests.cpp
ctrl_tests.cpp
enroll_tests.cpp
)
target_include_directories(integ-tests
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include
PRIVATE ${ziti-sdk_SOURCE_DIR}/inc_internal)
target_link_libraries(integ-tests
PRIVATE ziti
PRIVATE Catch2::Catch2WithMain
)
if (WIN32)
set_property(TARGET integ-tests PROPERTY CXX_STANDARD 20)
else ()
set_property(TARGET integ-tests PROPERTY CXX_STANDARD 14)
endif ()
set(ZITI_CLI_VER "v1.4.3" CACHE STRING "ziti version for integration tests")
add_custom_target(ziti-cli ALL
COMMAND ${CMAKE_COMMAND} -E env GOBIN=${CMAKE_CURRENT_BINARY_DIR}
${GOLANG_EXE} install github.com/openziti/ziti/ziti@${ZITI_CLI_VER}
BYPRODUCTS ${ZITI_CLI}
)
add_custom_target(cleanup-qs
COMMAND cat -n /etc/hosts
COMMAND cat -n ${qs_home}/ctrl.yaml || true
COMMAND ${CMAKE_COMMAND} -E remove_directory "${qs_home}"
)
add_custom_target(run-qs
DEPENDS ziti-cli cleanup-qs
COMMAND ${CMAKE_COMMAND} -E env
ZITI_CLI=${ZITI_CLI};ZITI_CONFIG_DIR=${qs_home};QUICKSTART_HOME=${qs_home};ENROLLER=$<TARGET_FILE:sample_enroll>
${EXPECTOR} ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.exp
COMMAND ${ZITI_CLI} edge quickstart --home ${qs_home}
USES_TERMINAL
VERBATIM
)
set_target_properties(run-qs PROPERTIES
ADDITIONAL_CLEAN_FILES ${qs_home}
)
add_test(NAME quickstart-bootstrap
COMMAND ${EXPECTOR} ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.exp
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND_EXPAND_LISTS
)
set_tests_properties(quickstart-bootstrap PROPERTIES
FIXTURES_SETUP QS
ENVIRONMENT "ZITI_CLI=${ZITI_CLI};ZITI_CONFIG_DIR=${qs_home};QUICKSTART_HOME=${qs_home};ENROLLER=$<TARGET_FILE:sample_enroll>"
DEPENDS "sample_enroll;ziti-cli"
)
add_test(NAME quickstart-test
COMMAND ${EXPECTOR} ${CMAKE_CURRENT_SOURCE_DIR}/integ-test.exp
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(quickstart-test PROPERTIES
FIXTURES_REQUIRED QS
DEPENDS "integ-tests"
ENVIRONMENT "ZITI_CLI=${ZITI_CLI};ZITI_CONFIG_DIR=${qs_home};QUICKSTART_HOME=${qs_home};TEST_EXE=$<TARGET_FILE:integ-tests>"
)
add_test(NAME quickstart-cleanup
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target cleanup-qs
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(quickstart-cleanup PROPERTIES
FIXTURES_CLEANUP QS
)