Lines Matching full:suite
27 from autotest_lib.server.cros.dynamic_suite.suite import ProvisionSuite
28 from autotest_lib.server.cros.dynamic_suite.suite import Suite
32 """CrOS dynamic test suite generation and execution module.
41 dynamic suite across all reimaged devices.
43 The public API for defining a suite includes one method: reimage_and_run().
44 A suite control file can be written by importing this module and making
61 "SUITE=" clause, schedule jobs to reimage devices in the
67 atest suite create -b <board> -i <build/name> <suite>
69 atest suite create -b x86-mario -i x86-mario/R20-2203.0.0 bvt
74 A Suite instance represents a single test suite, defined by some predicate
75 run over all known control files. The simplest example is creating a Suite
78 create_suite_job() takes the parameters needed to define a suite run (board,
79 build to test, machine pool, and which suite to run), ensures important
80 preconditions are met, finds the appropraite suite control file, and then
92 RPC pulls the control file for the suite to be run from the dev server and
93 uses it to create the suite job with the autotest frontend.
106 +-------------+ suite control file +--------------------------+
109 Suite Job (hostless)
126 on it. In the case of a dynamic_suite, many tests in the suite may have
128 they specify, along with any suite dependencies that were specified, and the
132 A Suite instance uses the labels specified in the suite dependencies to
135 run a suite in the background _after_ it has completed all the things
136 necessary for reimaging. Before running a suite, reimage_and_run() calls out
141 0) At instantiation time, find all appropriate control files for this suite
148 | |---------------------->| [Suite Job] |
151 1) Now that the Suite instance exists, it schedules jobs for every control
154 build they were testing and which suite they were for.
159 | [Suite Job] |----------->| Host 2 |
166 'suite': suite_name}
190 | |<--------------------------| [Suite Job] |
194 2) As jobs finish, we record their success or failure in the status of the suite
195 job. We also record a 'job keyval' in the suite job for each test, noting
197 3) Once all jobs are complete, status is recorded for the suite job, and the
198 job_repo_url host attribute is removed from all hosts used by the suite.
206 """This class contains the info that defines a suite run."""
259 @param name: a value of the SUITE control file variable to search for.
261 currently running suite job.
268 @param file_bugs: File bugs when tests in this suite fail.
270 this suite will run.
272 that this suite runs.
273 @param suite_dependencies: A list of strings of suite level
280 filing options for failures in this suite.
284 included in suite. If argument is absent, suite
285 behavior will default to creating a suite of based
286 on the SUITE field of control files.
287 @param wait_for_results: Set to False to run the suite job without
290 @param max_retries: Maximum retry limit at suite level if not None.
293 happening in the suite can't exceed max_retries.
300 @param run_prod_code: If true, the suite will run the test code that
310 @param test_names: (optional) if provided, Suite will consist of the
354 warnings.warn('Ignored key %r was passed to suite with value %r'
373 self.predicate = Suite.test_name_in_list_predicate(test_names)
380 self.predicate = Suite.name_in_tag_predicate(self.name)
383 """Initialize suite dependencies attribute."""
401 self.test_source_build = Suite.get_test_source_build(
439 Run a provision suite.
445 currently running suite job.
466 suite = ProvisionSuite(
493 _run_suite_with_spec(suite, spec)
503 provided builds, and then run the indicated test suite on them.
541 # We can't create the suite until the devserver has finished downloading
546 suite = Suite.create_from_predicates(
572 _run_suite_with_spec(suite, spec)
575 def _run_suite_with_spec(suite, spec): argument
579 @param suite: _BaseSuite instance to run.
583 suite=suite,
590 suite,
595 Run a suite.
597 @param suite: _BaseSuite instance.
599 currently running suite job.
603 filing options for failures in this suite.
618 suite.schedule(job.record_entry)
620 if suite.wait_for_results:
621 logging.debug('Waiting on suite.')
622 suite.wait(job.record_entry)
623 logging.debug('Finished waiting on suite. '
626 logging.info('wait_for_results is set to False, suite job will exit '
631 """Stage artifacts for a suite job.
645 # This function is used by the cros_test_platform suite, to unwrap json-decoded