1project(lws-minimal-http-client-post C) 2cmake_minimum_required(VERSION 2.8.12) 3find_package(libwebsockets CONFIG REQUIRED) 4list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR}) 5include(CheckCSourceCompiles) 6include(LwsCheckRequirements) 7 8set(SAMP lws-minimal-http-client-post) 9set(SRCS minimal-http-client-post.c) 10 11set(requirements 1) 12set(MBEDTLS 0) 13require_lws_config(LWS_ROLE_H1 1 requirements) 14require_lws_config(LWS_WITH_CLIENT 1 requirements) 15 16require_lws_config(LWS_WITH_MBEDTLS 1 MBEDTLS) 17 18if (requirements) 19 add_executable(${SAMP} ${SRCS}) 20 find_program(VALGRIND "valgrind") 21 22 # 23 # instantiate the server per sai builder instance, they are running in the same 24 # machine context in parallel so they can tread on each other otherwise 25 # 26 set(PORT_HCP_SRV "7640") 27 if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "0") 28 set(PORT_HCP_SRV 7641) 29 endif() 30 if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "1") 31 set(PORT_HCP_SRV 7642) 32 endif() 33 if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "2") 34 set(PORT_HCP_SRV 7643) 35 endif() 36 if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "3") 37 set(PORT_HCP_SRV 7644) 38 endif() 39 40# hack 41if (NOT WIN32 AND LWS_WITH_SERVER) 42 43 # 44 # Tests against built server running locally (needs daemonization...) 45 # 46 47if (WIN32) 48 add_test(NAME st_hcp_srv COMMAND cmd.exe /c start /b $<TARGET_FILE:test-server> -s --port ${PORT_HCP_SRV}) 49 add_test(NAME ki_hcp_srv COMMAND taskkill /F /IM $<TARGET_FILE_NAME:test-server> /T) 50else() 51 # 52 # mbedtls is too slow to keep up on some targets, when ctest is in parallel 53 # 54 if (VALGRIND AND NOT MBEDTLS) 55 add_test(NAME st_hcp_srv COMMAND 56 ${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh 57 hcp_srv ${VALGRIND} --tool=memcheck 58 $<TARGET_FILE:test-server> 59 -r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/ 60 -s --port ${PORT_HCP_SRV} -d1151) 61 add_test(NAME ki_hcp_srv COMMAND 62 ${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh hcp_srv ${VALGRIND} 63 $<TARGET_FILE_NAME:test-server> --port ${PORT_HCP_SRV}) 64 else() 65 add_test(NAME st_hcp_srv COMMAND 66 ${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh 67 hcp_srv 68 $<TARGET_FILE:test-server> 69 -r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/ 70 -s --port ${PORT_HCP_SRV} ) 71 add_test(NAME ki_hcp_srv COMMAND 72 ${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh hcp_srv 73 $<TARGET_FILE_NAME:test-server> --port ${PORT_HCP_SRV}) 74 endif() 75endif() 76 77 set_tests_properties(st_hcp_srv PROPERTIES 78 WORKING_DIRECTORY . 79 FIXTURES_SETUP hcp_srv 80 TIMEOUT 800) 81 set_tests_properties(ki_hcp_srv PROPERTIES 82 FIXTURES_CLEANUP hcp_srv) 83 84 add_test(NAME http-client-post COMMAND 85 lws-minimal-http-client-post -l --port ${PORT_HCP_SRV}) 86 add_test(NAME http-client-post-m COMMAND 87 lws-minimal-http-client-post -l -m --port ${PORT_HCP_SRV}) 88 add_test(NAME http-client-post-h1 COMMAND 89 lws-minimal-http-client-post -l --h1 --port ${PORT_HCP_SRV}) 90 add_test(NAME http-client-post-m-h1 COMMAND 91 lws-minimal-http-client-post -l -m --h1 --port ${PORT_HCP_SRV}) 92 set_tests_properties(http-client-post 93 http-client-post-m 94 http-client-post-h1 95 http-client-post-m-h1 96 PROPERTIES 97 FIXTURES_REQUIRED "hcp_srv" 98 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples/http-client/minimal-http-client-post 99 TIMEOUT 20) 100endif() 101 102 103 if (websockets_shared) 104 target_link_libraries(${SAMP} websockets_shared ${LIBWEBSOCKETS_DEP_LIBS}) 105 add_dependencies(${SAMP} websockets_shared) 106 else() 107 target_link_libraries(${SAMP} websockets ${LIBWEBSOCKETS_DEP_LIBS}) 108 endif() 109endif() 110