You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rewrite ParallelBuildChainTest and fix random failures #609
The ParallelBuildChainTest has random failing test methods. Its
implementation relies on specific timing behavior. It spawns builds for
different projects or the workspace that take a specific (absolute,
hard-coded) amount of time to finish. This has two drawbacks:
1. It induces a race conditions, as whenever execution times exceed
these amounts of time (e.g., due to slow infrastructure), the tests will
randomly fail.
2. The tests spent much time for unnecessary busy waiting making them
require more time / resources than necessary.
This change addresses the issues by not relying on builds to finish but
on builds to be started. This is sufficient, as the tests are supposed
to validate under which circumstances parallel builds are allowed or
expected.
To this end, the test now uses either immediately finishing builds or by
making them run for a very long time. The long running builds will only
be validated regarding whether they have started and will be explicitly
aborted when the actual test has finished. This removes the necessity to
rely on specific timing behavior. Only one test case validating that a
build is not started uses a timeout to wait for, as a blocked build
cannot be detected easily.
This change also adds two additional test cases reflecting further
combinations of scheduling rules and build configurations.
Fixes#609.
0 commit comments