Add 92 smoke tests, no_parallel marker, and two-phase parallel handling: window operators, query-and-write, query-planning, sessions, administration, diagnostic, security (auth/roles/users)#72
Conversation
a4a5118 to
c96deb4
Compare
c96deb4 to
1f88ffc
Compare
…ng: window operators, query-and-write, query-planning, sessions, administration, diagnostic, security (auth/roles/users) Smoke tests (92): window operators (28), query-and-write commands (6), query planning (4), sessions (5), system administration (13), diagnostics (18), security (18). Add no_parallel pytest marker for 14 tests that modify global server state (kill sessions/ops, set parameters, drop all users/roles): - Sessions (4): killSessions, killAllSessions, killAllSessionsByPattern, dropConnections - Server config (3): setParameter, setClusterParameter, setFeatureCompatibilityVersion - Server ops (2): killOp, fsync - Maintenance (2): logRotate, rotateCertificates - Security (3): dropAllUsersFromDatabase, dropAllRolesFromDatabase, invalidateUserCache Add pytest_collection_modifyitems hook to auto-deselect no_parallel tests under xdist. Add pytest_sessionfinish hook to run no_parallel tests sequentially after parallel phase. Add worker_id fallback fixture for running without xdist. Update README with two-phase execution docs. Signed-off-by: Fan Yang <vfanyang@amazon.com>
1f88ffc to
ef62582
Compare
|
Verified locally: two-phase parallel handling works correctly
One issue found: When Fix: check if Phase 1 report actually exists before merging. If it doesn't exist and Phase 2's does, either copy Phase 2's report as the final report or skip silently (no warning): if phase1_json and phase2_json and os.path.exists(phase2_json):
if os.path.exists(phase1_json):
_merge_json_reports(phase1_json, phase2_json)
else:
# Phase 1 didn't write a report (--json-report not passed)
# Skip merge silently — Phase 2 temp file will be cleaned up
passSame applies to JUnit XML merge. |
|
Minor: |
Closes #60