blob: 3ed1d2026684e5c064c2d30daa894cb532667329 [file] [log] [blame]
James E. King III3ae30422018-03-12 07:33:22 -04001#
Pascal Bachd5f87e12014-12-12 15:59:17 +01002# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
James E. King IIIc9ac8d22019-01-07 16:46:45 -050020# Unit tests still require boost
21include(BoostMacros)
22REQUIRE_BOOST_HEADERS()
Mario Emmenlauerb0136812021-08-02 21:55:34 +020023set(BOOST_COMPONENTS filesystem thread unit_test_framework chrono)
James E. King IIIc9ac8d22019-01-07 16:46:45 -050024REQUIRE_BOOST_LIBRARIES(BOOST_COMPONENTS)
Pascal Bachd5f87e12014-12-12 15:59:17 +010025
James E. King IIIc9ac8d22019-01-07 16:46:45 -050026include(ThriftMacros)
James E. King, III7edc8fa2017-01-20 10:11:41 -050027
28# Make sure gen-cpp files can be included
Pascal Bachd5f87e12014-12-12 15:59:17 +010029include_directories("${CMAKE_CURRENT_BINARY_DIR}")
30
31# Create the thrift C++ test library
32set(testgencpp_SOURCES
James E. King, IIIb4c190b2017-02-13 16:39:59 -050033 gen-cpp/AnnotationTest_types.cpp
34 gen-cpp/AnnotationTest_types.h
Pascal Bachd5f87e12014-12-12 15:59:17 +010035 gen-cpp/DebugProtoTest_types.cpp
36 gen-cpp/DebugProtoTest_types.h
37 gen-cpp/EnumTest_types.cpp
38 gen-cpp/EnumTest_types.h
39 gen-cpp/OptionalRequiredTest_types.cpp
40 gen-cpp/OptionalRequiredTest_types.h
41 gen-cpp/Recursive_types.cpp
42 gen-cpp/Recursive_types.h
43 gen-cpp/ThriftTest_types.cpp
44 gen-cpp/ThriftTest_types.h
Chet Murthyad08a8b2017-12-19 15:55:56 -080045 gen-cpp/OneWayTest_types.h
46 gen-cpp/OneWayService.cpp
47 gen-cpp/OneWayService.h
Pascal Bachd5f87e12014-12-12 15:59:17 +010048 gen-cpp/TypedefTest_types.cpp
49 gen-cpp/TypedefTest_types.h
Sven Roederer4f5bfd82024-07-17 15:27:24 +020050 gen-cpp/Thrift5272_types.cpp
51 gen-cpp/Thrift5272_types.h
Pascal Bachd5f87e12014-12-12 15:59:17 +010052 ThriftTest_extras.cpp
53 DebugProtoTest_extras.cpp
54)
55
56add_library(testgencpp STATIC ${testgencpp_SOURCES})
Pascal Bachd5f87e12014-12-12 15:59:17 +010057
Nobuaki Sukegawa6304a532014-12-18 01:30:58 +090058set(testgencpp_cob_SOURCES
Pascal Bachd5f87e12014-12-12 15:59:17 +010059 gen-cpp/ChildService.cpp
60 gen-cpp/ChildService.h
Ben Craig1684c422015-04-24 08:52:44 -050061 gen-cpp/EmptyService.cpp
62 gen-cpp/EmptyService.h
Pascal Bachd5f87e12014-12-12 15:59:17 +010063 gen-cpp/ParentService.cpp
64 gen-cpp/ParentService.h
65 gen-cpp/proc_types.cpp
66 gen-cpp/proc_types.h
67)
Nobuaki Sukegawa6304a532014-12-18 01:30:58 +090068add_library(testgencpp_cob STATIC ${testgencpp_cob_SOURCES})
Pascal Bachd5f87e12014-12-12 15:59:17 +010069
Shaoyu Zhang5c2183d2025-11-13 13:21:07 -080070if (WIN32 AND MSVC)
71 add_library(testgencppCLI STATIC ${testgencpp_SOURCES})
72 set_target_properties(testgencppCLI PROPERTIES COMMON_LANGUAGE_RUNTIME "")
73endif()
74
Pascal Bachd5f87e12014-12-12 15:59:17 +010075add_executable(Benchmark Benchmark.cpp)
76target_link_libraries(Benchmark testgencpp)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +020077target_link_libraries(Benchmark thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +010078add_test(NAME Benchmark COMMAND Benchmark)
Nobuaki Sukegawae8c71d82015-11-23 19:51:37 +090079target_link_libraries(Benchmark testgencpp)
Pascal Bachd5f87e12014-12-12 15:59:17 +010080
81set(UnitTest_SOURCES
82 UnitTestMain.cpp
Chet Murthyad08a8b2017-12-19 15:55:56 -080083 OneWayHTTPTest.cpp
Pascal Bachd5f87e12014-12-12 15:59:17 +010084 TMemoryBufferTest.cpp
85 TBufferBaseTest.cpp
86 Base64Test.cpp
87 ToStringTest.cpp
88 TypedefTest.cpp
Roger Meier3815e0b2015-04-04 16:26:30 +020089 TServerSocketTest.cpp
Ben Craig1684c422015-04-24 08:52:44 -050090 TServerTransportTest.cpp
zeshuai00786352b42020-06-15 17:00:33 +080091 ThrifttReadCheckTests.cpp
CJCombrink4b909092024-04-27 19:51:39 +020092 TUuidTest.cpp
Sven Roederer4f5bfd82024-07-17 15:27:24 +020093 Thrift5272.cpp
Pascal Bachd5f87e12014-12-12 15:59:17 +010094)
95
Pascal Bachd5f87e12014-12-12 15:59:17 +010096add_executable(UnitTests ${UnitTest_SOURCES})
Nobuaki Sukegawae8c71d82015-11-23 19:51:37 +090097target_link_libraries(UnitTests testgencpp ${Boost_LIBRARIES})
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +020098target_link_libraries(UnitTests thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +010099add_test(NAME UnitTests COMMAND UnitTests)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100100if(MSVC)
ben-craigfae08e72015-07-15 11:34:47 -0500101 # Disable C4503: decorated name length exceeded, name was truncated
102 # 'insanity' results in very long decorated names
103 set_property( TARGET UnitTests APPEND_STRING PROPERTY COMPILE_FLAGS /wd4503 )
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100104endif()
Pascal Bachd5f87e12014-12-12 15:59:17 +0100105
CJCombrink4b909092024-04-27 19:51:39 +0200106# Test the THRIFT_TUUID_SUPPORT_BOOST_UUID compiler directive globally set on the target
107add_executable(UnitTestsUuid
108 UnitTestMain.cpp
109 TUuidTestBoost.cpp
110)
111target_link_libraries(UnitTestsUuid testgencpp ${Boost_LIBRARIES})
112target_link_libraries(UnitTestsUuid thrift)
113target_compile_definitions(UnitTestsUuid PUBLIC THRIFT_TUUID_SUPPORT_BOOST_UUID)
114add_test(NAME UnitTestsUuid COMMAND UnitTestsUuid)
115
116# Test not setting the THRIFT_TUUID_SUPPORT_BOOST_UUID compiler directive as with the test above.
117# The test does set the directive before including the thrift header to test the behaviour
118add_executable(UnitTestsUuidNoDirective
119 UnitTestMain.cpp
120 TUuidTestBoostNoDirective.cpp
121)
122target_link_libraries(UnitTestsUuidNoDirective testgencpp ${Boost_LIBRARIES})
123target_link_libraries(UnitTestsUuidNoDirective thrift)
124add_test(NAME UnitTestsUuidNoDirective COMMAND UnitTestsUuidNoDirective)
ben-craigaf2d9c82015-07-16 08:11:21 -0500125
Martin Haimberger0ad6ee92015-11-13 03:18:50 -0800126set( TInterruptTest_SOURCES
127 TSocketInterruptTest.cpp
128 TSSLSocketInterruptTest.cpp
129)
ben-craigaf2d9c82015-07-16 08:11:21 -0500130if (WIN32)
131 list(APPEND TInterruptTest_SOURCES
132 TPipeInterruptTest.cpp
133 )
134endif()
135add_executable(TInterruptTest ${TInterruptTest_SOURCES})
136target_link_libraries(TInterruptTest
Ben Craig1684c422015-04-24 08:52:44 -0500137 testgencpp
138 ${Boost_LIBRARIES}
Ben Craig1684c422015-04-24 08:52:44 -0500139)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200140target_link_libraries(TInterruptTest thrift)
Brad Smith7734c392024-12-09 17:07:56 -0500141if (NOT MSVC AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" AND NOT MINGW)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100142 target_link_libraries(TInterruptTest -lrt)
Ben Craig1684c422015-04-24 08:52:44 -0500143endif ()
James E. King, III07f59972017-03-10 06:18:33 -0500144add_test(NAME TInterruptTest COMMAND TInterruptTest -- "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/keys")
Ben Craig1684c422015-04-24 08:52:44 -0500145
146add_executable(TServerIntegrationTest TServerIntegrationTest.cpp)
147target_link_libraries(TServerIntegrationTest
148 testgencpp_cob
149 ${Boost_LIBRARIES}
150)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200151target_link_libraries(TServerIntegrationTest thrift)
Brad Smith7734c392024-12-09 17:07:56 -0500152if (NOT MSVC AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" AND NOT MINGW)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100153 target_link_libraries(TServerIntegrationTest -lrt)
Ben Craig1684c422015-04-24 08:52:44 -0500154endif ()
155add_test(NAME TServerIntegrationTest COMMAND TServerIntegrationTest)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100156
157if(WITH_ZLIB)
Nobuaki Sukegawa3e5b9c22016-02-22 21:47:23 +0900158include_directories(SYSTEM "${ZLIB_INCLUDE_DIRS}")
Pascal Bachd5f87e12014-12-12 15:59:17 +0100159add_executable(TransportTest TransportTest.cpp)
160target_link_libraries(TransportTest
161 testgencpp
Pascal Bachd5f87e12014-12-12 15:59:17 +0100162 ${Boost_LIBRARIES}
163 ${ZLIB_LIBRARIES}
164)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200165target_link_libraries(TransportTest thrift)
166target_link_libraries(TransportTest thriftz)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100167add_test(NAME TransportTest COMMAND TransportTest)
168
169add_executable(ZlibTest ZlibTest.cpp)
170target_link_libraries(ZlibTest
171 testgencpp
Pascal Bachd5f87e12014-12-12 15:59:17 +0100172 ${Boost_LIBRARIES}
173 ${ZLIB_LIBRARIES}
174)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200175target_link_libraries(ZlibTest thrift)
176target_link_libraries(ZlibTest thriftz)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100177add_test(NAME ZlibTest COMMAND ZlibTest)
178endif(WITH_ZLIB)
179
James E. King, IIIb4c190b2017-02-13 16:39:59 -0500180add_executable(AnnotationTest AnnotationTest.cpp)
181target_link_libraries(AnnotationTest
182 testgencpp
183 ${Boost_LIBRARIES}
184)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200185target_link_libraries(AnnotationTest thrift)
James E. King, IIIb4c190b2017-02-13 16:39:59 -0500186add_test(NAME AnnotationTest COMMAND AnnotationTest)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100187
188add_executable(EnumTest EnumTest.cpp)
189target_link_libraries(EnumTest
190 testgencpp
191 ${Boost_LIBRARIES}
192)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200193target_link_libraries(EnumTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100194add_test(NAME EnumTest COMMAND EnumTest)
195
Jim King9de9b1f2015-04-30 16:03:34 -0400196if(HAVE_GETOPT_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100197add_executable(TFileTransportTest TFileTransportTest.cpp)
198target_link_libraries(TFileTransportTest
199 testgencpp
200 ${Boost_LIBRARIES}
201)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200202target_link_libraries(TFileTransportTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100203add_test(NAME TFileTransportTest COMMAND TFileTransportTest)
Jim King9de9b1f2015-04-30 16:03:34 -0400204endif()
Pascal Bachd5f87e12014-12-12 15:59:17 +0100205
206add_executable(TFDTransportTest TFDTransportTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200207target_link_libraries(TFDTransportTest
208 ${Boost_LIBRARIES}
209)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200210target_link_libraries(TFDTransportTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100211add_test(NAME TFDTransportTest COMMAND TFDTransportTest)
212
213add_executable(TPipedTransportTest TPipedTransportTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200214target_link_libraries(TPipedTransportTest
215 ${Boost_LIBRARIES}
216)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200217target_link_libraries(TPipedTransportTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100218add_test(NAME TPipedTransportTest COMMAND TPipedTransportTest)
219
220set(AllProtocolsTest_SOURCES
221 AllProtocolTests.cpp
222 AllProtocolTests.tcc
Mario Emmenlauerf97176b2022-01-21 22:55:28 +0100223 GenericHelpers.h
224)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100225
226add_executable(AllProtocolsTest ${AllProtocolsTest_SOURCES})
Claudius Heine5ef662b2015-06-24 10:03:50 +0200227target_link_libraries(AllProtocolsTest
228 testgencpp
229 ${Boost_LIBRARIES}
230)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200231target_link_libraries(AllProtocolsTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100232add_test(NAME AllProtocolsTest COMMAND AllProtocolsTest)
233
Jim King9de9b1f2015-04-30 16:03:34 -0400234# The debug run-time in Windows asserts on isprint() with negative inputs
235if (NOT MSVC OR (MSVC AND CMAKE_BUILD_TYPE EQUAL "DEBUG"))
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100236 add_executable(DebugProtoTest DebugProtoTest.cpp)
237 target_link_libraries(DebugProtoTest
238 testgencpp
239 ${Boost_LIBRARIES}
240 )
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200241 target_link_libraries(DebugProtoTest thrift)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100242 add_test(NAME DebugProtoTest COMMAND DebugProtoTest)
Jim King9de9b1f2015-04-30 16:03:34 -0400243endif()
Pascal Bachd5f87e12014-12-12 15:59:17 +0100244
245add_executable(JSONProtoTest JSONProtoTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200246target_link_libraries(JSONProtoTest
247 testgencpp
248 ${Boost_LIBRARIES}
249)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200250target_link_libraries(JSONProtoTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100251add_test(NAME JSONProtoTest COMMAND JSONProtoTest)
252
253add_executable(OptionalRequiredTest OptionalRequiredTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200254target_link_libraries(OptionalRequiredTest
255 testgencpp
256 ${Boost_LIBRARIES}
257)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200258target_link_libraries(OptionalRequiredTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100259add_test(NAME OptionalRequiredTest COMMAND OptionalRequiredTest)
260
261add_executable(RecursiveTest RecursiveTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200262target_link_libraries(RecursiveTest
263 testgencpp
264 ${Boost_LIBRARIES}
265)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200266target_link_libraries(RecursiveTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100267add_test(NAME RecursiveTest COMMAND RecursiveTest)
268
269add_executable(SpecializationTest SpecializationTest.cpp)
Claudius Heine5ef662b2015-06-24 10:03:50 +0200270target_link_libraries(SpecializationTest
271 testgencpp
272 ${Boost_LIBRARIES}
273)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200274target_link_libraries(SpecializationTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100275add_test(NAME SpecializationTest COMMAND SpecializationTest)
276
277set(concurrency_test_SOURCES
278 concurrency/Tests.cpp
279 concurrency/ThreadFactoryTests.h
280 concurrency/ThreadManagerTests.h
281 concurrency/TimerManagerTests.h
282)
283add_executable(concurrency_test ${concurrency_test_SOURCES})
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200284target_link_libraries(concurrency_test thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100285add_test(NAME concurrency_test COMMAND concurrency_test)
286
287set(link_test_SOURCES
288 link/LinkTest.cpp
Nobuaki Sukegawa6304a532014-12-18 01:30:58 +0900289 gen-cpp/ParentService.h
Pascal Bachd5f87e12014-12-12 15:59:17 +0100290 link/TemplatedService1.cpp
291 link/TemplatedService2.cpp
Pascal Bachd5f87e12014-12-12 15:59:17 +0100292)
Nobuaki Sukegawa6304a532014-12-18 01:30:58 +0900293
Pascal Bachd5f87e12014-12-12 15:59:17 +0100294add_executable(link_test ${link_test_SOURCES})
Jim King9de9b1f2015-04-30 16:03:34 -0400295target_link_libraries(link_test testgencpp_cob)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200296target_link_libraries(link_test thrift)
Nobuaki Sukegawae8c71d82015-11-23 19:51:37 +0900297target_link_libraries(link_test testgencpp)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100298add_test(NAME link_test COMMAND link_test)
299
300if(WITH_LIBEVENT)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100301 set(processor_test_SOURCES
302 processor/ProcessorTest.cpp
303 processor/EventLog.cpp
304 processor/ServerThread.cpp
305 processor/EventLog.h
306 processor/Handlers.h
307 processor/ServerThread.h
308 )
309 add_executable(processor_test ${processor_test_SOURCES})
310 target_link_libraries(processor_test
311 testgencpp_cob
312 ${Boost_LIBRARIES}
313 )
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200314 target_link_libraries(processor_test thriftnb)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100315 add_test(NAME processor_test COMMAND processor_test)
Nobuaki Sukegawa8016af82015-01-02 23:14:22 +0900316
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100317 set(TNonblockingServerTest_SOURCES TNonblockingServerTest.cpp)
318 add_executable(TNonblockingServerTest ${TNonblockingServerTest_SOURCES})
319 include_directories(${LIBEVENT_INCLUDE_DIRS})
320 target_link_libraries(TNonblockingServerTest
321 testgencpp_cob
322 ${Boost_LIBRARIES}
323 )
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200324 target_link_libraries(TNonblockingServerTest thriftnb)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100325 add_test(NAME TNonblockingServerTest COMMAND TNonblockingServerTest)
James E. King, III82ae9572017-08-05 12:23:54 -0400326
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100327 if(OPENSSL_FOUND AND WITH_OPENSSL)
328 set(TNonblockingSSLServerTest_SOURCES TNonblockingSSLServerTest.cpp)
329 add_executable(TNonblockingSSLServerTest ${TNonblockingSSLServerTest_SOURCES})
330 include_directories(${LIBEVENT_INCLUDE_DIRS})
331 target_link_libraries(TNonblockingSSLServerTest
332 testgencpp_cob
333 ${Boost_LIBRARIES}
334 )
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200335 target_link_libraries(TNonblockingSSLServerTest thriftnb)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100336 add_test(NAME TNonblockingSSLServerTest COMMAND TNonblockingSSLServerTest -- "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/keys")
337 endif(OPENSSL_FOUND AND WITH_OPENSSL)
338endif()
Pascal Bachd5f87e12014-12-12 15:59:17 +0100339
340if(OPENSSL_FOUND AND WITH_OPENSSL)
341add_executable(OpenSSLManualInitTest OpenSSLManualInitTest.cpp)
342target_link_libraries(OpenSSLManualInitTest
Pascal Bachd5f87e12014-12-12 15:59:17 +0100343 ${OPENSSL_LIBRARIES}
344 ${Boost_LIBRARIES}
345)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200346target_link_libraries(OpenSSLManualInitTest thrift)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100347add_test(NAME OpenSSLManualInitTest COMMAND OpenSSLManualInitTest)
Sergei Nikulov34e0bb62015-09-02 13:06:22 +0300348
349add_executable(SecurityTest SecurityTest.cpp)
350target_link_libraries(SecurityTest
351 testgencpp
352 ${Boost_LIBRARIES}
353)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200354target_link_libraries(SecurityTest thrift)
Brad Smith7734c392024-12-09 17:07:56 -0500355if (NOT MSVC AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" AND NOT MINGW)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100356 target_link_libraries(SecurityTest -lrt)
Sergei Nikulov34e0bb62015-09-02 13:06:22 +0300357endif ()
James E. King, III07f59972017-03-10 06:18:33 -0500358add_test(NAME SecurityTest COMMAND SecurityTest -- "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/keys")
Sergei Nikulov34e0bb62015-09-02 13:06:22 +0300359
Mario Emmenlauer0f14e2f2019-10-15 11:25:10 +0200360add_executable(SecurityFromBufferTest SecurityFromBufferTest.cpp)
361target_link_libraries(SecurityFromBufferTest
362 testgencpp
363 ${Boost_LIBRARIES}
364)
Mario Emmenlauerbdb54bc2021-08-31 14:00:16 +0200365target_link_libraries(SecurityFromBufferTest thrift)
Brad Smith7734c392024-12-09 17:07:56 -0500366if (NOT MSVC AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" AND NOT MINGW)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100367 target_link_libraries(SecurityFromBufferTest -lrt)
Mario Emmenlauer0f14e2f2019-10-15 11:25:10 +0200368endif ()
369add_test(NAME SecurityFromBufferTest COMMAND SecurityFromBufferTest -- "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/keys")
370
Pascal Bachd5f87e12014-12-12 15:59:17 +0100371endif()
372
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900373if(WITH_QT5)
Mario Emmenlauer9fab2382021-02-04 21:10:43 +0100374 add_subdirectory(qt)
Nobuaki Sukegawa66228772014-12-07 21:45:33 +0900375endif()
376
Pascal Bachd5f87e12014-12-12 15:59:17 +0100377#
378# Common thrift code generation rules
379#
Sven Roederer4f5bfd82024-07-17 15:27:24 +0200380# files from /test
381#
Pascal Bachd5f87e12014-12-12 15:59:17 +0100382
James E. King, IIIb4c190b2017-02-13 16:39:59 -0500383add_custom_command(OUTPUT gen-cpp/AnnotationTest_constants.cpp
384 gen-cpp/AnnotationTest_constants.h
385 gen-cpp/AnnotationTest_types.cpp
386 gen-cpp/AnnotationTest_types.h
387 gen-cpp/foo_service.cpp
388 gen-cpp/foo_service.h
389 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/AnnotationTest.thrift
390)
Pascal Bachd5f87e12014-12-12 15:59:17 +0100391
James E. King, IIIb4c190b2017-02-13 16:39:59 -0500392add_custom_command(OUTPUT gen-cpp/DebugProtoTest_types.cpp gen-cpp/DebugProtoTest_types.h gen-cpp/EmptyService.cpp gen-cpp/EmptyService.h
CJCombrink1d886ca2024-03-23 21:32:28 +0100393 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/DebugProtoTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100394)
395
396add_custom_command(OUTPUT gen-cpp/EnumTest_types.cpp gen-cpp/EnumTest_types.h
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900397 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/EnumTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100398)
399
400add_custom_command(OUTPUT gen-cpp/TypedefTest_types.cpp gen-cpp/TypedefTest_types.h
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900401 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/TypedefTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100402)
403
404add_custom_command(OUTPUT gen-cpp/OptionalRequiredTest_types.cpp gen-cpp/OptionalRequiredTest_types.h
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900405 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/OptionalRequiredTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100406)
407
408add_custom_command(OUTPUT gen-cpp/Recursive_types.cpp gen-cpp/Recursive_types.h
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900409 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/Recursive.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100410)
411
412add_custom_command(OUTPUT gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900413 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/StressTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100414)
415
416add_custom_command(OUTPUT gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h
CJCombrink1d886ca2024-03-23 21:32:28 +0100417 COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100418)
419
Sven Roederer4f5bfd82024-07-17 15:27:24 +0200420# files from /lib/cpp/test
421
zeshuai00757c25072020-04-09 11:17:05 +0800422add_custom_command(OUTPUT gen-cpp/OneWayService.cpp gen-cpp/OneWayTest_types.h gen-cpp/OneWayService.h
Chet Murthyad08a8b2017-12-19 15:55:56 -0800423 COMMAND ${THRIFT_COMPILER} --gen cpp ${CMAKE_CURRENT_SOURCE_DIR}/OneWayTest.thrift
424)
425
Sven Roederer4f5bfd82024-07-17 15:27:24 +0200426add_custom_command(OUTPUT gen-cpp/Thrift5272_types.cpp gen-cpp/Thrift5272_types.h
427 COMMAND ${THRIFT_COMPILER} --gen cpp ${CMAKE_CURRENT_SOURCE_DIR}/Thrift5272.thrift
428)
429
Pascal Bachd5f87e12014-12-12 15:59:17 +0100430add_custom_command(OUTPUT gen-cpp/ChildService.cpp gen-cpp/ChildService.h gen-cpp/ParentService.cpp gen-cpp/ParentService.h gen-cpp/proc_types.cpp gen-cpp/proc_types.h
Nobuaki Sukegawaca939362015-11-14 00:23:40 +0900431 COMMAND ${THRIFT_COMPILER} --gen cpp:templates,cob_style ${CMAKE_CURRENT_SOURCE_DIR}/processor/proc.thrift
Pascal Bachd5f87e12014-12-12 15:59:17 +0100432)