| # Copyright (c) 2013 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. |
| |
| import traceback |
| |
| from autotest_lib.client.common_lib.cros.network import ap_constants |
| from autotest_lib.server import utils |
| |
| AUTHOR = 'krisr, wiley, jabele' |
| NAME = 'network_WiFi_ChaosConfigFailure' |
| TIME = 'SHORT' |
| TEST_TYPE = 'server' |
| |
| DOC = """ |
| This test is run when a chaos APConfigurator fails to successfully configure |
| an AP. It will grab screenshots and print stack traces of the failure. |
| This control file is only run directly to simulate APConfigurator failures for |
| test purposes. |
| """ |
| |
| from autotest_lib.server.cros.chaos_ap_configurators \ |
| import ap_configurator_factory |
| from autotest_lib.server.cros.chaos_ap_configurators import ap_spec |
| |
| |
| def run_chaos_config_failure(machine): |
| args_dict = utils.args_to_dict(args) |
| host = hosts.create_host(machine) |
| debug_aps = ['chromeos3-row2-rack1-host3',] |
| tested_ap_spec = ap_spec.APSpec(hostnames=debug_aps) |
| factory = ap_configurator_factory.APConfiguratorFactory() |
| ap = factory.get_ap_configurators_by_spec(tested_ap_spec)[0] |
| ap.set_using_ap_spec(tested_ap_spec) |
| ap.apply_settings() |
| ## Simulate test failure by forcing state and gathering artifacts |
| try: |
| raise RuntimeError("Simulated APConfigurator Error") |
| except Exception: |
| trace = ''.join(traceback.format_exc()) |
| ap.store_config_failure(trace) |
| job.run_test('network_WiFi_ChaosConfigFailure', ap=ap, |
| error_string=ap_constants.AP_CONFIG_FAIL, tag=ap.ssid) |
| |
| |
| parallel_simple(run_chaos_config_failure, machines) |