File: CMakeLists.txt

package info (click to toggle)
libwebsockets 4.3.5-2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 31,288 kB
  • sloc: ansic: 194,407; javascript: 1,550; sh: 1,387; cpp: 505; java: 461; perl: 405; xml: 118; makefile: 76; awk: 5
file content (208 lines) | stat: -rw-r--r-- 9,057 bytes parent folder | download
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
project(lws-minimal-http-client-multi C)
cmake_minimum_required(VERSION 3.10)
find_package(libwebsockets CONFIG REQUIRED)
list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
include(CheckCSourceCompiles)
include(LwsCheckRequirements)

set(SAMP lws-minimal-http-client-multi)
set(SRCS minimal-http-client-multi.c)

set(requirements 1)
set(MBEDTLS 0)
require_lws_config(LWS_ROLE_H1 1 requirements)
require_lws_config(LWS_WITH_CLIENT 1 requirements)
require_lws_config(LWS_WITH_TLS 1 requirements)
require_lws_config(LWS_WITH_SYS_STATE 1 requirements)

require_lws_config(LWS_WITH_MBEDTLS 1 MBEDTLS)


if (requirements)
	add_executable(${SAMP} ${SRCS})
	
	find_program(VALGRIND "valgrind")
	
       #
       # instantiate the server per sai builder instance, they are running in the same
       # machine context in parallel so they can tread on each other otherwise
       #
       set(PORT_HCM_SRV "7670")
       if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "0")
               set(PORT_HCM_SRV 7671)
       endif()
       if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "1")
               set(PORT_HCM_SRV 7672)
       endif()
       if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "2")
               set(PORT_HCM_SRV 7673)
       endif()
       if ("$ENV{SAI_INSTANCE_IDX}" STREQUAL "3")
               set(PORT_HCM_SRV 7674)
       endif()


# hack
if (NOT WIN32 AND LWS_WITH_SERVER)

	#
	# Tests against built server running locally (needs daemonization...)
	#

if (WIN32)
	add_test(NAME st_hcm_srv COMMAND cmd.exe /c start /b $<TARGET_FILE:lws-minimal-http-server-tls> --port ${PORT_HCM_SRV})
	add_test(NAME ki_hcm_srv COMMAND taskkill /F /IM $<TARGET_FILE_NAME:lws-minimal-http-server-tls> /T)
	add_test(NAME st_hcmp_srv COMMAND cmd.exe /c start /b $<TARGET_FILE:test-server> -s --port 1${PORT_HCM_SRV})
	add_test(NAME ki_hcmp_srv COMMAND taskkill /F /IM $<TARGET_FILE_NAME:test-server> /T)
