#!/usr/bin/env python """ This file generates all video_VDAStress control files from a master list. """ import collections Testdata = collections.namedtuple('Testdata', 'gs, decoder, access') TESTS = [ Testdata('gs://chromeos-test-assets-private/VDA/', 'h264', 'private'), Testdata('gs://chromeos-test-assets-private/VDA/', 'vp8', 'private'), # TODO(ihf): Populate public bucket with test videos. #Testdata('gs://chromiumos-test-assets-public/VDA/', 'h264', 'public'), #Testdata('gs://chromiumos-test-assets-public/VDA/', 'vp8', 'public'), #Testdata('gs://chromiumos-test-assets-public/VDA/', 'vp9', 'public'), ] CONTROLFILE_TEMPLATE = ( """# Copyright 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. AUTHOR = 'Chrome OS Team, chromeos-video@google.com' NAME = 'video_VDAStress.{1}.{2}.{3}' ATTRIBUTES = 'suite:video' SUITE = 'video' TIME = 'LENGTHY' TEST_CATEGORY = 'Stress' TEST_CLASS = 'video' TEST_TYPE = 'server' DEPENDENCIES = 'hw_video_acc_{1}' DOC = \"\"\" VDA stress test to download and run with {1} test videos from cloud storage. \"\"\" import shutil import tempfile # Download the test videos from the gs bucket to the server. server_videos_dir = tempfile.mkdtemp(dir=job.tmpdir) videos = [] job.run_test( 'video_VDAStressSetup', gs_bucket='{0}{1}/', server_videos_dir=server_videos_dir, videos=videos, shard_number={3}, shard_count={4}) def run(machine): job.run_test('video_VDAStress', machine=machine, server_videos_dir=server_videos_dir, videos=videos) job.parallel_on_machines(run, machines) shutil.rmtree(server_videos_dir)""") shard_count = 10 for test in TESTS: for shard_number in xrange(0, shard_count): filename = 'control.%s.%s.%d' % (test.decoder, test.access, shard_number) with open(filename, 'w+') as f: content = ( CONTROLFILE_TEMPLATE.format( test.gs, test.decoder, test.access, shard_number, shard_count)) f.write(content)