Lines Matching refs:suite
21 from autotest_lib.server.cros.dynamic_suite.suite import ProvisionSuite
22 from autotest_lib.server.cros.dynamic_suite.suite import Suite
26 """CrOS dynamic test suite generation and execution module.
35 dynamic suite across all reimaged devices.
37 The public API for defining a suite includes one method: reimage_and_run().
38 A suite control file can be written by importing this module and making
55 "SUITE=" clause, schedule jobs to reimage devices in the
61 atest suite create -b <board> -i <build/name> <suite>
63 atest suite create -b x86-mario -i x86-mario/R20-2203.0.0 bvt
68 A Suite instance represents a single test suite, defined by some predicate
69 run over all known control files. The simplest example is creating a Suite
72 create_suite_job() takes the parameters needed to define a suite run (board,
73 build to test, machine pool, and which suite to run), ensures important
74 preconditions are met, finds the appropraite suite control file, and then
86 RPC pulls the control file for the suite to be run from the dev server and
87 uses it to create the suite job with the autotest frontend.
100 +-------------+ suite control file +--------------------------+
103 Suite Job (hostless)
120 on it. In the case of a dynamic_suite, many tests in the suite may have
122 they specify, along with any suite dependencies that were specified, and the
126 A Suite instance uses the labels specified in the suite dependencies to
129 run a suite in the background _after_ it has completed all the things
130 necessary for reimaging. Before running a suite, reimage_and_run() calls out
135 0) At instantiation time, find all appropriate control files for this suite
142 | |---------------------->| [Suite Job] |
145 1) Now that the Suite instance exists, it schedules jobs for every control
148 build they were testing and which suite they were for.
153 | [Suite Job] |----------->| Host 2 |
160 'suite': suite_name}
184 | |<--------------------------| [Suite Job] |
188 2) As jobs finish, we record their success or failure in the status of the suite
189 job. We also record a 'job keyval' in the suite job for each test, noting
191 3) Once all jobs are complete, status is recorded for the suite job, and the
192 job_repo_url host attribute is removed from all hosts used by the suite.
200 """This class contains the info that defines a suite run."""
253 @param name: a value of the SUITE control file variable to search for.
255 currently running suite job.
262 @param file_bugs: File bugs when tests in this suite fail.
264 this suite will run.
266 that this suite runs.
267 @param suite_dependencies: A list of strings of suite level
274 filing options for failures in this suite.
278 included in suite. If argument is absent, suite
279 behavior will default to creating a suite of based
280 on the SUITE field of control files.
281 @param wait_for_results: Set to False to run the suite job without
284 @param max_retries: Maximum retry limit at suite level if not None.
287 happening in the suite can't exceed max_retries.
294 @param run_prod_code: If true, the suite will run the test code that
346 warnings.warn('Ignored key %r was passed to suite with value %r'
365 self.predicate = Suite.name_in_tag_predicate(self.name)
371 """Initialize suite dependencies attribute."""
392 self.test_source_build = Suite.get_test_source_build(
430 Run a provision suite.
436 currently running suite job.
457 suite = ProvisionSuite(
484 _run_suite_with_spec(suite, spec)
494 provided builds, and then run the indicated test suite on them.
532 # We can't create the suite until the devserver has finished downloading
537 suite = Suite.create_from_predicates(
563 _run_suite_with_spec(suite, spec)
566 def _run_suite_with_spec(suite, spec):
570 @param suite: _BaseSuite instance to run.
574 suite=suite,
581 suite,
586 Run a suite.
588 @param suite: _BaseSuite instance.
590 currently running suite job.
594 filing options for failures in this suite.
609 suite.schedule(job.record_entry)
611 if suite.wait_for_results:
612 logging.debug('Waiting on suite.')
613 suite.wait(job.record_entry)
614 logging.debug('Finished waiting on suite. '
617 logging.info('wait_for_results is set to False, suite job will exit '
622 """Stage artifacts for a suite job.