Adding CameraBox control files to Arc R CTS.
TEST=./generate_controlfiles.py --is_latest gs://chromeos-arc-images/cts/bundle/R/android-cts-11_r4-linux_x86-arm.zip
./generate_controlfiles.py --is_latest gs://chromeos-arc-images/cts/bundle/R/android-cts-11_r4-linux_x86-x86.zip
Command line tested: test_that -b atlas chromeos15-row1-metro5-host2b.cros cheets_CTS_R.11_r4.x86.CtsCameraTestCases.noled.camerabox.back --args=chart=chromeos15-row1-metro5-host2b-tablet.cros
BUG=b:187795810
http://b/187795810
Change-Id: Id06599da86c48a746951f0dc26469af828ad14d4
Adding CameraBox control files for ARC R CTS
Change-Id: I7eb28ba603bcdb6eaa75e249f51dcde1db3279f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2917837
Reviewed-by: Jaydeep Mehta <jaydeepmehta@google.com>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
Tested-by: Jaydeep Mehta <jaydeepmehta@google.com>
Commit-Queue: Kazuhiro Inaba <kinaba@chromium.org>
diff --git a/server/cros/tradefed/generate_controlfiles_CTS_R.py b/server/cros/tradefed/generate_controlfiles_CTS_R.py
index f31adf0..ac46af3 100755
--- a/server/cros/tradefed/generate_controlfiles_CTS_R.py
+++ b/server/cros/tradefed/generate_controlfiles_CTS_R.py
@@ -37,7 +37,7 @@
CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS'
CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = False
-CONFIG['CONTROLFILE_WRITE_CAMERA'] = False
+CONFIG['CONTROLFILE_WRITE_CAMERA'] = True
CONFIG['CONTROLFILE_WRITE_EXTRA'] = True
# The dashboard suppresses upload to APFE for GS directories (based on autotest
diff --git a/server/site_tests/cheets_CTS_R/cheets_CTS_R.py b/server/site_tests/cheets_CTS_R/cheets_CTS_R.py
index 8e7bfaa..1c43c5a 100644
--- a/server/site_tests/cheets_CTS_R/cheets_CTS_R.py
+++ b/server/site_tests/cheets_CTS_R/cheets_CTS_R.py
@@ -16,6 +16,10 @@
import os
from autotest_lib.server import utils
+from autotest_lib.client.common_lib import error
+from autotest_lib.server import hosts
+from autotest_lib.server import utils
+from autotest_lib.server.cros import camerabox_utils
from autotest_lib.server.cros.tradefed import tradefed_test
# Maximum default time allowed for each individual CTS module.
@@ -42,6 +46,10 @@
"""Sets up tradefed to run CTS tests."""
version = 1
+ _SCENE_URI = (
+ 'https://storage.googleapis.com/chromiumos-test-assets-public'
+ '/camerabox/cts_portrait_scene.jpg')
+
def _tradefed_retry_command(self, template, session_id):
"""Build tradefed 'retry' command from template."""
cmd = []
@@ -70,6 +78,63 @@
def _tradefed_cmd_path(self):
return os.path.join(self._repository, 'tools', 'cts-tradefed')
+ def initialize_camerabox(self, camera_facing, cmdline_args):
+ """Configure DUT and chart running in camerabox environment.
+
+ @param camera_facing: the facing of the DUT used in testing
+ (e.g. 'front', 'back').
+ """
+ chart_address = camerabox_utils.get_chart_address(
+ [h.hostname for h in self._hosts], cmdline_args)
+ if chart_address is None:
+ raise error.TestFail(
+ 'Error: missing option --args="chart=<CHART IP>"')
+ chart_hosts = [hosts.create_host(ip) for ip in chart_address]
+
+ self.chart_fixtures = [
+ camerabox_utils.ChartFixture(h, self._SCENE_URI)
+ for h in chart_hosts
+ ]
+ self.dut_fixtures = [
+ camerabox_utils.DUTFixture(self, h, camera_facing)
+ for h in self._hosts
+ ]
+
+ for chart in self.chart_fixtures:
+ chart.initialize()
+
+ for dut in self.dut_fixtures:
+ dut.log_camera_scene()
+ dut.initialize()
+
+ for host in self._hosts:
+ host.run('cras_test_client --mute 1')
+
+ def initialize(self,
+ camera_facing=None,
+ bundle=None,
+ uri=None,
+ host=None,
+ hosts=None,
+ max_retry=None,
+ load_waivers=True,
+ retry_manual_tests=False,
+ warn_on_test_retry=True,
+ cmdline_args=None,
+ hard_reboot_on_failure=False):
+ super(cheets_CTS_R, self).initialize(
+ bundle=bundle,
+ uri=uri,
+ host=host,
+ hosts=hosts,
+ max_retry=max_retry,
+ load_waivers=load_waivers,
+ retry_manual_tests=retry_manual_tests,
+ warn_on_test_retry=warn_on_test_retry,
+ hard_reboot_on_failure=hard_reboot_on_failure)
+ if camera_facing:
+ self.initialize_camerabox(camera_facing, cmdline_args)
+
def run_once(self,
test_name,
run_template,
@@ -124,3 +189,20 @@
bundle=bundle,
login_precondition_commands=login_precondition_commands,
precondition_commands=precondition_commands)
+
+ def cleanup_camerabox(self):
+ """Cleanup configuration on DUT and chart tablet for running in
+
+ camerabox environment.
+ """
+ for dut in self.dut_fixtures:
+ dut.cleanup()
+
+ for chart in self.chart_fixtures:
+ chart.cleanup()
+
+ def cleanup(self):
+ if hasattr(self, 'dut_fixtures'):
+ self.cleanup_camerabox()
+
+ super(cheets_CTS_R, self).cleanup()
diff --git a/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.back b/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.back
new file mode 100644
index 0000000..5af52df
--- /dev/null
+++ b/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.back
@@ -0,0 +1,37 @@
+# Copyright 2020 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.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_R.11_r4.arm.CtsCameraTestCases.noled.camerabox.back'
+ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-camera, suite:arc-cts-r, suite:arc-cts-unibuild, suite:arc-cts-unibuild-hw'
+DEPENDENCIES = 'arc, camerabox_light:noled, camerabox_facing:back'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsCameraTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_TS(machine):
+ host_list = [hosts.create_host(machine)]
+ job.run_test(
+ 'cheets_CTS_R',
+ camera_facing='back',
+ cmdline_args=args,
+ hosts=host_list,
+ iterations=1,
+ tag='11_r4.arm.CtsCameraTestCases.noled.camerabox.back',
+ test_name='cheets_CTS_R.11_r4.arm.CtsCameraTestCases.noled.camerabox.back',
+ run_template=['run', 'commandAndExit', 'cts', '--module', 'CtsCameraTestCases', '--logcat-on-failure'],
+ retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+ target_module='CtsCameraTestCases',
+ target_plan=None,
+ bundle='arm',
+ uri='LATEST',
+ use_jdk9=True,
+ load_waivers=False,
+ timeout=3600)
+
+parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.front b/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.front
new file mode 100644
index 0000000..c132b95
--- /dev/null
+++ b/server/site_tests/cheets_CTS_R/control.11_r4.arm.CtsCameraTestCases.noled.camerabox.front
@@ -0,0 +1,37 @@
+# Copyright 2020 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.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_R.11_r4.arm.CtsCameraTestCases.noled.camerabox.front'
+ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-camera, suite:arc-cts-r, suite:arc-cts-unibuild, suite:arc-cts-unibuild-hw'
+DEPENDENCIES = 'arc, camerabox_light:noled, camerabox_facing:front'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsCameraTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
+
+def run_TS(machine):
+ host_list = [hosts.create_host(machine)]
+ job.run_test(
+ 'cheets_CTS_R',
+ camera_facing='front',
+ cmdline_args=args,
+ hosts=host_list,
+ iterations=1,
+ tag='11_r4.arm.CtsCameraTestCases.noled.camerabox.front',
+ test_name='cheets_CTS_R.11_r4.arm.CtsCameraTestCases.noled.camerabox.front',
+ run_template=['run', 'commandAndExit', 'cts', '--module', 'CtsCameraTestCases', '--logcat-on-failure'],
+ retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+ target_module='CtsCameraTestCases',
+ target_plan=None,
+ bundle='arm',
+ uri='LATEST',
+ use_jdk9=True,
+ load_waivers=False,
+ timeout=3600)
+
+parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.back b/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.back
new file mode 100644
index 0000000..c94f8ae
--- /dev/null
+++ b/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.back
@@ -0,0 +1,37 @@
+# Copyright 2020 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.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_R.11_r4.x86.CtsCameraTestCases.noled.camerabox.back'
+ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-camera, suite:arc-cts-r, suite:arc-cts-unibuild, suite:arc-cts-unibuild-hw'
+DEPENDENCIES = 'arc, cts_abi_x86, camerabox_light:noled, camerabox_facing:back'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsCameraTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_TS(machine):
+ host_list = [hosts.create_host(machine)]
+ job.run_test(
+ 'cheets_CTS_R',
+ camera_facing='back',
+ cmdline_args=args,
+ hosts=host_list,
+ iterations=1,
+ tag='11_r4.x86.CtsCameraTestCases.noled.camerabox.back',
+ test_name='cheets_CTS_R.11_r4.x86.CtsCameraTestCases.noled.camerabox.back',
+ run_template=['run', 'commandAndExit', 'cts', '--module', 'CtsCameraTestCases', '--logcat-on-failure'],
+ retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+ target_module='CtsCameraTestCases',
+ target_plan=None,
+ bundle='x86',
+ uri='LATEST',
+ use_jdk9=True,
+ load_waivers=False,
+ timeout=3600)
+
+parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.front b/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.front
new file mode 100644
index 0000000..2751ef1
--- /dev/null
+++ b/server/site_tests/cheets_CTS_R/control.11_r4.x86.CtsCameraTestCases.noled.camerabox.front
@@ -0,0 +1,37 @@
+# Copyright 2020 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.
+
+# This file has been automatically generated. Do not edit!
+
+AUTHOR = 'ARC++ Team'
+NAME = 'cheets_CTS_R.11_r4.x86.CtsCameraTestCases.noled.camerabox.front'
+ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-camera, suite:arc-cts-r, suite:arc-cts-unibuild, suite:arc-cts-unibuild-hw'
+DEPENDENCIES = 'arc, cts_abi_x86, camerabox_light:noled, camerabox_facing:front'
+JOB_RETRIES = 1
+TEST_TYPE = 'server'
+TIME = 'LONG'
+MAX_RESULT_SIZE_KB = 512000
+DOC = 'Run module CtsCameraTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
+
+def run_TS(machine):
+ host_list = [hosts.create_host(machine)]
+ job.run_test(
+ 'cheets_CTS_R',
+ camera_facing='front',
+ cmdline_args=args,
+ hosts=host_list,
+ iterations=1,
+ tag='11_r4.x86.CtsCameraTestCases.noled.camerabox.front',
+ test_name='cheets_CTS_R.11_r4.x86.CtsCameraTestCases.noled.camerabox.front',
+ run_template=['run', 'commandAndExit', 'cts', '--module', 'CtsCameraTestCases', '--logcat-on-failure'],
+ retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
+ target_module='CtsCameraTestCases',
+ target_plan=None,
+ bundle='x86',
+ uri='LATEST',
+ use_jdk9=True,
+ load_waivers=False,
+ timeout=3600)
+
+parallel_simple(run_TS, machines)