You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
59 lines
1.8 KiB
# 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 time
|
|
import uuid
|
|
|
|
from autotest_lib.client.common_lib import error
|
|
from autotest_lib.server import hosts
|
|
from autotest_lib.server.cros import queue_barrier
|
|
|
|
AUTHOR = "chromeos-installer@google.com"
|
|
NAME = "p2p_EndToEndTest"
|
|
TIME = "MEDIUM"
|
|
TEST_CATEGORY = "Functional"
|
|
TEST_CLASS = "platform"
|
|
TEST_TYPE = "server"
|
|
BUG_TEMPLATE = {
|
|
'cc': ['chromeos-installer-alerts@google.com'],
|
|
'components': ['Internals>Installer'],
|
|
}
|
|
|
|
DOC = """
|
|
End-to-end test of the peer-to-peer (p2p) file sharing system.
|
|
|
|
The test runs over a set of N machines generating a random file in one of
|
|
them (called the "main") and sharing it with the rest of the machines. The
|
|
success condition of this test occurs when all the N machines have the same
|
|
generated file before a certain timeout.
|
|
|
|
To simulate a progressive download of the shared file in the main, the
|
|
file becomes available in two parts. The first part of the file is available
|
|
at the beginning of the test, while the second part appears later.
|
|
"""
|
|
|
|
def run(machine):
|
|
dut = hosts.create_host(machine)
|
|
|
|
job.run_test('p2p_EndToEndTest',
|
|
dut=dut,
|
|
file_id=file_id,
|
|
is_main=(machine == main),
|
|
peers=machines,
|
|
barrier=barrier)
|
|
|
|
if len(machines) < 2:
|
|
raise error.TestError('At least two machines are needed for this test')
|
|
|
|
# The file ID shared among all test machines.
|
|
file_id = "%s-%s" % (time.strftime("%Y%m%d-%H%M"), uuid.uuid4())
|
|
|
|
# Create the shared QueueBarrier to synchronize the processes.
|
|
barrier = queue_barrier.QueueBarrier(len(machines)-1)
|
|
|
|
# Pick any DUT as the main.
|
|
main = machines[0]
|
|
|
|
job.parallel_simple(run, machines)
|