Page MenuHomePhabricator

Workflow
Updated 561 Days AgoPublic

This is for Goldilocks 2.0. If you're using Goldilocks 1.0 (part of PawLIB), see the official documentation at https://docs.mousepawmedia.com/pawlib

See M125 for the latest versions of the Goldilocks flowcharts.

Test Execution Workflow

  1. Test::pre() is called first.
    • If that returns false, Test::prefail() is called.
  2. Test::janitor() is called.
    • If that returns false, Test::postmortem() is called.
  3. Test::run() is called.
    • If that returns false AND test is supposed to die on failure, Test::postmortem() is called.
  4. If there are still iterations of the test to be run, return to step 2.
  5. Test::post() is called.

goldilocks_test_workflow.png (571×761 px, 19 KB)

Benchmark Execution Workflow

  1. Test::pre() is called first.
    • If that returns false, Test::prefail() is called.
  2. Test::janitor() is called.
    • If that returns false, Test::postmortem() is called.
  3. Test::run_optimized() is called.
    • If that returns false, Test::postmortem() is called.
  4. Test::janitor() is called.
    • If that returns false, Test::postmortem() is called.
  5. Test::run_optimized() is called in the context of the measurement function.
    • If that returns false, Test::postmortem() is called.
  6. If there are still iterations of the test to be run, return to step 4.
  7. Test::post() is called.
NOTE: In the flowchart below, Test::run() should be Test::run_optimized().

goldilocks_benchmark_workflow.png (617×765 px, 29 KB)

Last Author
jcmcdonald
Last Edited
Jan 30 2021, 12:16 PM