test(operations): organize local-operation regression owners - #1065
Conversation
Scope and preservationBaseline:
The shared waiter's condition borrow still ends before pumping the default GLib context. Caller contracts remain distinct:
Operation-handle lifetimes, final result assertions, and event ordering remain unchanged. Final local validationRisk scope includes shared asynchronous test fixtures, all local-operation callers, and separately named filesystem/security regressions. Full pinned Rust and canonical E2E were chosen rather than relying solely on the targeted run. Using rootless Podman, private Xvfb/private D-Bus, Rust 1.98.1 / GTK 4.14.5, verified image
Exact final inventory collection: podman run --rm --userns=keep-id --user "$(id -u):$(id -g)" \
--mount "type=bind,source=$PWD,target=/workspace" --workdir /workspace \
--env CARGO_HOME=/workspace/target/quality-container/cargo \
670ee0e9b62df8729442d6708bf06f1d968576ffa403f567aef6f597075f3e8c \
python3 scripts/test-headless.py adapters::local_operations --locked \
--target-dir /workspace/target/quality-container/build \
--config profile.dev.debug=0 --config build.incremental=false -j 2 -- --listEarlier targeted native command: No required local gate omitted. The first full Rust run failed solely in the unchanged slow-click UI fixture (1,731 passed / 1 failed / 18 ignored). That failure was diagnosed and fixed separately in #1060/#1063, not skipped or retried unchanged until green. Final validation above includes the merged fix. GitHub CI is pending at publication. Measurements and residual dispositionCodeScene CLI 1.0.41, final formatted code;
The existing healthy owners' original code is unchanged; their lower file scores after adding cases are disclosed, not hidden. Retained case-level debt is explicitly deferred from this bounded pass, not suppressed or converted into extra closure requirements. Archive-specific findings and production branching remain outside this unit. Stop condition: merge + Cloud verification of the parent/owners and preserved coverage; do not require every owner to reach 10. Active overlap: #1061 and #320 add tests to the parent file. Their feature code is not included here; retain their new tests when integrating, guided by the new ownership map. #187 touches the unchanged trash-capabilities owner. |
|
Full CI https://github.com/lgse/strata/actions/runs/35060079635 passed on |
Description
Organize 78 unchanged local-operation test cases into nine responsibility modules and the existing deletion/restore owners. Keep shared fixtures and both script-facing manual deletion benchmarks in the parent, and consolidate three event-pump loops without changing their terminal conditions.
Document the ownership/filter map so filesystem races, replacement, cancellation, native-name handling, and conflict behavior remain discoverable. No production code or test assertions change. This is a bounded organization/fixture pass, not removal of every retained finding; measurements and preservation evidence are in the validation comment.
Visual evidence
N/A — test organization and shared fixture code only; no application UI changes.
How to test
docs/e2e-testing.mdto locate replacement, deletion, restore, and undo regressions.scripts/benchmark-delete.shstill addresses the original parent-module benchmark names, and inspect the shared waiter callers' distinct terminal sets.Expected result: The same regression scenarios and benchmark entry points remain available, with clearer owners and one event-pump mechanism.
Related issue
Addresses unit 26 of #763; keep the umbrella open and check off this unit only after merge and Cloud verification.
Based on merged #1063, which fixed the unrelated full-suite blocker. Open #1061 and #320 also add cases to the parent test file; preserve their new coverage when integrating those features, using the documented owners rather than duplicating existing cases.