@@ -245,14 +245,84 @@ add_fbthrift_cpp_library(
245245 OPTIONS stack_arguments sync_methods_return_try deprecated_terse_writes
246246)
247247
248- # Add source include directories to thrift targets
249- # Generated thrift code includes headers like <mcrouter/lib/carbon/Keys.h>
250- foreach (thrift_target
251- mcrouter_carbon_result_thrift
248+ set (THRIFT_TARGETS mcrouter_carbon_result_thrift
252249 mcrouter_carbon_thrift
253250 mcrouter_common_thrift
254251 mcrouter_memcache_thrift
255252 mcrouter_memcache_service_thrift)
253+
254+ # Build test-only Thrift libraries.
255+ if (BUILD_TESTS)
256+ # HelloGoodbyeService depends on fb303.FacebookService which isn't OSS,
257+ # so supply a mock implementation.
258+ # This sadly must be copied under the source directory rather than the build directory,
259+ # because add_fbthrift_cpp_library() expects Thrift source file paths
260+ # to be relative to the source directory root.
261+ configure_file (
262+ "${CMAKE_CURRENT_SOURCE_DIR } /CMake/fb303.thrift.in"
263+ "${CMAKE_CURRENT_SOURCE_DIR } /common/fb303/if/fb303.thrift"
264+ @ONLY
265+ )
266+
267+ add_fbthrift_cpp_library (
268+ fb303_facebookservice_mock
269+ common/fb303/if/fb303.thrift
270+ )
271+
272+ add_fbthrift_cpp_library (
273+ mcrouter_hello_goodbye_thrift
274+ mcrouter/lib/carbon/example/gen/HelloGoodbye.thrift
275+ DEPENDS
276+ mcrouter_carbon_thrift
277+ mcrouter_carbon_result_thrift
278+ mcrouter_common_thrift
279+ )
280+
281+ add_fbthrift_cpp_library (
282+ mcrouter_hello_goodbye_service_thrift
283+ mcrouter/lib/carbon/example/gen/HelloGoodbyeService.thrift
284+ DEPENDS
285+ fb303_facebookservice_mock
286+ mcrouter_hello_goodbye_thrift
287+ SERVICES
288+ HelloGoodbye
289+ OPTIONS stack_arguments sync_methods_return_try
290+ )
291+
292+ add_library (
293+ mcrouter_hello_goodbye
294+ mcrouter/lib/carbon/example/gen/HelloGoodbyeRouterInfo.cpp
295+ mcrouter/lib/carbon/example/gen/HelloGoodbyeRouterInfo-BuildExtraProvider.cpp
296+ mcrouter/lib/carbon/example/gen/HelloGoodbyeRouterInfo-ExternTemplate.cpp
297+ mcrouter/lib/carbon/example/gen/HelloGoodbyeMessages.cpp
298+ mcrouter/lib/carbon/example/gen/HelloGoodbyeMessagesThrift.cpp
299+ )
300+
301+ target_link_libraries (
302+ mcrouter_hello_goodbye
303+ PUBLIC
304+ mcrouter_hello_goodbye_service_thrift
305+ )
306+
307+
308+ add_fbthrift_cpp_library (
309+ mcrouter_carbon_test_thrift
310+ mcrouter/lib/network/test/gen/CarbonTest.thrift
311+ DEPENDS
312+ mcrouter_carbon_thrift
313+ mcrouter_carbon_result_thrift
314+ )
315+
316+ list (APPEND THRIFT_TARGETS
317+ mcrouter_hello_goodbye_thrift
318+ mcrouter_hello_goodbye_thrift
319+ mcrouter_carbon_test_thrift
320+ )
321+ endif ()
322+
323+ # Add source include directories to thrift targets
324+ # Generated thrift code includes headers like <mcrouter/lib/carbon/Keys.h>
325+ foreach (thrift_target ${THRIFT_TARGETS} )
256326 target_include_directories (${thrift_target}
257327 PUBLIC
258328 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } >
@@ -270,7 +340,9 @@ set(MCROUTER_LIB_SOURCES
270340 mcrouter/lib/Clocks.cpp
271341 mcrouter/lib/Compression.cpp
272342 mcrouter/lib/CompressionCodecManager.cpp
343+ mcrouter/lib/DynamicUtil.cpp
273344 mcrouter/lib/FailoverErrorsSettingsBase.cpp
345+ mcrouter/lib/FiberLocalInternal.cpp
274346 mcrouter/lib/IOBufUtil.cpp
275347 mcrouter/lib/IovecCursor.cpp
276348 mcrouter/lib/Lz4CompressionCodec.cpp
@@ -293,6 +365,7 @@ set(MCROUTER_LIB_SOURCES
293365 mcrouter/lib/carbon/ReplyCommon.cpp
294366 mcrouter/lib/carbon/RequestCommon.cpp
295367 mcrouter/lib/carbon/Result.cpp
368+ mcrouter/lib/carbon/connection/ExternalCarbonConnectionImpl.cpp
296369
297370 # Config
298371 mcrouter/lib/config/ConfigPreprocessor.cpp
@@ -353,6 +426,12 @@ set(MCROUTER_LIB_SOURCES
353426 mcrouter/lib/network/gen/CommonMessagesThrift.cpp
354427 mcrouter/lib/network/gen/MemcacheMessages.cpp
355428 mcrouter/lib/network/gen/MemcacheMessagesThrift.cpp
429+ mcrouter/lib/network/gen/MemcacheRouterInfo.cpp
430+ mcrouter/lib/network/gen/MemcacheRouterInfo-AllFastestRoute.cpp
431+ mcrouter/lib/network/gen/MemcacheRouterInfo-BuildExtraProvider.cpp
432+ mcrouter/lib/network/gen/MemcacheRouterInfo-ExternTemplate.cpp
433+ mcrouter/lib/network/gen/MemcacheRouterInfo-FailoverRoute.cpp
434+ mcrouter/lib/network/gen/MemcacheRouterInfo-HashRoute.cpp
356435)
357436
358437add_library (mcrouter_lib ${MCROUTER_LIB_SOURCES} )
@@ -566,8 +645,10 @@ install(
566645if (BUILD_TESTS)
567646 enable_testing ()
568647 find_package (GTest CONFIG REQUIRED )
648+ include (GoogleTest )
569649
570- # Add test subdirectories when ready
571- # add_subdirectory(mcrouter/lib/test)
572- # add_subdirectory(mcrouter/test)
650+ add_subdirectory (mcrouter/lib/test )
651+ add_subdirectory (mcrouter/lib/network/test )
652+ add_subdirectory (mcrouter/routes/test )
653+ add_subdirectory (mcrouter/test )
573654endif ()
0 commit comments