# Copyright (c) 2012 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 import utils

AUTHOR = "Chrome OS Team"
NAME = "platform_LidStress"
PURPOSE = "Servo based ChromeOS functional tests."
CRITERIA = "This test will fail if ChromesOS is unable to visit all sites."
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "platform"
TEST_TYPE = "server"

DOC = """
This test uses servo to simulate lid close and open events while surfing top
sites as ranked by www.alexa.com.

Test has two threads one to manage lid open/close the other to surf to
websites.  The surfing thread allows retries (3) if page failed to load due to
network stack teardown/bringup caused by lid changes.

Test takes ~20min to run with default configuration of 50 lid cycles while
visiting top 50 sites.
"""

args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)

def run(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("platform_LidStress", host=host, disable_sysinfo=True)

parallel_simple(run, machines)
