# Copyright 2017 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 = 'The Chromium OS Authors'
NAME = 'camera_V4L2.certification'
PURPOSE = 'Exercises v4l2 camera devices to verify required operations.'
CRITERIA = """
This is used for third-party lab to verify new camera modules.
It is a complex test and tests many different functions. This test will fail
if any of the following conditions occur:
  - No camera configuration file is found
  - No v4L2 device is found
  - If a mandatory control is not supported
  - If streaming is not supported
  - If a required resolution is not supported when capturing a stream
  - If frame rate is not constant
  - If cropping doesn't meet android cropping requirement
"""
ATTRIBUTES = "suite:usb-camera"
TIME='MEDIUM'
TEST_CATEGORY = 'V4L2'
TEST_TYPE = 'client'
BUG_TEMPLATE = {
    'labels': ['OS-Chrome', 'VideoTestFailure'],
    'cc': ['chromeos-video-test-failures@google.com'],
}

DOC = """
This test executes media_v4l2_test and media_v4l2_unittest binaries.
For more information on V4L2 see:
http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Intro-to-V4L2/

This is used for third-party lab to verify camera module. The camera module is
an external camera device to run all test cases.
"""

job.run_test('camera_V4L2', test_list='certification', tag='certification')
