Run the LiveView test files in parallel closes #611 #616
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
security
technical improvement
UX Improvement
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
local-it/mitgliederverwaltung!616
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue/mitgliederverwaltung-611"
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?
closes #611
Description of the implemented changes
The changes were:
Run the LiveView test files in parallel: most of the remaining serial block of the fast suite were LiveView test modules whose only serial reason was "flip deferred". They are now hardened against other tests' rows and host load and run async; every module that stays serial names its actual reason.
What has been changed?
Definition of Done
Code Quality
Accessibility
Testing
Additional Notes
Fast suite (
just test-fast) on the same 4 vCPU host, seeds 101/202/303, no other test run on the host, medians:30 test modules moved from serial to async (74.8 s of serial time). Every flipped module passed
--repeat-until-failure 5on its own and five seeded full-suite runs per batch, with no Postgres deadlock and no lock wait of 1 s or more. Under parallel load from another worktree on the same host the suite takes 180–215 s.Modules that stay serial after the async proof:
index_sort_atom_property_test(asserts the VM-wide atom count),index_value_control_test,index_bulk_scope_test,index_filter_chips_test,index_filter_input_hardening_test(assert_patchtimed out under heavy host load; the hardening is kept), andmember_field_live/index_component_test(a lock wait on the settings row; settings isolation is #540's scope). Re-flipping the fourassert_patchmodules with a longer patch timeout is a follow-up.Deliberate deviation: six overview test modules of the same
assert_patchclass stay async with a 1 s patch timeout instead of going back to serial; they never failed themselves and held five full runs under heavy load.No product code changes; the diff is limited to
test/anddocs/.Larger commits: "Keep LiveView tests independent of other tests' rows and of host load" and "Run the LiveView test modules async and name why the rest stay serial" each touch many test files (the first rewrites fixtures and assertions, the second is mostly one
use … async:line or one# Serial:comment per file).LiveView modules that stay serial because of global state or the settings row (handover to #540):
member_live/vereinfacht_sync_notice_test(mutates OS env),member_live/index_sort_atom_property_test(VM-wide atom count),member_live/index_groups_performance_test(global telemetry handler),member_live/index_filter_input_hardening_logging_test(captures logs),member_live/index_boolean_filter_performance_test(wall-clock budget),member_field_live/index_component_test,member_live/form_error_handling_testandjoin_request_live/show_test(update the settings row); unchanged:global_settings_live_test,global_settings_live_config_test,join_live_test,join_live_email_failure_test,auth/link_oidc_account_live_logging_test,member_live/index/setup_test.