blob: efa8856840f2dcf250781840155ecddaa4ca7b19 [file] [log] [blame]
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""A test which verifies the camera function with HAL3 interface."""
import os, logging
import xml.etree.ElementTree
from autotest_lib.client.bin import test, utils
from autotest_lib.client.cros import service_stopper
from sets import Set
class camera_HAL3(test.test):
"""
This test is a wrapper of the test binary arc_camera3_test.
"""
version = 1
test_binary = 'arc_camera3_test'
dep = 'camera_hal3'
adapter_service = 'camera-halv3-adapter'
timeout = 600
media_profiles_path = os.path.join('vendor', 'etc', 'media_profiles.xml')
def setup(self):
"""
Run common setup steps.
"""
self.dep_dir = os.path.join(self.autodir, 'deps', self.dep)
self.job.setup_dep([self.dep])
logging.debug('mydep is at %s' % self.dep_dir)
def run_once(self):
"""
Entry point of this test.
"""
self.job.install_pkg(self.dep, 'dep', self.dep_dir)
with service_stopper.ServiceStopper([self.adapter_service]):
cmd = [ os.path.join(self.dep_dir, 'bin', self.test_binary) ]
xml_content = utils.system_output(
' '.join(['android-sh', '-c', '\"cat',
self.media_profiles_path + '\"']))
root = xml.etree.ElementTree.fromstring(xml_content)
recording_params = Set()
for camcorder_profiles in root.findall('CamcorderProfiles'):
for encoder_profile in camcorder_profiles.findall('EncoderProfile'):
video = encoder_profile.find('Video')
recording_params.add('%s:%s:%s:%s' % (
camcorder_profiles.get('cameraId'), video.get('width'),
video.get('height'), video.get('frameRate')))
if recording_params:
cmd.append('--recording_params=' + ','.join(recording_params))
utils.system(' '.join(cmd), timeout=self.timeout)