test: add --full flag for lightweight default mode #18

Merged
TapTap merged 5 commits from ci-test-light into main 2026-07-18 16:33:02 +02:00
Owner

Adds a --full flag to test.py to separate fast CI-safe tests from the full benchmark suite.

Adds a --full flag to test.py to separate fast CI-safe tests from the full benchmark suite.
TapTap added 1 commit 2026-07-18 16:02:57 +02:00
test: add --full flag, default mode runs 5 fast tests (~0.3s)
CI / build-and-test (push) Successful in 4s
CI / build-and-test (pull_request) Successful in 4s
8f2205dd30
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.
TapTap added 1 commit 2026-07-18 16:06:25 +02:00
ci: add integration tests (light mode)
CI / build-and-test (push) Failing after 4s
CI / build-and-test (pull_request) Failing after 4s
e9554c1e69
TapTap added 1 commit 2026-07-18 16:08:28 +02:00
fix: handle missing ssh in preflight checks
CI / build-and-test (push) Failing after 4s
CI / build-and-test (pull_request) Failing after 4s
2c904bfac5
TapTap added 1 commit 2026-07-18 16:10:55 +02:00
fix: skip netem_reset when no sudo (light mode)
CI / build-and-test (push) Successful in 26s
CI / build-and-test (pull_request) Successful in 27s
e408b08443
Author
Owner

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_CASESTEST_CASES_FULL + TEST_CASES_LIGHT (4 cases: Standard, Compression, Chunk Serialization, All combined)
  • SSH_CASESSSH_CASES_FULL + SSH_CASES_LIGHT (1 case: basic SSH)
  • RSYNC_CASESRSYNC_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.

## 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.
TapTap added 1 commit 2026-07-18 16:31:59 +02:00
add docker as dependency
CI / build-and-test (push) Successful in 27s
CI / build-and-test (pull_request) Successful in 26s
478bdd6fe6
TapTap merged commit a3acf4b8b6 into main 2026-07-18 16:33:02 +02:00
TapTap deleted branch ci-test-light 2026-07-18 16:33:08 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#18