From e47e9ff3f1cbd87abfb0f361c6df4b7c99aa7979 Mon Sep 17 00:00:00 2001 From: Fletcher Dunn Date: Sun, 10 May 2026 17:22:05 -0700 Subject: [PATCH] Add 'test' version of the library The test version defines STEAMNETWORKINGSOCKETS_ENABLE_MOCK and has internal functions tests can use to mock up network environments (network adapters, gateway/NAT behaviour, etc) --- src/CMakeLists.txt | 14 ++++++++++++++ tests/CMakeLists.txt | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 65ce051..7d089e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -378,6 +378,20 @@ if (BUILD_STATIC_LIB) set_clientlib_target_properties(GameNetworkingSockets_s) endif() +# Test-only static library variant — includes the mock network framework. +# Never shipped; only built when tests are enabled. test_p2p links against +# this instead of the regular static library. +if (BUILD_TESTS AND BUILD_STATIC_LIB AND ENABLE_ICE) + add_library(GameNetworkingSockets_test_s STATIC "") + add_library(GameNetworkingSockets::static_mock ALIAS GameNetworkingSockets_test_s) + target_compile_definitions(GameNetworkingSockets_test_s INTERFACE STEAMNETWORKINGSOCKETS_STATIC_LINK) + set_clientlib_target_properties(GameNetworkingSockets_test_s) + target_compile_definitions(GameNetworkingSockets_test_s PUBLIC STEAMNETWORKINGSOCKETS_ENABLE_MOCK) + target_sources(GameNetworkingSockets_test_s PRIVATE + "steamnetworkingsockets/clientlib/steamnetworkingsockets_mock.cpp" + ) +endif() + # # Cert tool # diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 530ece0..4f1cd72 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,7 +38,7 @@ if(ENABLE_ICE) test_p2p.cpp ../examples/trivial_signaling_client.cpp) set_target_common_gns_properties( test_p2p ) - target_link_libraries(test_p2p ${GAMENETWORKINGSOCKETS_LIB}) + target_link_libraries(test_p2p GameNetworkingSockets::static_mock) add_sanitizers(test_p2p) # Publish the test script