Refactor: thread-safe per-process state and add tests
Major changes: - Move child state from global variable to server config (reqin_log_server_conf_t) - Add reqin_log_create_server_conf() for proper per-server initialization - Fix thread safety for worker/event MPMs - Add cmocka unit tests (test_module_real.c) - Add Python integration tests (test_integration.py) - Update CI workflow and Dockerfiles for test execution - Fix: Remove child_exit hook (not in architecture.yml) Tests: - Unit tests: JSON escaping, ISO8601 formatting, header truncation - Integration tests: basic_logging, header_limits, socket_unavailable, socket_loss Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@ -7,30 +7,25 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
# Find required packages
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(CMOCKA REQUIRED cmocka)
|
||||
pkg_check_modules(APR REQUIRED apr-1)
|
||||
pkg_check_modules(APRUTIL REQUIRED apr-util-1)
|
||||
|
||||
# Include directories
|
||||
include_directories(${CMOCKA_INCLUDE_DIRS})
|
||||
include_directories(${APR_INCLUDE_DIRS})
|
||||
include_directories(${APRUTIL_INCLUDE_DIRS})
|
||||
include_directories(/usr/include/httpd)
|
||||
include_directories(/usr/include/apr-1)
|
||||
|
||||
# Test executable
|
||||
add_executable(test_json_serialization tests/unit/test_json_serialization.c)
|
||||
target_link_libraries(test_json_serialization ${CMOCKA_LIBRARIES} m)
|
||||
|
||||
add_executable(test_header_handling tests/unit/test_header_handling.c)
|
||||
target_link_libraries(test_header_handling ${CMOCKA_LIBRARIES} m)
|
||||
|
||||
add_executable(test_config_parsing tests/unit/test_config_parsing.c)
|
||||
target_link_libraries(test_config_parsing ${CMOCKA_LIBRARIES} m)
|
||||
# Test executable - Real module tests (testing actual implementation)
|
||||
add_executable(test_module_real tests/unit/test_module_real.c)
|
||||
target_link_libraries(test_module_real ${CMOCKA_LIBRARIES} ${APR_LIBRARIES} ${APRUTIL_LIBRARIES} m)
|
||||
|
||||
# Enable testing
|
||||
enable_testing()
|
||||
add_test(NAME JsonSerializationTest COMMAND test_json_serialization)
|
||||
add_test(NAME HeaderHandlingTest COMMAND test_header_handling)
|
||||
add_test(NAME ConfigParsingTest COMMAND test_config_parsing)
|
||||
add_test(NAME RealModuleTest COMMAND test_module_real)
|
||||
|
||||
# Custom target for running tests
|
||||
add_custom_target(run_tests
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
|
||||
DEPENDS test_json_serialization test_header_handling test_config_parsing
|
||||
DEPENDS test_module_real
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user