# 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.h264.private.8'
ATTRIBUTES = 'suite:video'
TIME = 'LENGTHY'
TEST_CATEGORY = 'Stress'
TEST_CLASS = 'video'
TEST_TYPE = 'server'
DEPENDENCIES = 'hw_video_acc_h264'

DOC = """
VDA stress test to download and run with h264 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='gs://chromeos-test-assets-private/VDA/h264/',
    server_videos_dir=server_videos_dir,
    videos=videos,
    shard_number=8,
    shard_count=10)


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)