fix(ci): restore network develop CI (load-tests, vcpkg, X509 100y, logger OpenSSL)#1167
Open
kcenon wants to merge 3 commits into
Open
fix(ci): restore network develop CI (load-tests, vcpkg, X509 100y, logger OpenSSL)#1167kcenon wants to merge 3 commits into
kcenon wants to merge 3 commits into
Conversation
The Network Load Tests workflow (Ubuntu / macOS / Windows) configured without -DBUILD_SAMPLES=OFF. BUILD_SAMPLES defaults ON in the root CMakeLists, so the build compiled samples/, which were not migrated to the facade Result<T> API (#952) and fail to compile (e.g. basic_usage.cpp treats the Result return of create_server/create_client as a pointer). ninja stops before the actual load-test binaries (tcp/udp/websocket_load_test) are built, so all three jobs fail. Add -DBUILD_SAMPLES=OFF to the three Configure CMake steps, matching the sibling workflows (ci.yml, integration-tests.yml, coverage.yml, sanitizers.yml) which already pass it. Samples are unrelated to load testing. The samples' Result<T> migration and a concepts_example MSVC header omission remain as separate real-code follow-ups, out of scope for this CI fix.
Contributor
Coverage Report
Coverage DetailsFull HTML report is available as a build artifact. |
…OpenSSL) Three develop CI build failures resolved alongside the Network Load Tests samples fix: 1. CI (ci.yml) vcpkg install failed on every platform. The kcenon/vcpkg-registry baseline in vcpkg-configuration.json was pinned to a3c5d7c8 (2026-04-09), before the registry corrected common_system's v0.2.0 SHA512 (#88, 2026-05-03); vcpkg fetched a portfile with the stale hash and rejected the tarball ("unexpected hash"). Bump the baseline to 1be52cbd (registry HEAD), which carries the correct hash. 2. Integration Tests (windows) failed to compile. mock_tls_socket.cpp computed a 100-year validity as `60L*60*24*365*100` (~3.15e9 s), overflowing a 32-bit long on LLP64/Windows (constexpr overflow error). Use X509_time_adj_ex (day-based) which sidesteps the long-seconds limit and is cross-platform. 3. Integration Tests (ubuntu Release) failed to link network_messaging_server_lifecycle_test: logger_system's HMAC integrity policy uses OpenSSL EVP_MAC, but the network_add_messaging_test helper did not link libcrypto, producing undefined references. Add OpenSSL::Crypto (guarded by TARGET_NAME_IF_EXISTS) to that helper, matching the explicit OpenSSL links already present on the TLS test targets.
The previous $<TARGET_NAME_IF_EXISTS:OpenSSL::Crypto> guard linked nothing because network's find_package(OpenSSL) is gated behind BUILD_TLS_SUPPORT, leaving OpenSSL::Crypto undefined for the messaging tests' generate step. Call find_package(OpenSSL 3.0.0 REQUIRED) inside network_add_messaging_test and link OpenSSL::Crypto unconditionally so logger_system's EVP_MAC symbols (rotating_file_writer compute_hmac) resolve at link time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Restore network_system's develop CI to green. Beyond the original Network Load
Tests samples fix, this resolves the three build failures that have kept
CIand
Integration Testsred on develop since 2026-05-21.Change type: fix(ci) — build config + one workflow + one test source.
Why / Where
Network Load Tests(3 OS) buildBUILD_SAMPLESdefaults ON; un-migrated samples fail to compile-DBUILD_SAMPLES=OFFin the 3 Configure steps (network-load-tests.yml)CIvcpkg install (all platforms)vcpkg-configuration.jsonregistry baselinea3c5d7c8(2026-04-09) predates the registry SHA512 correction (#88) →kcenon-common-systemv0.2.0 "unexpected hash"1be52cbd(registry HEAD)Integration Testswindowsmock_tls_socket.cpp100-year validity60L*60*24*365*100(~3.15e9) overflows 32-bitlongon WindowsX509_time_adj_ex(day-based)Integration Testsubuntu Release linknetwork_messaging_server_lifecycle_testlinks logger, whose HMAC integrity policy needs OpenSSLEVP_MAC_*, but thenetwork_add_messaging_testhelper didn't link libcryptoOpenSSL::Cryptoto the helperHow (verification)
portfile at baseline
1be52cbd.X509_time_adj_ex(notAfter, 365*100, 0, nullptr)sets a 100-yearvalidity in day units, no
long-seconds overflow on any platform.$<TARGET_NAME_IF_EXISTS:OpenSSL::Crypto>links libcrypto for thelogger-consuming messaging tests (the TLS tests already link it explicitly).
CIandIntegration Testsruns going green.Notes: the
doc-audit.ymlstartup_failure is fixed separately (#1168). Theunderlying logger OpenSSL propagation (logger should export
OpenSSL::Cryptoas a public/interface dependency) is a logger-side follow-up; this PR fixes it
consumer-side to unblock network CI now.
Relates to #964 (v1.0 readiness), Relates to #1165.