generic_common

Inherit

ActivateRegCode

run_if

constants.enable_factory_server

pytest_name

shopfloor_service

args

method
"ActivateRegCode"

AllCheckPoint

pytest_name

summary

args

disable_input_on_fail
true
pass_without_prompt
false
accessibility
true
include_parents
true

Barrier

pytest_name

summary

args

disable_input_on_fail
true
pass_without_prompt
true
accessibility
true

BrandedChassis

pytest_name

branded_chassis

args

rma_mode
"eval! constants.factory_process == 'RMA'"

Button

pytest_name

button

args

timeout_secs
120

Buzzer

pytest_name

buzzer

args

gpio_index
"eval! constants.buzzer.gpio_index"
beep_duration_secs
0.3
mute_duration_secs
0.5

CEC

pytest_name

cec

args

power_on
false
power_off
false

ChargeDischargeCurrent

pytest_name

battery_current

args

min_charging_current
150
min_discharging_current
400
timeout_secs
30
max_battery_level
90

ChargerTypeDetection

pytest_name

ac_power

CheckDisplay

pytest_name

external_display

args

display_info
"eval! locals.display.display_info"
start_output_only
false
stop_output_only
false
connect_only
true
drm_sysfs_path
"/sys/class/drm/card0"

CheckFeatureCompliance

pytest_name

feature_compliance_version

args

hwid_need_vpd
"eval! constants.hwid_need_vpd"
rma_mode
"eval! constants.factory_process == 'RMA'"

CheckPoint

pytest_name

summary

args

disable_input_on_fail
true
pass_without_prompt
false
accessibility
true

CheckReleaseImage

pytest_name

check_image_version

args

check_release_image
true
use_netboot
false

CheckReleaseLVMStateful

pytest_name

check_release_lvm_stateful

CheckRetimerFirmware

pytest_name

check_retimer_firmware

args

controller_ports
"eval! constants.retimer.controller_ports"
usb_ports
"eval! constants.retimer.usb_ports"
min_retimer_version
"eval! constants.retimer.min_retimer_version"

CheckSerialNumber

pytest_name

check_serial_number

ClearUnknownRWVPD

pytest_name

exec_shell

args

commands
"gooftool clear_unknown_vpd_entries"

CopyMiniOS

pytest_name

copy_minios

Cr50SMTWriteFlashInfo

Make old definition as an alias of the new definition for backward compatibility

run_if

constants.factory_process != 'FULL'

pytest_name

finalize

args

upload_method
"eval! 'factory_server' if constants.enable_factory_server else 'none'"
mode
"eval! 'SHIMLESS_MLB' if constants.boot_to_shimless else 'MLB'"
factory_process
"eval! constants.factory_process"

Cr50WriteCustomlabelFlags

Make old definition as an alias of the new definition for backward compatibility

run_if

constants.factory_process != 'FULL'

pytest_name

finalize

args

upload_method
"eval! 'factory_server' if constants.enable_factory_server else 'none'"
mode
"eval! 'SHIMLESS_MLB' if constants.boot_to_shimless else 'MLB'"
factory_process
"eval! constants.factory_process"

DeprovisionCBI

pytest_name

exec_shell

args

commands
[
  "ectool cbi set 2 0x7fffffff 4",
  "ectool cbi remove 6"
]

DisableLidSwitch

pytest_name

exec_shell

args

commands
"ectool forcelidopen 1"

EnableLidSwitch

pytest_name

exec_shell

args

commands
"ectool forcelidopen 0"

ExecShell

pytest_name

exec_shell

ExternalDisplay

pytest_name

external_display

args

display_info
[
  {
    "display_id": "HDMI",
    "display_label": "HDMI External Display",
    "usbpd_spec": {
      "port": 0
    }
  }
]

Fan

run_if

constants.has_fan

pytest_name

fan_speed

args

probe_interval_secs
0.2
target_rpm
[
  3000,
  4500,
  6000
]
error_margin
300

FinalizeMLB

run_if

constants.factory_process != 'FULL'

pytest_name

finalize

args

upload_method
"eval! 'factory_server' if constants.enable_factory_server else 'none'"
mode
"eval! 'SHIMLESS_MLB' if constants.boot_to_shimless else 'MLB'"
factory_process
"eval! constants.factory_process"

Finish

pytest_name

message

FlashNetboot

pytest_name

flash_netboot

FlushTestlog

run_if

constants.enable_factory_server

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"
sync_event_logs
false
update_toolkit
false
upload_report
false
upload_reg_codes
false
flush_testlog
true

GetDeviceInfo

run_if

