Testing: missing end-to-end integration tests for delta, multiprocessing, and server pipeline #134
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Several critical features lack end-to-end integration tests:
1. Delta transfer (finding 23)
No integration test exercises the full delta pipeline: client sends file → server computes signature → client computes delta → server applies it. Only unit tests for the delta algorithm exist.
2. Server pipeline (multiprocessing)
multiprocessing.chas only 42% coverage and key functions likewrite_thread(),receive_chunk_enqueue(), andreceive_thread()are completely uncovered. No integration test exercises the multithreaded server path.3. Full client pipeline stress test
No stress test exercises: scanner → loader → sender (client) or receiver → writer (server) in realistic conditions.
test_stress.conly tests the queue data structure.4. Symlink transfer (finding 24)
No integration test verifies that symlinks are transferred correctly (relative, absolute, broken, within tree, outside tree).
5. Many small files
No test transfers a large number of small files (e.g., node_modules pattern) to catch edge cases in chunking, compression context reuse, and overhead.
6. Interrupted transfer
No test simulates connection drop and verifies --partial behavior.
7. IPv6 (finding 26)
No integration test uses IPv6 (::1) even though TCP transport has IPv6 support.
8. Large files (>2GB)
No test transfers files larger than 2GB to verify 64-bit offset handling, large chunk sizes.
Suggested tests
Labels: testing, integration, reliability