Skip to content
Snippets Groups Projects

[test] Regression Test Improvements

Merged Ursa (9R) requested to merge ursa/regression into develop

In the last week we've seen some flakiness in the regression tests due to timeouts on the block creation requests. This will make the tests exit once one is failed in the case of a race, so retrying need not wait on all the tests to finish. Also will fiddle with a few parameters while this is in draft to see if we can speed up the full job and/or reduce flakiness.

Addendum - after some test runs, this makes changes to slow test blocks down by 50%, but increase the parallelism. Additionally it starts the longest running tests first to avoid waiting on the long tail at the end of the run. The end result appears both faster total execution and less flaky.

Edited by Ursa (9R)

Merge request reports

Merge request pipeline #1095925396 passed

Merge request pipeline passed for 943f4cd0

Test coverage 52.50% (-0.10%) from 1 job
Deployed to integ‎ration‎ 1 year ago

Merged by Son of OdinSon of Odin 1 year ago (Dec 5, 2023 1:18pm UTC)

Loading

Pipeline #1095959641 failed

Pipeline failed for c0dcf8a3 on develop

Test coverage 52.60% (-0.10%) from 1 job
Skipped deployment to integ‎ration‎

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
    • Resolved by Multipartite

      [Last paragraph of the below as a summary:

      By any chance could a RUN= being set override the exit-on-failure,
      such as being able to do RUN=/ or RUN=yaml if wanting to check everything,
      and (like currently) RUN=refunds to check every test with 'refunds' in the path without stopping early on failure?
      ]


      (Reflecting on this, unit tests (though taking less time total) come to mind; if I remember correctly, all tests in a package complete and have results displayed, but the unit tests don't move onto the next package if there are failures.)

      I comment that the RUN= variable has worked comfortably for me thus far:
      First I might run a pipeline (if not actively expecting regression test failures) or else a full make test-regression command,
      then from the initial summary of which tests failed immediately have a guess about the context
      (e.g. if only three .yaml files failed and all with 'refunds' in the path and so suggesting code specificity there,
      or if 40-or-so failed suggesting that I've introduced a more basic error somewhere),
      then one-by-one with RUN= update a regression test (or/and update main code which affects it)
      until satisfied.

      (For races there's the perspective of being able to know at the start which ones have been able to pass,
      thus being able to rule out every race by checking one by one with RUN=,
      rather than needing to check all each time since not knowing which ones to check,
      possibly failing again before the later tests of interest due to an earlier case already known to be a race,
      or else needing to manually go section-by-section with RUN= in order to skip the earlier ones (more tedious than having checking everything once, and/or with TIME_FACTOR=).)

      I can imagine it could be good for GitLab pipeline resource use to quit as soon as there's any failure,
      but upon such a pipeline failure I might still like to have a way to leave a full make test-regression running
      (while doing something else in that time)
      to get a full summary.

      By any chance could a RUN= being set override the exit-on-failure,
      such as being able to do RUN=/ or RUN=yaml if wanting to check everything,
      and (like currently) RUN=refunds to check every test with 'refunds' in the path without stopping early on failure?

  • Ursa (9R) added 3 commits

    added 3 commits

    • 63ea3a00 - 1 commit from branch develop
    • b3dfcdd0 - [test] Regression Tests Fail Fast
    • cef4f102 - execute longest tests first, only abort early on merge request pipelines

    Compare with previous version

  • Ursa (9R) marked this merge request as ready

    marked this merge request as ready

  • Ursa (9R) changed the description

    changed the description

  • Ursa (9R) changed title from [test] Regression Tests Fail Fast to [test] Regression Test Improvements

    changed title from [test] Regression Tests Fail Fast to [test] Regression Test Improvements

  • Multipartite resolved all threads

    resolved all threads

  • Asmund THORSec approved this merge request

    approved this merge request

  • Ursa (9R) added 3 commits

    added 3 commits

    • 87d4dfa8 - 1 commit from branch develop
    • 3c23ae14 - [test] Regression Tests Fail Fast
    • 05ac6d82 - execute longest tests first, only abort early on merge request pipelines

    Compare with previous version

  • Author Maintainer

    Seems the last run of this flaked again - going to revert the parallelism / block speed changes and just keep the change to abort fast and run long tests first for now.

    EDIT: Sorry for the thrash, dug a bit deeper into these and will have a more complete fix soon - timeouts due to long invariant checks.

    Edited by Ursa (9R)
  • Ursa (9R) added 2 commits

    added 2 commits

    • 4d78b472 - [test] Regression Tests Fail Fast
    • 596c7139 - execute longest tests first, only abort early on merge request pipelines

    Compare with previous version

  • Ursa (9R) marked this merge request as draft

    marked this merge request as draft

  • Son of Odin approved this merge request

    approved this merge request

  • Asmund THORSec approved this merge request

    approved this merge request

  • Ursa (9R) added 5 commits

    added 5 commits

    Compare with previous version

  • Ursa (9R) added 1 commit

    added 1 commit

    Compare with previous version

  • Ursa (9R) marked this merge request as ready

    marked this merge request as ready

  • Asmund THORSec
  • Asmund THORSec approved this merge request

    approved this merge request

  • Son of Odin approved this merge request

    approved this merge request

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading