blob: c0dae2cdf92d4e5f09d40dccced0d275ca32ac14 [file] [log] [blame]
# -*- coding: utf-8 -*-
#
# Copyright (c) 2010 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.
# DOCUMENTATION:
#
# Define below an ordered list if tests for execution on factory
# assembly lines. This list can be customized for specific factory
# needs, within the limits set by the below comments -- specifically,
# ODMs should not remove any Google required tests.
#
# This file is loaded via a call to execfile() in the primary factory
# autotest control file.
# -- CUSTOMIZATION VARIABLES ---------------------------------------
# You can tune these settings to fit your factory process.
# Change this to False if you want and allow fast wipe (insecure).
_DO_FACTORY_SECURE_WIPE = True
# Change this to the number of reboots you want during run-in.
_REBOOT_SEQ_ITERATIONS = 2
# Change this to the duration of SAT during run-in (suggested 10+ mins).
_SAT_DURATION_SECS = 60
# Change this to match your local report upload site.
# You can use a FTP url like: ftp://user:pass@host:port/path/file
# VPD variables NAME=VALUE can be used as %(vpd_NAME).
# Ex: serial=123 => $(vpd_serial).log => 123.log
_REPORT_UPLOAD_METHOD = 'none' # WARNING: none is ONLY ALLOWED FOR DEBUGGING.
# REPORT UPLOADING IS REQUIRED TO BE SET AT BUILD TIME.
# REPORTS MUST BE PROVIDED TO GOOGLE, MACHINES WITHOUT LOGS CANNOT BE SUPPORTED.
# -- END OF CUSTOMIZATION VARIABLES --------------------------------
# TEST ORDERING: Tests in the test_list will be run in the order
# below, unless the operator interrupts the flow via keyboard
# shortcut. To cause immediate execution of the run-in tests, for
# example, reorder runin to occur as the first test in the test_list.
TEST_LIST = [
OperatorTest(
label_en='start',
label_zw='開始',
autotest_name='factory_Dummy',
kbd_shortcut='e',
dargs={'quit_key':ord(' '),
'msg':'Hit SPACE to start testing...\n按 "空白鍵" 開始測試...'}),
# The factory_ScriptWrapper allows interactive execution of
# external scripts or programs with the output displayed in the
# testing widget area of the screen. This is useful, for example,
# to sync-up with the assembly line IT system.
# OperatorTest(
# label_en='sync',
# label_zw='同步',
# autotest_name='factory_ScriptWrapper',
# kbd_shortcut='s',
# dargs={'cmdline': job.autodir +
# '/site_tests/factory_ScriptWrapper/dummy.sh'}),
AutomatedSequence(
label_en='run-in',
label_zw='燒機測試',
subtest_tag_prefix='runin',
kbd_shortcut='r',
subtest_list=[
AutomatedSubTest(
label_en='system stress',
label_zw='壓力測試',
autotest_name='hardware_SAT',
dargs={'seconds': _SAT_DURATION_SECS},
drop_caches=True),
AutomatedSubTest(
label_en='graphics',
label_zw='圖型',
autotest_name='graphics_GLBench'),
AutomatedSubTest(
label_en='sleep / wake',
label_zw='睡眠 / 喚醒',
autotest_name='power_Resume'),
AutomatedRebootSubTest(
label_en='reboot (%s times)' % _REBOOT_SEQ_ITERATIONS,
label_zw='重新開機 (%s 次)' % _REBOOT_SEQ_ITERATIONS,
iterations=_REBOOT_SEQ_ITERATIONS)]),
OperatorTest(
label_en='keyboard',
label_zw='鍵盤',
autotest_name='factory_Keyboard',
kbd_shortcut='k',
dargs={'layout':'en_us'}),
OperatorTest(
label_en='touchpad',
label_zw='觸控板',
autotest_name='factory_Touchpad',
kbd_shortcut='t'),
# XXX led is removed because LED controller is EC specific
OperatorTest(
label_en='display',
label_zw='顯示',
autotest_name='factory_Display',
kbd_shortcut='m'),
# XXX x-display is removed because not every device has HDMI ports
OperatorTest(
label_en='camera',
label_zw='相機',
autotest_name='factory_Camera',
kbd_shortcut='c'),
OperatorTest(
label_en='audio',
label_zw='音源裝置',
autotest_name='factory_Audio',
kbd_shortcut='a',
dargs={'audio_sample_path':'site_tests/suite_Factory/fhorn.wav'}),
OperatorTest(
label_en='usb',
autotest_name='factory_ExternalStorage',
kbd_shortcut='u',
dargs={'media':'USB'}),
OperatorTest(
label_en='sd',
autotest_name='factory_ExternalStorage',
kbd_shortcut='d',
dargs={'media':'SD'}),
# OperatorTest(
# label_en='bluetooth',
# label_zw='藍芽',
# autotest_name='factory_Dummy',
# kbd_shortcut='o',
# dargs={'msg':'bluetooth test, one day...'}),
# OperatorTest(
# label_en='3g',
# label_zw='3G上網',
# autotest_name='factory_Dummy',
# kbd_shortcut='g',
# dargs={'msg':'3g test, one day...'}),
# OperatorTest(
# label_en='wifi',
# label_zw='無線上網',
# autotest_name='factory_Dummy',
# kbd_shortcut='w',
# dargs={'msg':'wifi test, one day...'}),
# XXX light sensor is removed because it's not portable
# XXX devrec is removed because only ChromeOS hardware design provides it.
# XXX hwid is removed because only ChromeOS devices gets hw-qual-id
# THIS IS A GOOGLE REQUIRED TEST.
# PLEASE DO NOT REMOVE THIS TEST IN PRODUCTION RELEASES.
AutomatedSequence(
label_en='final',
label_zw='最終步驟',
subtest_tag_prefix='finalize',
kbd_shortcut='f',
subtest_list=[
# The pre-flight is to help operators checking if everything is OK.
# You can remove the step if you want a fully automated process.
AutomatedSubTest(
label_en='pre flight',
label_zw='就緒檢查',
autotest_name='factory_PreFinalCheck'),
# The finalize is required for every products.
# You can't remove this step.
AutomatedSubTest(
label_en='finalize',
label_zw='最終程序',
autotest_name='factory_Finalize',
dargs={
# TODO(hungte) we may need a hack to bypass most checks.
'check_required_tests': True,
'check_and_enable_write_protect': False,
'upload_method': _REPORT_UPLOAD_METHOD,
'secure_wipe': _DO_FACTORY_SECURE_WIPE,
})]),
InformationScreen(
label_en='review',
label_zw='報告',
autotest_name='factory_Review',
unique_name='ReviewInformation', # REVIEW_INFORMATION_TEST_UNIQUE_NAME
kbd_shortcut='z'),
]