else()
	#
	# mbedtls is too slow to keep up on some targets, when ctest is in parallel
	#
	if (VALGRIND AND NOT MBEDTLS)
		add_test(NAME st_hcm_srv COMMAND
			${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
				hcm_srv ${VALGRIND} --tool=memcheck $<TARGET_FILE:lws-minimal-http-server-tls>
				--port ${PORT_HCM_SRV})
		add_test(NAME ki_hcm_srv COMMAND
			${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
				hcm_srv ${VALGRIND} $<TARGET_FILE_NAME:lws-minimal-http-server-tls>
					--port ${PORT_HCM_SRV})
		add_test(NAME st_hcmp_srv COMMAND
				${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
					hcmp_srv ${VALGRIND} --tool=memcheck $<TARGET_FILE:test-server> -s
					-r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/
					--port 1${PORT_HCM_SRV})
		add_test(NAME ki_hcmp_srv COMMAND
				${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
					hcmp_srv ${VALGRIND} $<TARGET_FILE_NAME:test-server>
					--port 1${PORT_HCM_SRV})
	else()
		add_test(NAME st_hcm_srv COMMAND
			${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
				hcm_srv $<TARGET_FILE:lws-minimal-http-server-tls>
				--port ${PORT_HCM_SRV} )
		add_test(NAME ki_hcm_srv COMMAND
			${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
				hcm_srv $<TARGET_FILE_NAME:lws-minimal-http-server-tls>
					--port ${PORT_HCM_SRV})
		add_test(NAME st_hcmp_srv COMMAND
				${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
					hcmp_srv $<TARGET_FILE:test-server> -s
					-r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/
					--port 1${PORT_HCM_SRV} )
		add_test(NAME ki_hcmp_srv COMMAND
				${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
					hcmp_srv $<TARGET_FILE_NAME:test-server>
					--port 1${PORT_HCM_SRV})
	endif()
endif()

	set_tests_properties(st_hcm_srv PROPERTIES
       		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples/http-server/minimal-http-server-tls
		FIXTURES_SETUP hcm_srv
		TIMEOUT 800)
	set_tests_properties(ki_hcm_srv PROPERTIES
		FIXTURES_CLEANUP hcm_srv)

	set_tests_properties(st_hcmp_srv PROPERTIES
       		WORKING_DIRECTORY .
		FIXTURES_SETUP hcmp_srv
		TIMEOUT 800)
	set_tests_properties(ki_hcmp_srv PROPERTIES
		FIXTURES_CLEANUP hcmp_srv)

	#
	# Tests against local server peer
	#

	add_test(NAME http-client-multi COMMAND lws-minimal-http-client-multi
			-l --port ${PORT_HCM_SRV} -d 1151)
	add_test(NAME http-client-multi-h1 COMMAND lws-minimal-http-client-multi
			--h1 -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-pipe COMMAND lws-minimal-http-client-multi
			-p -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-h1-pipe COMMAND lws-minimal-http-client-multi
			--h1 -p -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-stag COMMAND lws-minimal-http-client-multi
			-s -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-stag-h1 COMMAND lws-minimal-http-client-multi
			--h1 -s -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-stag-pipe COMMAND lws-minimal-http-client-multi
			-p -s -l --port ${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-stag-h1-pipe COMMAND lws-minimal-http-client-multi
			--h1 -p -s -l --port ${PORT_HCM_SRV} -d1151)

	# confirm that the pipelined mode really is doing it in one connection
	add_test(NAME http-client-multi-restrict-pipe COMMAND lws-minimal-http-client-multi -d1151 --limit 1 -p -l --port ${PORT_HCM_SRV})
	add_test(NAME http-client-multi-restrict-h1-pipe COMMAND lws-minimal-http-client-multi -d1151 --limit 1 --h1 -p -l --port ${PORT_HCM_SRV})
	add_test(NAME http-client-multi-restrict-stag-pipe COMMAND lws-minimal-http-client-multi -d1151 --limit 1 -p -s -l --port ${PORT_HCM_SRV})
	add_test(NAME http-client-multi-restrict-stag-h1-pipe COMMAND lws-minimal-http-client-multi -d1151 --limit 1 --h1 -p -s -l --port ${PORT_HCM_SRV})
	# confirm that we do fail with a one connection limit and no pipelining
	add_test(NAME http-client-multi-restrict-nopipe-fail COMMAND lws-minimal-http-client-multi --limit 1 -l --port ${PORT_HCM_SRV} -d1151)
	set_property(TEST http-client-multi-restrict-nopipe-fail PROPERTY WILL_FAIL TRUE)
	add_test(NAME http-client-multi-restrict-h1-nopipe-fail COMMAND lws-minimal-http-client-multi --limit 1 --h1 -l --port ${PORT_HCM_SRV} -d1151)
	set_property(TEST http-client-multi-restrict-h1-nopipe-fail PROPERTY WILL_FAIL TRUE)

	set_tests_properties(http-client-multi-restrict-pipe
			     http-client-multi-restrict-h1-pipe
			     http-client-multi-restrict-stag-pipe
			     http-client-multi-restrict-stag-h1-pipe
			     http-client-multi-restrict-nopipe-fail
			     http-client-multi-restrict-h1-nopipe-fail
			     http-client-multi
			     http-client-multi-h1
			     http-client-multi-pipe
			     http-client-multi-h1-pipe
			     http-client-multi-stag
			     http-client-multi-stag-h1
			     http-client-multi-stag-pipe
			     http-client-multi-stag-h1-pipe
			     PROPERTIES
			     FIXTURES_REQUIRED "hcm_srv"
			     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples/http-client/minimal-http-client-multi
			     TIMEOUT 50)

	# POSTs against local http-server-form-post
	add_test(NAME http-client-multi-post COMMAND lws-minimal-http-client-multi
			--post -l --port 1${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-post-h1 COMMAND lws-minimal-http-client-multi
			--post --h1 -l --port 1${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-post-pipe COMMAND lws-minimal-http-client-multi
			--post -p -l --port 1${PORT_HCM_SRV} -d1151)
	if (VALGRIND)
		add_test(NAME http-client-multi-post-h1-pipe COMMAND ${VALGRIND} --tool=memcheck $<TARGET_FILE:lws-minimal-http-client-multi>
			--post --h1 -p -l --port 1${PORT_HCM_SRV} -d1151)	
	else()
		add_test(NAME http-client-multi-post-h1-pipe COMMAND lws-minimal-http-client-multi
			--post --h1 -p -l --port 1${PORT_HCM_SRV} -d1151)
	endif()
	add_test(NAME http-client-multi-post-stag COMMAND lws-minimal-http-client-multi
			--post -s -l -d1151 --port 1${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-post-stag-h1 COMMAND lws-minimal-http-client-multi
			--post --h1 -d1151 -s -l --port 1${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-post-stag-pipe COMMAND lws-minimal-http-client-multi
			--post -p -s -l --port 1${PORT_HCM_SRV} -d1151)
	add_test(NAME http-client-multi-post-stag-h1-pipe COMMAND lws-minimal-http-client-multi
			--post --h1 -p -s -l --port 1${PORT_HCM_SRV} -d1151)
	set_tests_properties(http-client-multi-post
			     http-client-multi-post-h1
			     http-client-multi-post-pipe
			     http-client-multi-post-h1-pipe
			     http-client-multi-post-stag
			     http-client-multi-post-stag-h1
			     http-client-multi-post-stag-pipe
			     http-client-multi-post-stag-h1-pipe
			     PROPERTIES
			     	FIXTURES_REQUIRED "hcmp_srv"
			     	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples/http-client/minimal-http-client-multi
			     	TIMEOUT 20)

endif(NOT WIN32 AND LWS_WITH_SERVER)

	if (websockets_shared)
		target_link_libraries(${SAMP} websockets_shared ${LIBWEBSOCKETS_DEP_LIBS})
		add_dependencies(${SAMP} websockets_shared)
	else()
		target_link_libraries(${SAMP} websockets ${LIBWEBSOCKETS_DEP_LIBS})
	endif()
endif()