constants.enable_factory_server

pytest_name

shopfloor_service

args

method
"GetDeviceInfo"

HPS

run_if

device.component.has_hps

pytest_name

hps

args

timeout_secs
3600

Idle

pytest_name

nop

Keyboard

pytest_name

keyboard

args

allow_multi_keys
true
has_numpad
"eval! device.component.has_numeric_pad or False"

KeyboardBacklight

run_if

not constants.has_device_data or device.component.has_keyboard_backlight

pytest_name

keyboard_backlight

LED

pytest_name

led

args

challenge
true

LidSwitch

pytest_name

lid_switch

Message

pytest_name

message

ModelSKU

pytest_name

model_sku

args

config_name
"model_sku"

Mouse

pytest_name

mouse

NotifyOverlordTrackConnection

pytest_name

exec_shell

args

commands
"ghost --track-connection y"

NotifyOverlordUntrackConnection

pytest_name

exec_shell

args

commands
"ghost --track-connection n"

PartitionTable

pytest_name

partition_table

Placeholder

pytest_name

nop

Probe

pytest_name

probe.probe

args

config_file
"probe.json"

ProbeDeviceInfo

pytest_name

probe_device_info

ProximitySensor

run_if

not constants.has_device_data or device.component.has_proximity_sensor

pytest_name

proximity_sensor

ReSignReleaseKernel

run_if

constants.phase != 'PVT' and constants.grt.re_sign_release_kernel

pytest_name

update_kernel

args

to_release
true

ReadDeviceDataFromCrosConfig

pytest_name

read_device_data_from_cros_config

ReadDeviceDataFromVPD

pytest_name

read_device_data_from_vpd

RemovableStorage

pytest_name

removable_storage

args

block_size
524288
perform_random_test
false
perform_sequential_test
true
sequential_block_count
8

SDPerformance

run_if

constants.sd.sysfs_path != ''

pytest_name

removable_storage

args

block_size
524288
perform_random_test
false
perform_sequential_test
true
sequential_block_count
8
media
"SD"
sysfs_path
"eval! constants.sd.sysfs_path"
timeout_secs
60

Scan

pytest_name

scan

SetWidevineKeybox

run_if

constants.has_keybox

pytest_name

provision_drm_key

ShopfloorNotifyEnd

run_if

constants.enable_factory_server

pytest_name

shopfloor_service

args

method
"NotifyEnd"
args
[
  "eval! locals.station"
]

ShopfloorNotifyStart

run_if

constants.enable_factory_server

pytest_name

shopfloor_service

args

method
"NotifyStart"
args
[
  "eval! locals.station"
]

ShopfloorService

run_if

constants.enable_factory_server

pytest_name

shopfloor_service

SpatialSensorCalibration

pytest_name

spatial_sensor_calibration

Start

pytest_name

start

StationEndSyncFactoryServer

run_if

constants.enable_factory_server

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"
upload_report
"eval! locals.station_end_upload_report"
report_stage
"eval! locals.station"

SuspendResume

pytest_name

suspend_resume

SuspendStress

pytest_name

suspend_stress

SyncFactoryServer

run_if

constants.enable_factory_server

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"

SyncFactoryServerUploadReport

run_if

constants.enable_factory_server

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"
upload_report
true
report_stage
"eval! locals.station"

TBTLoopback

run_if

False

pytest_name

thunderbolt_loopback

ThermalSensors

pytest_name

thermal_sensors

ThermalSlope

pytest_name

thermal_slope

URandom

pytest_name

urandom

USBPerformance

pytest_name

removable_storage

args

block_size
524288
perform_random_test
false
perform_sequential_test
true
sequential_block_count
8
media
"USB"

USBTypeCManualCharge

pytest_name

battery_current

args

min_charging_current
150
min_discharging_current
400
timeout_secs
30
max_battery_level
90
usbpd_info
[
  "eval! locals.usb.usbpd_id",
  "eval! int(locals.voltage * 1000 * 0.9)",
  "eval! int(locals.voltage * 1000 * 1.1)"
]
usbpd_prompt
"eval! locals.usb_label"

USBTypeCManualExternalDisplay

pytest_name

external_display

args

display_info
[
  "eval! locals.usb.display_info"
]

UpdateCBI

pytest_name

update_cbi

args

cbi_data_names
[
  "SKU_ID",
  "DRAM_PART_NUM",
  "PCB_SUPPLIER",
  "SSFC"
]

UpdateDeviceData

pytest_name

update_device_data

UpdateSKUID

pytest_name

update_cbi

args

cbi_data_names
[
  "SKU_ID"
]

