Skip to content

Commit 8aee459

Browse files
authored
test(quic): add unit tests for 9 QUIC protocol modules (#959)
Add dedicated unit tests for QUIC modules that previously lacked focused unit-level coverage: - congestion_controller: NewReno algorithm, slow start, recovery - connection_id_manager: CID lifecycle, rotation, retirement - ecn_tracker: ECN validation, congestion signal detection - flow_control: send/receive windows, MAX_DATA generation - loss_detector: packet tracking, PTO, space discard - packet: parsing, serialization, round-trip for all header types - rtt_estimator: EWMA algorithm, min RTT, PTO calculation - stream: state transitions, flow control, send/receive ops - stream_manager: stream creation, limits, cleanup Closes #954
1 parent ea816d5 commit 8aee459

10 files changed

Lines changed: 4002 additions & 0 deletions

tests/CMakeLists.txt

Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3465,6 +3465,303 @@ network_gtest_discover_tests(network_quic_transport_params_test
34653465
)
34663466
message(STATUS "QUIC transport params unit tests enabled")
34673467

3468+
##################################################
3469+
# QUIC Packet Unit Tests (Issue #954)
3470+
##################################################
3471+
3472+
add_executable(network_quic_packet_unit_test
3473+
unit/quic_packet_test.cpp
3474+
)
3475+
3476+
target_link_libraries(network_quic_packet_unit_test PRIVATE
3477+
network_system
3478+
GTest::gtest
3479+
GTest::gtest_main
3480+
Threads::Threads
3481+
)
3482+
3483+
setup_asio_integration(network_quic_packet_unit_test)
3484+
3485+
if(COMMON_SYSTEM_INCLUDE_DIR)
3486+
target_include_directories(network_quic_packet_unit_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3487+
target_compile_definitions(network_quic_packet_unit_test PRIVATE WITH_COMMON_SYSTEM)
3488+
endif()
3489+
3490+
set_target_properties(network_quic_packet_unit_test PROPERTIES
3491+
CXX_STANDARD 20
3492+
CXX_STANDARD_REQUIRED ON
3493+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3494+
)
3495+
3496+
network_gtest_discover_tests(network_quic_packet_unit_test
3497+
DISCOVERY_TIMEOUT 60
3498+
)
3499+
message(STATUS "QUIC packet unit tests enabled")
3500+
3501+
##################################################
3502+
# QUIC RTT Estimator Unit Tests (Issue #954)
3503+
##################################################
3504+
3505+
add_executable(network_quic_rtt_estimator_test
3506+
unit/quic_rtt_estimator_test.cpp
3507+
)
3508+
3509+
target_link_libraries(network_quic_rtt_estimator_test PRIVATE
3510+
network_system
3511+
GTest::gtest
3512+
GTest::gtest_main
3513+
Threads::Threads
3514+
)
3515+
3516+
setup_asio_integration(network_quic_rtt_estimator_test)
3517+
3518+
if(COMMON_SYSTEM_INCLUDE_DIR)
3519+
target_include_directories(network_quic_rtt_estimator_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3520+
target_compile_definitions(network_quic_rtt_estimator_test PRIVATE WITH_COMMON_SYSTEM)
3521+
endif()
3522+
3523+
set_target_properties(network_quic_rtt_estimator_test PROPERTIES
3524+
CXX_STANDARD 20
3525+
CXX_STANDARD_REQUIRED ON
3526+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3527+
)
3528+
3529+
network_gtest_discover_tests(network_quic_rtt_estimator_test
3530+
DISCOVERY_TIMEOUT 60
3531+
)
3532+
message(STATUS "QUIC RTT estimator unit tests enabled")
3533+
3534+
##################################################
3535+
# QUIC Flow Control Unit Tests (Issue #954)
3536+
##################################################
3537+
3538+
add_executable(network_quic_flow_control_test
3539+
unit/quic_flow_control_test.cpp
3540+
)
3541+
3542+
target_link_libraries(network_quic_flow_control_test PRIVATE
3543+
network_system
3544+
GTest::gtest
3545+
GTest::gtest_main
3546+
Threads::Threads
3547+
)
3548+
3549+
setup_asio_integration(network_quic_flow_control_test)
3550+
3551+
if(COMMON_SYSTEM_INCLUDE_DIR)
3552+
target_include_directories(network_quic_flow_control_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3553+
target_compile_definitions(network_quic_flow_control_test PRIVATE WITH_COMMON_SYSTEM)
3554+
endif()
3555+
3556+
set_target_properties(network_quic_flow_control_test PROPERTIES
3557+
CXX_STANDARD 20
3558+
CXX_STANDARD_REQUIRED ON
3559+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3560+
)
3561+
3562+
network_gtest_discover_tests(network_quic_flow_control_test
3563+
DISCOVERY_TIMEOUT 60
3564+
)
3565+
message(STATUS "QUIC flow control unit tests enabled")
3566+
3567+
##################################################
3568+
# QUIC Stream Unit Tests (Issue #954)
3569+
##################################################
3570+
3571+
add_executable(network_quic_stream_unit_test
3572+
unit/quic_stream_test.cpp
3573+
)
3574+
3575+
target_link_libraries(network_quic_stream_unit_test PRIVATE
3576+
network_system
3577+
GTest::gtest
3578+
GTest::gtest_main
3579+
Threads::Threads
3580+
)
3581+
3582+
setup_asio_integration(network_quic_stream_unit_test)
3583+
3584+
if(COMMON_SYSTEM_INCLUDE_DIR)
3585+
target_include_directories(network_quic_stream_unit_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3586+
target_compile_definitions(network_quic_stream_unit_test PRIVATE WITH_COMMON_SYSTEM)
3587+
endif()
3588+
3589+
set_target_properties(network_quic_stream_unit_test PROPERTIES
3590+
CXX_STANDARD 20
3591+
CXX_STANDARD_REQUIRED ON
3592+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3593+
)
3594+
3595+
network_gtest_discover_tests(network_quic_stream_unit_test
3596+
DISCOVERY_TIMEOUT 60
3597+
)
3598+
message(STATUS "QUIC stream unit tests enabled")
3599+
3600+
##################################################
3601+
# QUIC Stream Manager Unit Tests (Issue #954)
3602+
##################################################
3603+
3604+
add_executable(network_quic_stream_manager_test
3605+
unit/quic_stream_manager_test.cpp
3606+
)
3607+
3608+
target_link_libraries(network_quic_stream_manager_test PRIVATE
3609+
network_system
3610+
GTest::gtest
3611+
GTest::gtest_main
3612+
Threads::Threads
3613+
)
3614+
3615+
setup_asio_integration(network_quic_stream_manager_test)
3616+
3617+
if(COMMON_SYSTEM_INCLUDE_DIR)
3618+
target_include_directories(network_quic_stream_manager_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3619+
target_compile_definitions(network_quic_stream_manager_test PRIVATE WITH_COMMON_SYSTEM)
3620+
endif()
3621+
3622+
set_target_properties(network_quic_stream_manager_test PROPERTIES
3623+
CXX_STANDARD 20
3624+
CXX_STANDARD_REQUIRED ON
3625+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3626+
)
3627+
3628+
network_gtest_discover_tests(network_quic_stream_manager_test
3629+
DISCOVERY_TIMEOUT 60
3630+
)
3631+
message(STATUS "QUIC stream manager unit tests enabled")
3632+
3633+
##################################################
3634+
# QUIC Loss Detector Unit Tests (Issue #954)
3635+
##################################################
3636+
3637+
add_executable(network_quic_loss_detector_unit_test
3638+
unit/quic_loss_detector_test.cpp
3639+
)
3640+
3641+
target_link_libraries(network_quic_loss_detector_unit_test PRIVATE
3642+
network_system
3643+
GTest::gtest
3644+
GTest::gtest_main
3645+
Threads::Threads
3646+
)
3647+
3648+
setup_asio_integration(network_quic_loss_detector_unit_test)
3649+
3650+
if(COMMON_SYSTEM_INCLUDE_DIR)
3651+
target_include_directories(network_quic_loss_detector_unit_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3652+
target_compile_definitions(network_quic_loss_detector_unit_test PRIVATE WITH_COMMON_SYSTEM)
3653+
endif()
3654+
3655+
set_target_properties(network_quic_loss_detector_unit_test PROPERTIES
3656+
CXX_STANDARD 20
3657+
CXX_STANDARD_REQUIRED ON
3658+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3659+
)
3660+
3661+
network_gtest_discover_tests(network_quic_loss_detector_unit_test
3662+
DISCOVERY_TIMEOUT 60
3663+
)
3664+
message(STATUS "QUIC loss detector unit tests enabled")
3665+
3666+
##################################################
3667+
# QUIC Congestion Controller Unit Tests (Issue #954)
3668+
##################################################
3669+
3670+
add_executable(network_quic_congestion_controller_test
3671+
unit/quic_congestion_controller_test.cpp
3672+
)
3673+
3674+
target_link_libraries(network_quic_congestion_controller_test PRIVATE
3675+
network_system
3676+
GTest::gtest
3677+
GTest::gtest_main
3678+
Threads::Threads
3679+
)
3680+
3681+
setup_asio_integration(network_quic_congestion_controller_test)
3682+
3683+
if(COMMON_SYSTEM_INCLUDE_DIR)
3684+
target_include_directories(network_quic_congestion_controller_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3685+
target_compile_definitions(network_quic_congestion_controller_test PRIVATE WITH_COMMON_SYSTEM)
3686+
endif()
3687+
3688+
set_target_properties(network_quic_congestion_controller_test PROPERTIES
3689+
CXX_STANDARD 20
3690+
CXX_STANDARD_REQUIRED ON
3691+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3692+
)
3693+
3694+
network_gtest_discover_tests(network_quic_congestion_controller_test
3695+
DISCOVERY_TIMEOUT 60
3696+
)
3697+
message(STATUS "QUIC congestion controller unit tests enabled")
3698+
3699+
##################################################
3700+
# QUIC ECN Tracker Unit Tests (Issue #954)
3701+
##################################################
3702+
3703+
add_executable(network_quic_ecn_tracker_test
3704+
unit/quic_ecn_tracker_test.cpp
3705+
)
3706+
3707+
target_link_libraries(network_quic_ecn_tracker_test PRIVATE
3708+
network_system
3709+
GTest::gtest
3710+
GTest::gtest_main
3711+
Threads::Threads
3712+
)
3713+
3714+
setup_asio_integration(network_quic_ecn_tracker_test)
3715+
3716+
if(COMMON_SYSTEM_INCLUDE_DIR)
3717+
target_include_directories(network_quic_ecn_tracker_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3718+
target_compile_definitions(network_quic_ecn_tracker_test PRIVATE WITH_COMMON_SYSTEM)
3719+
endif()
3720+
3721+
set_target_properties(network_quic_ecn_tracker_test PROPERTIES
3722+
CXX_STANDARD 20
3723+
CXX_STANDARD_REQUIRED ON
3724+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3725+
)
3726+
3727+
network_gtest_discover_tests(network_quic_ecn_tracker_test
3728+
DISCOVERY_TIMEOUT 60
3729+
)
3730+
message(STATUS "QUIC ECN tracker unit tests enabled")
3731+
3732+
##################################################
3733+
# QUIC Connection ID Manager Unit Tests (Issue #954)
3734+
##################################################
3735+
3736+
add_executable(network_quic_cid_manager_test
3737+
unit/quic_connection_id_manager_test.cpp
3738+
)
3739+
3740+
target_link_libraries(network_quic_cid_manager_test PRIVATE
3741+
network_system
3742+
GTest::gtest
3743+
GTest::gtest_main
3744+
Threads::Threads
3745+
)
3746+
3747+
setup_asio_integration(network_quic_cid_manager_test)
3748+
3749+
if(COMMON_SYSTEM_INCLUDE_DIR)
3750+
target_include_directories(network_quic_cid_manager_test PRIVATE ${COMMON_SYSTEM_INCLUDE_DIR})
3751+
target_compile_definitions(network_quic_cid_manager_test PRIVATE WITH_COMMON_SYSTEM)
3752+
endif()
3753+
3754+
set_target_properties(network_quic_cid_manager_test PROPERTIES
3755+
CXX_STANDARD 20
3756+
CXX_STANDARD_REQUIRED ON
3757+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
3758+
)
3759+
3760+
network_gtest_discover_tests(network_quic_cid_manager_test
3761+
DISCOVERY_TIMEOUT 60
3762+
)
3763+
message(STATUS "QUIC connection ID manager unit tests enabled")
3764+
34683765
##################################################
34693766
# Sliding Histogram Tests (Issue #873)
34703767
##################################################

0 commit comments

Comments
 (0)