|author||Robert Iannucci <firstname.lastname@example.org>||Fri May 17 23:17:56 2019|
|committer||Commit Bot <email@example.com>||Fri May 17 23:17:56 2019|
Fix current test runner when tests crash. A recent refactor switched the argument order for the worker function leading to obscure stack traces when tests crash: Traceback (most recent call last): File "ENGINE/recipe_engine/main.py", line 76, in _main ret = parse_and_run() File "ENGINE/recipe_engine/internal/commands/__init__.py", line 277, in parse_and_run return args.func(args) File "ENGINE/recipe_engine/internal/commands/test/__init__.py", line 96, in _launch return main(args) File "ENGINE/recipe_engine/internal/commands/test/run_train.py", line 813, in main return run_run(args.filter, args.jobs, args.json, train_mode=False) File "ENGINE/recipe_engine/internal/commands/test/run_train.py", line 659, in run_run results_proto.test_failures[test_description.full_name].failures.extend([ AttributeError: 'bool' object has no attribute 'full_name' Uncaught exception (AttributeError): 'bool' object has no attribute 'full_name' This was because of the `worker` wrapper. Although this wrapper is going away in an upcoming version of the simulation test runner, removing it now is easy enough and fixes the error. Rfirstname.lastname@example.org Bug: 910369, 964141 Change-Id: I7f47912f8946325dc51b41e536c2eb1a6f289743 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/1618211 Commit-Queue: Robbie Iannucci <email@example.com> Commit-Queue: Andrii Shyshkalov <firstname.lastname@example.org> Auto-Submit: Robbie Iannucci <email@example.com> Reviewed-by: Andrii Shyshkalov <firstname.lastname@example.org>
Recipes are a domain-specific language (embedded in python) for specifying sequences of subprocess calls in a cross-platform and testable way.
Documentation for the recipe engine (including this file!). See the design doc for more detailed design information about the recipe engine.
Chrome infra config files.
The main entry point to the recipe engine. It has many subcommands and flags; run
recipes.py -h to see them. Include this in your repository to start using recipes.
Recipes in the recipe engine. These are either example recipes, or recipes which are used to test the engine (see run_test.py to see these run)
Built in recipe modules. These are very useful when writing recipes; take a look in there, and look at each of their
examples subfolders to get an idea how to use them in a recipe.
The core functionality of the recipe engine. Noteworthy files include:
main.py-- The main entrypoint for the recipe engine.
recipes_cfg.proto-- The protobuf file which defines the format of a
third_party/-- third_party code which is vendored into the recipe engine.
recipe_api.py-- The api exposed to a recipe module.
unittests-- Unittests for the engine.
There are also several files which correspond to a subcommand of recipes.py;
autoroll are some examples.
Somewhat poorly named, these are higher level integration tests.
user.nameare configured in
Run the following to setup the code review tool and create your first review:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools export PATH="$PATH:$HOME/src/depot_tools" git checkout -b work origin/master # hack hack git commit -a -m "This is awesome" # This will ask for your Google Account credentials. git cl upload -s -r email@example.com # Wait for approval over email. # Click "Submit to CQ" button or ask reviewer to do it for you. # Wait for the change to be tested and landed automatically.
git cl help and
git cl help <cmd> for more details.