UploadRegCodes

run_if

constants.enable_factory_server

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"
sync_event_logs
false
sync_time
true
update_toolkit
false
upload_report
false
upload_reg_codes
true
flush_testlog
false

UploadZeroTouchIds

run_if

constants.grt.enable_zero_touch and constants.grt.collect_zero_touch_ids

pytest_name

sync_factory_server

args

server_url
"eval! constants.default_factory_server_url"
sync_event_logs
false
sync_time
true
update_toolkit
false
upload_report
false
upload_reg_codes
false
upload_zero_touch_ids
true
flush_testlog
false

VerifyWidevineKeybox

run_if

constants.has_keybox

pytest_name

verify_keybox

WebGLAquarium

pytest_name

webgl_aquarium

WirelessCharger

run_if

not constants.has_device_data or device.component.has_wireless_charger

pytest_name

wireless_charge

args

occupy_instruction
"i18n! Attach peripheral to charging port"
release_instruction
"i18n! Remove peripheral from charging port"

WriteDeviceDataToVPD

pytest_name

write_device_data_to_vpd

WriteHWID

pytest_name

hwid

args

enable_factory_server
"eval! constants.enable_factory_server"
run_vpd
"eval! constants.hwid_need_vpd"
rma_mode
"eval! constants.factory_process == 'RMA'"

WriteProtectSwitch

pytest_name

write_protect_switch

WriteRMAHWID

pytest_name

hwid

args

enable_factory_server
"eval! constants.enable_factory_server"
run_vpd
"eval! constants.hwid_need_vpd"
rma_mode
true

WriteTestHWID

pytest_name

exec_shell

args

commands
[
  "hwid read",
  "hwid write \"$(hwid generate_test)\""
]

CECHDMI1

Serial subtests

  • {
      "inherit": "CheckDisplay",
      "locals": {
        "display": "eval! constants.hdmi1"
      }
    }
    
  • {
      "args": {
        "index": 1
      },
      "inherit": "CEC"
    }
    

CECHDMI2

Serial subtests

  • {
      "inherit": "CheckDisplay",
      "locals": {
        "display": "eval! constants.hdmi2"
      }
    }
    
  • CEC

CECUSBTypeCHDMI

Serial subtests

  • {
      "args": {
        "connect_only": true,
        "start_output_only": false,
        "stop_output_only": false
      },
      "inherit": "USBTypeCManualExternalDisplay"
    }
    
  • {
      "args": {
        "index": 1
      },
      "inherit": "CEC"
    }
    

ClearFactoryVPDEntries

Serial subtests

  • {
      "args": {
        "commands": "gooftool clear_factory_vpd_entries"
      },
      "inherit": "ExecShell",
      "label": "Clear factory VPD entries",
      "related_components": [
        "test_tags.TestCategory.VPD"
      ]
    }
    
  • RebootStep

ColdReset

Serial subtests

  • {
      "args": {
        "commands": "ectool reboot_ec cold at-shutdown"
      },
      "inherit": "ExecShell",
      "label": "EC Cold Reset"
    }
    
  • HaltStep

EnableECWriteProtect

This test group explicitly disables factory mode and enables EC write protection after rebooting. Run this test group before finalization if the project uses STM32 chips for EC, otherwise finalization may fail. STM32 chips are likely to be used in ARM projects, and they require an EC reboot to let write protect settings take effect. Note that this disables the factory mode in advance, usually we disable the factory mode in finalize step. So it’s better to run this test as close to finalize step.

Serial subtests

  • {
      "args": {
        "commands": [
          "gsctool -a -F disable | true",
          "ectool flashprotect enable",
          "ectool reboot_ec RO at-shutdown"
        ]
      },
      "pytest_name": "exec_shell"
    }
    
  • RebootStep

HWButton

Serial subtests

  • {
      "args": {
        "button_key_name": "KEY_VOLUMEDOWN",
        "button_name": "i18n! Volume Down"
      },
      "inherit": "Button",
      "label": "Volume Down"
    }
    
  • {
      "args": {
        "button_key_name": "KEY_VOLUMEUP",
        "button_name": "i18n! Volume Up"
      },
      "inherit": "Button",
      "label": "Volume Up"
    }
    
  • {
      "args": {
        "button_key_name": "KEY_POWER",
        "button_name": "i18n! Power Button"
      },
      "inherit": "Button",
      "label": "Power Button"
    }
    

RecoveryButtonGroup

