Default mode skips bulk data, network shaping, SSH/rsync
comparisons, and feature tests. --full restores original
31-test suite with LAN profiling and all benchmarks.
Default profile changed from "LAN" to "Unlimited" in light mode
SSH FileNotFoundError handled gracefully (ssh not installed)
What looks good
Clean separation: light mode for CI (fast), full mode for local testing
generate_test_files(full=False) skips bulk generation — tests run in ~0.3s
Feature tests correctly gated behind if full: — no false failures in CI
SSH preflight handles missing ssh binary without crashing
netem_apply only called when is_limited and full — correct for Unlimited profile
Minor suggestions (non-blocking)
CI: Light mode only tests basic transfer (4 cases). Consider adding at least one feature test (e.g., --delete) to CI for more coverage.
netem_reset(): In light mode, netem_reset() is never called (rsync section skipped). If a previous full run left netem rules, they persist. Not an issue in CI (fresh container), but worth noting for local use.
Safe to merge.
## PR Review
**Verdict: PASS** — Clean refactoring for fast CI
**Files reviewed:** 2 (ci.yaml, test.py)
**Commits:** 4
---
### Changes
- Adds `--full` flag to `test.py`; default mode runs 4 fast tests (~0.3s)
- CI workflow now runs `python3 test.py` (light mode)
- `TEST_CASES` → `TEST_CASES_FULL` + `TEST_CASES_LIGHT` (4 cases: Standard, Compression, Chunk Serialization, All combined)
- `SSH_CASES` → `SSH_CASES_FULL` + `SSH_CASES_LIGHT` (1 case: basic SSH)
- `RSYNC_CASES` → `RSYNC_CASES_FULL` + `RSYNC_CASES_LIGHT` (empty)
- Feature tests (dry-run, archive, exclude, progress, bwlimit, chunk-size, delete, SSH features) only run in `--full` mode
- Light mode skips bulk file generation (no 25MB), network emulation, rsync benchmarks
- Default profile changed from "LAN" to "Unlimited" in light mode
- SSH `FileNotFoundError` handled gracefully (ssh not installed)
### What looks good
- Clean separation: light mode for CI (fast), full mode for local testing
- `generate_test_files(full=False)` skips bulk generation — tests run in ~0.3s
- Feature tests correctly gated behind `if full:` — no false failures in CI
- SSH preflight handles missing ssh binary without crashing
- `netem_apply` only called when `is_limited and full` — correct for Unlimited profile
### Minor suggestions (non-blocking)
- **CI**: Light mode only tests basic transfer (4 cases). Consider adding at least one feature test (e.g., `--delete`) to CI for more coverage.
- **netem_reset()**: In light mode, `netem_reset()` is never called (rsync section skipped). If a previous full run left netem rules, they persist. Not an issue in CI (fresh container), but worth noting for local use.
Safe to merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a --full flag to test.py to separate fast CI-safe tests from the full benchmark suite.
PR Review
Verdict: PASS — Clean refactoring for fast CI
Files reviewed: 2 (ci.yaml, test.py)
Commits: 4
Changes
--fullflag totest.py; default mode runs 4 fast tests (~0.3s)python3 test.py(light mode)TEST_CASES→TEST_CASES_FULL+TEST_CASES_LIGHT(4 cases: Standard, Compression, Chunk Serialization, All combined)SSH_CASES→SSH_CASES_FULL+SSH_CASES_LIGHT(1 case: basic SSH)RSYNC_CASES→RSYNC_CASES_FULL+RSYNC_CASES_LIGHT(empty)--fullmodeFileNotFoundErrorhandled gracefully (ssh not installed)What looks good
generate_test_files(full=False)skips bulk generation — tests run in ~0.3sif full:— no false failures in CInetem_applyonly called whenis_limited and full— correct for Unlimited profileMinor suggestions (non-blocking)
--delete) to CI for more coverage.netem_reset()is never called (rsync section skipped). If a previous full run left netem rules, they persist. Not an issue in CI (fresh container), but worth noting for local use.Safe to merge.