b179e6f6cf
CI / lint (push) Failing after 3s
CI / build-and-test (push) Has been skipped
CI / sanitizers (address) (push) Has been skipped
CI / coverage (push) Has been skipped
CI / valgrind (push) Has been skipped
CI / lint (pull_request) Failing after 2s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
Add unit tests for previously untested modules (protocol, data, metadata, file, glob), robustness tests for deserialization of malformed inputs, thread safety stress tests, property-based roundtrip tests, and 6 fuzz targets. Update CI with CTest integration, coverage reporting, and valgrind memory checking. New test files: - test_data.c: Data type lifecycle (5 tests) - test_protocol.c: Protocol I/O roundtrips and error paths (9 tests) - test_metadata.c: Metadata serialization roundtrips (6 tests) - test_file.c: File operations and send/receive (12 tests) - test_glob.c: Glob pattern matching (10 tests) - test_robustness.c: Malformed input handling for chunk/delta/protocol (11 tests) - test_stress.c: MPMC queue stress, backpressure, rapid create/destroy (3 tests) - test_property.c: Compress, delta, chunk, glob roundtrip properties (4 tests) - tests/fuzz/: 6 libFuzzer targets for deserialization functions Extended existing tests: - test_config.c: config_send/config_receive roundtrip via fork+pipe - test_shared_utils.c: mkdir_r, glob_match, delete_extras Infrastructure: - CTest integration in CMakeLists.txt - Coverage support (-DENABLE_COVERAGE=ON) - Fuzz target support (-DENABLE_FUZZ=ON) - CI: coverage, valgrind, address sanitizer jobs - Fixed MPMC stress test race condition (cnd_signal -> cnd_broadcast)
55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
#include "test_array_list.h"
|
|
#include "test_chunk.h"
|
|
#include "test_compression.h"
|
|
#include "test_config.h"
|
|
#include "test_data.h"
|
|
#include "test_delta.h"
|
|
#include "test_file.h"
|
|
#include "test_glob.h"
|
|
#include "test_metadata.h"
|
|
#include "test_property.h"
|
|
#include "test_protocol.h"
|
|
#include "test_queue.h"
|
|
#include "test_robustness.h"
|
|
#include "test_scanner.h"
|
|
#include "test_shared_utils.h"
|
|
#include "test_stress.h"
|
|
#include "test_utils.h"
|
|
#include <stdio.h>
|
|
|
|
// Define global test state variables
|
|
int tests_run = 0;
|
|
int tests_failed = 0;
|
|
bool current_test_failed = false;
|
|
|
|
int main() {
|
|
printf("\033[1;36m=== RUNNING UNIT TESTS ===\033[0m\n\n");
|
|
|
|
RUN_TEST(test_queue);
|
|
RUN_TEST(test_array_list);
|
|
RUN_TEST(test_shared_utils);
|
|
RUN_TEST(test_chunk);
|
|
RUN_TEST(test_config);
|
|
RUN_TEST(test_compression);
|
|
RUN_TEST(test_scanner);
|
|
RUN_TEST(test_delta);
|
|
RUN_TEST(test_data);
|
|
RUN_TEST(test_protocol);
|
|
RUN_TEST(test_metadata);
|
|
RUN_TEST(test_glob);
|
|
RUN_TEST(test_file);
|
|
RUN_TEST(test_robustness);
|
|
RUN_TEST(test_stress);
|
|
RUN_TEST(test_property);
|
|
|
|
printf("\n\033[1;36m=== TEST SUMMARY ===\033[0m\n");
|
|
printf("Total Tests Run: %d\n", tests_run);
|
|
if (tests_failed > 0) {
|
|
printf("Status: \033[1;31m%d FAILED\033[0m\n", tests_failed);
|
|
return 1;
|
|
} else {
|
|
printf("Status: \033[1;32mALL PASSED\033[0m\n");
|
|
return 0;
|
|
}
|
|
}
|