56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # Copyright 2019 The Chromium OS Authors. All rights reserved.
 | |
| # Use of this source code is governed by a BSD-style license that can be
 | |
| # found in the LICENSE file.
 | |
| 
 | |
| from autotest_lib.server.cros.dynamic_suite import constants
 | |
| 
 | |
| AUTHOR = "Chromium OS"
 | |
| ATTRIBUTES = "suite:kernel_per-build_regression"
 | |
| NAME = "autoupdate_StatefulCompatibility.kernel_transition"
 | |
| TIME = "MEDIUM"
 | |
| TEST_CATEGORY = "Functional"
 | |
| TEST_CLASS = "platform"
 | |
| TEST_TYPE = "server"
 | |
| 
 | |
| DOC = """
 | |
| This is an auto update test to check the compatibility of the stateful
 | |
| partition between updates. This control file is specifically meant for
 | |
| -kernelnext boards. Any board that declares USE=kernel-transition will attempt
 | |
| to run this test. For boards in the form "<board>-kernelnext" this test will
 | |
| search for an image matching "<board>". For boards in any other form this test
 | |
| will search for an image matching "<board>-kernelnext".
 | |
| 
 | |
| For example the samus board, which declares USE=kernel-transition, will target a
 | |
| samus-kernelnext image to run an upgrade test against, and the samus-kernelnext
 | |
| board, which also declares USE=kernel-transition, will target a samus image to
 | |
| downgrade test against.
 | |
| """
 | |
| 
 | |
| TEST_CONF_KEYS = (
 | |
|     'source_payload_uri', 'target_payload_uri', 'target_board',
 | |
|     'target_version_regex')
 | |
| 
 | |
| test_conf = {}
 | |
| for key in TEST_CONF_KEYS:
 | |
|     test_conf[key] = None
 | |
| 
 | |
| def run_test(machine):
 | |
|     """Execute a test configuration on a given machine."""
 | |
|     host = hosts.create_host(machine)
 | |
|     board = host.get_board().replace(constants.BOARD_PREFIX, '')
 | |
| 
 | |
|     # <board>-kernelnext downgrade tests to <board>
 | |
|     # <board> upgrade tests to <board>-kernelnext
 | |
|     if board.endswith('kernelnext'):
 | |
|         target_board = board.replace('-kernelnext', '')
 | |
|     else:
 | |
|         target_board = board + '-kernelnext'
 | |
| 
 | |
|     test_conf['target_board'] = target_board
 | |
|     test_conf['target_version_regex'] = 'LATEST-[0-9]*'
 | |
|     job.run_test("autoupdate_StatefulCompatibility", host=host,
 | |
|                  test_conf=test_conf, max_image_checks=20)
 | |
| 
 | |
| # Invoke parallel tests.
 | |
| parallel_simple(run_test, machines)
 |