Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: scripts/slave/unittests/recipe_simulation_test.py

Issue 220353003: Replace recipes_test.py with a new parallel expectation-based test runner. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: refactor Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/python
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Provides simulator test coverage for individual recipes."""
7
8 import os
9
10 # Importing for side effects on sys.path? Yes... yes we are :(
11 import test_env # pylint: disable=unused-import
12
13 from common import annotator
14 from slave import annotated_run
15 from slave import recipe_config_types
16 from slave import recipe_loader
17 from slave import recipe_util
18
19 import expect_tests
20
21
22 def RunRecipe(test_data):
Vadim Sh. 2014/04/02 22:37:59 Let's use lower_case_with_underscore everywhere in
23 stream = annotator.StructuredAnnotationStream(stream=open(os.devnull, 'w'))
24 recipe_config_types.ResetTostringFns()
25 # TODO(iannucci): Only pass test_data once.
26 result = annotated_run.run_steps(stream, test_data.properties,
27 test_data.properties, test_data)
28 return expect_tests.Result([s.step for s in result.steps_ran.itervalues()])
29
30
31 def GenerateTests():
32 mods = recipe_loader.load_recipe_modules(recipe_loader.MODULE_DIRS())
33
34 for recipe_path, recipe_name in recipe_loader.loop_over_recipes():
35 recipe = recipe_loader.load_recipe(recipe_name)
36 test_api = recipe_loader.create_test_api(recipe.DEPS)
37 for test_data in recipe.GenTests(test_api):
38 root, name = os.path.split(recipe_path)
39 name = os.path.splitext(name)[0]
40 expect_path = os.path.join(root, '%s.expected' % name)
41
42 test_data.properties['recipe'] = recipe_name
43 yield expect_tests.Test(
44 '%s.%s' % (recipe_name, test_data.name),
45 RunRecipe, args=(test_data,),
46 expect_dir=expect_path,
47 expect_base=test_data.name,
48 break_funcs=(mods.step.API.__call__,
49 recipe.GenSteps)
50 )
51
52
53 if __name__ == '__main__':
54 expect_tests.main(GenerateTests, (
55 [os.path.join(x, '*') for x in recipe_util.RECIPE_DIRS()] +
56 [os.path.join(x, '*', '*api.py') for x in recipe_util.MODULE_DIRS()]
57 ), (
58 [os.path.join(x, '*', '*config.py') for x in recipe_util.MODULE_DIRS()]
59 ))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698