1# Copyright (c) 2015 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5AUTHOR = "chromeos-moblab@google.com" 6NAME = "moblab_DummyServerSuite" 7PURPOSE = "Test that Moblab can run the Dummy Server suite." 8ATTRIBUTES = "suite:moblab_quick" 9TIME = "MEDIUM" 10TEST_CATEGORY = "Functional" 11TEST_CLASS = "moblab" 12TEST_TYPE = "server" 13 14DOC = """ 15Kicks off the Dummy Server suite on a Moblab host against the DUTs on its 16subnet and ensures the suite completes successfully. 17 18To invole this test locally: 19 test_that -b stumpy_moblab <remote> moblab_DummyServerSuite 20 --args="<ARGLIST>" 21 22where ARGLIST is a whitespace separated list of the following key=value pairs. 23Values pertaining to the test case include: 24 25 boto_path=<boto_path> path to the boto file to be installed on 26 the Moblab DUT. If not specified, the 27 boto file in the current home directory 28 will be installed if it exists. 29 image_storage_server=<server_name> Google Storage Bucket from which to 30 fetch test images from. If not 31 specified, the value will be fetched 32 from global_config. 33 service_init_timeout_m=<int> Timeout (in minutes) to wait for upstart 34 services to start on the moblab host. 35 This can take ~5 minutes on a physical 36 devices and ~10 minutes on a VM. 37 test_timeout_hint_m=<int> The overall timeout to expect for the 38 test run. For this test, it is very 39 important to collect post failure data 40 from the moblab device. If the overall 41 timeout is provided, the test will try to 42 fail early to save some time for log 43 collection from the DUT. 44 clear_devserver_cache=<boolean> If True, image cache of the devserver 45 running on moblab is cleared before 46 running the test to validate devserver 47 imaging staging flow. 48""" 49from autotest_lib.client.bin import sysinfo 50from autotest_lib.client.common_lib import utils 51 52MOBLAB_AUTOTEST_FOLDERS = ['/usr/local/autotest/results', 53 '/usr/local/autotest/logs'] 54 55 56def run(machine): 57 host = hosts.create_host(machine) 58 args_dict = utils.args_to_dict(args) 59 60 logging.info('Logs from moblab\'s instance of autotest will be collected ' 61 'under the sysinfo/ folder in results.') 62 for folder in MOBLAB_AUTOTEST_FOLDERS: 63 logging.info(' Will collect %s', folder) 64 job.sysinfo.add_logdir(sysinfo.logdir(folder, excludes=())) 65 66 job.run_test('moblab_RunSuite', host=host, suite_name='dummy_server', 67 moblab_suite_max_retries=1, **args_dict) 68 69parallel_simple(run, machines) 70