Serial subtests

  • {
      "args": {
        "commands": "echo GOOG0007:00 > /sys/bus/platform/drivers/cros-ec-keyb/unbind || true"
      },
      "label": "Unload Driver",
      "pytest_name": "exec_shell"
    }
    
  • {
      "args": {
        "button_key_name": "ectool:-H1_EC_RECOVERY_BTN_ODL",
        "button_name": "i18n! Recovery Button"
      },
      "inherit": "Button",
      "label": "Recovery Button"
    }
    
  • {
      "args": {
        "commands": "sleep 3 && echo GOOG0007:00 > /sys/bus/platform/drivers/cros-ec-keyb/bind || true"
      },
      "label": "Load Driver",
      "pytest_name": "exec_shell"
    }
    

SetWidevineKeyboxGroup

run_if

constants.has_keybox

Serial subtests

  • {
      "args": {
        "commands": "vpd -d widevine_keybox; rm /var/lib/oemcrypto/wrapped_amd_keybox || true"
      },
      "inherit": "ExecShell",
      "label": "Reset Widevine keyboxes"
    }
    
  • RebootStep

  • SetWidevineKeybox

StationEnd

Serial subtests

StationStart

Serial subtests

USBTypeAManualLeft

Serial subtests

  • {
      "args": {
        "sysfs_path": "eval! constants.typea_usb.left.usb2_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB2 TypeA Performance",
      "run_if": "constants.typea_usb.left.usb2_sysfs_path != ''"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! constants.typea_usb.left.usb3_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB3 TypeA Performance",
      "run_if": "constants.typea_usb.left.usb3_sysfs_path != ''"
    }
    

USBTypeAManualRight

Serial subtests

  • {
      "args": {
        "sysfs_path": "eval! constants.typea_usb.right.usb2_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB2 TypeA Performance",
      "run_if": "constants.typea_usb.right.usb2_sysfs_path != ''"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! constants.typea_usb.right.usb3_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB3 TypeA Performance",
      "run_if": "constants.typea_usb.right.usb3_sysfs_path != ''"
    }
    

USBTypeAManualTest

Serial subtests

USBTypeATest

Serial subtests

USBTypeCManualBase

Serial subtests

  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          1
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC1 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          2
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC2 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb2_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB2 Performance"
    }
    
  • {
      "args": {
        "controller_port": "eval! locals.usb.tbt_controller_port",
        "usbpd_spec": {
          "port": "eval! locals.usb.usbpd_id"
        }
      },
      "inherit": "TBTLoopback"
    }
    
  • USBTypeCManualChargeItems

  • USBTypeCManualExternalDisplay

  • Barrier

USBTypeCManualChargeItems

Serial subtests

  • {
      "inherit": "USBTypeCManualCharge",
      "label": "20V Charging",
      "locals": {
        "voltage": 20
      }
    }
    
  • {
      "inherit": "USBTypeCManualCharge",
      "label": "5V Charging",
      "locals": {
        "voltage": 5
      }
    }
    

USBTypeCManualLeft

Serial subtests

  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          1
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC1 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          2
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC2 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb2_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB2 Performance"
    }
    
  • {
      "args": {
        "controller_port": "eval! locals.usb.tbt_controller_port",
        "usbpd_spec": {
          "port": "eval! locals.usb.usbpd_id"
        }
      },
      "inherit": "TBTLoopback"
    }
    
  • USBTypeCManualChargeItems

  • USBTypeCManualExternalDisplay

  • Barrier

USBTypeCManualRight

Serial subtests

  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          1
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC1 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb3_sysfs_path",
        "usbpd_port_polarity": [
          "eval! locals.usb.usbpd_id",
          2
        ]
      },
      "inherit": "USBPerformance",
      "label": "USB3 CC2 Performance"
    }
    
  • {
      "args": {
        "sysfs_path": "eval! locals.usb.usb2_sysfs_path"
      },
      "inherit": "USBPerformance",
      "label": "USB2 Performance"
    }
    
  • {
      "args": {
        "controller_port": "eval! locals.usb.tbt_controller_port",
        "usbpd_spec": {
          "port": "eval! locals.usb.usbpd_id"
        }
      },
      "inherit": "TBTLoopback"
    }
    
  • USBTypeCManualChargeItems

  • USBTypeCManualExternalDisplay

  • Barrier

USBTypeCManualTest

Serial subtests

USBTypeCTest

Serial subtests

UpdateFirmware

Serial subtests

  • {
      "pytest_name": "update_firmware"
    }
    
  • Barrier

  • {
      "args": {
        "operation": "eval! constants.update_firmware.reboot_type"
      },
      "inherit": "ShutdownStep",
      "label": "Reboot"
    }