generic_common ============== Inherit ------- - :doc:`base.test_list ` ActivateRegCode --------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`shopfloor_service <../pytests/shopfloor_service>` args ```` ``method`` :: "ActivateRegCode" AllCheckPoint ------------- pytest_name ``````````` :doc:`summary <../pytests/summary>` args ```` ``disable_input_on_fail`` :: true ``pass_without_prompt`` :: false ``accessibility`` :: true ``include_parents`` :: true Barrier ------- pytest_name ``````````` :doc:`summary <../pytests/summary>` args ```` ``disable_input_on_fail`` :: true ``pass_without_prompt`` :: true ``accessibility`` :: true BrandedChassis -------------- pytest_name ``````````` :doc:`branded_chassis <../pytests/branded_chassis>` args ```` ``rma_mode`` :: "eval! constants.factory_process == 'RMA'" Button ------ pytest_name ``````````` :doc:`button <../pytests/button>` args ```` ``timeout_secs`` :: 120 Buzzer ------ pytest_name ``````````` :doc:`buzzer <../pytests/buzzer>` args ```` ``gpio_index`` :: "eval! constants.buzzer.gpio_index" ``beep_duration_secs`` :: 0.3 ``mute_duration_secs`` :: 0.5 CEC --- pytest_name ``````````` :doc:`cec <../pytests/cec>` args ```` ``power_on`` :: false ``power_off`` :: false ChargeDischargeCurrent ---------------------- pytest_name ``````````` :doc:`battery_current <../pytests/battery_current>` args ```` ``min_charging_current`` :: 150 ``min_discharging_current`` :: 400 ``timeout_secs`` :: 30 ``max_battery_level`` :: 90 ChargerTypeDetection -------------------- pytest_name ``````````` :doc:`ac_power <../pytests/ac_power>` CheckDisplay ------------ pytest_name ``````````` :doc:`external_display <../pytests/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 ``````````` :doc:`feature_compliance_version <../pytests/feature_compliance_version>` args ```` ``hwid_need_vpd`` :: "eval! constants.hwid_need_vpd" ``rma_mode`` :: "eval! constants.factory_process == 'RMA'" CheckPDCFirmware ---------------- pytest_name ``````````` :doc:`check_pdc_firmware <../pytests/check_pdc_firmware>` args ```` ``min_fw_version_dec`` :: "0.0.0.0.0.0.27.0" CheckPoint ---------- pytest_name ``````````` :doc:`summary <../pytests/summary>` args ```` ``disable_input_on_fail`` :: true ``pass_without_prompt`` :: false ``accessibility`` :: true CheckReleaseImage ----------------- pytest_name ``````````` :doc:`check_image_version <../pytests/check_image_version>` args ```` ``check_release_image`` :: true ``use_netboot`` :: false CheckReleaseLVMStateful ----------------------- pytest_name ``````````` :doc:`check_release_lvm_stateful <../pytests/check_release_lvm_stateful>` CheckRetimerFirmware -------------------- pytest_name ``````````` :doc:`check_retimer_firmware <../pytests/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 ``````````` :doc:`check_serial_number <../pytests/check_serial_number>` ClearUnknownRWVPD ----------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "gooftool clear_unknown_vpd_entries" CopyMiniOS ---------- pytest_name ``````````` :doc:`copy_minios <../pytests/copy_minios>` Cr50SMTWriteFlashInfo --------------------- Make old definition as an alias of the new definition for backward compatibility run_if `````` :: constants.factory_process != 'FULL' pytest_name ``````````` :doc:`finalize <../pytests/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 ``````````` :doc:`finalize <../pytests/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 ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: [ "ectool cbi set 2 0x7fffffff 4", "ectool cbi remove 6" ] DisableLidSwitch ---------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "ectool forcelidopen 1" EnableLidSwitch --------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "ectool forcelidopen 0" ExecShell --------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` ExternalDisplay --------------- pytest_name ``````````` :doc:`external_display <../pytests/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 ``````````` :doc:`fan_speed <../pytests/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 ``````````` :doc:`finalize <../pytests/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 ``````````` :doc:`message <../pytests/message>` FlashNetboot ------------ pytest_name ``````````` :doc:`flash_netboot <../pytests/flash_netboot>` FlushTestlog ------------ run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/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 ``````````` :doc:`shopfloor_service <../pytests/shopfloor_service>` args ```` ``method`` :: "GetDeviceInfo" HPS --- run_if `````` :: device.component.has_hps pytest_name ``````````` :doc:`hps <../pytests/hps>` args ```` ``timeout_secs`` :: 3600 Idle ---- pytest_name ``````````` :doc:`nop <../pytests/nop>` Keyboard -------- pytest_name ``````````` :doc:`keyboard <../pytests/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 ``````````` :doc:`keyboard_backlight <../pytests/keyboard_backlight>` LED --- pytest_name ``````````` :doc:`led <../pytests/led>` args ```` ``challenge`` :: true LidSwitch --------- pytest_name ``````````` :doc:`lid_switch <../pytests/lid_switch>` LoadECButtonDriver ------------------ pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "sleep 3 && echo GOOG0007:00 > /sys/bus/platform/drivers/cros-ec-keyb/bind || true" Message ------- pytest_name ``````````` :doc:`message <../pytests/message>` ModelSKU -------- pytest_name ``````````` :doc:`model_sku <../pytests/model_sku>` args ```` ``config_name`` :: "model_sku" Mouse ----- pytest_name ``````````` :doc:`mouse <../pytests/mouse>` NotifyOverlordTrackConnection ----------------------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "ghost --track-connection y" NotifyOverlordUntrackConnection ------------------------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "ghost --track-connection n" PartitionTable -------------- pytest_name ``````````` :doc:`partition_table <../pytests/partition_table>` Placeholder ----------- pytest_name ``````````` :doc:`nop <../pytests/nop>` Probe ----- pytest_name ``````````` :doc:`probe.probe <../pytests/probe.probe>` args ```` ``config_file`` :: "probe.json" ProximitySensor --------------- run_if `````` :: not constants.has_device_data or device.component.has_proximity_sensor pytest_name ``````````` :doc:`proximity_sensor <../pytests/proximity_sensor>` ReSignReleaseKernel ------------------- run_if `````` :: constants.phase != 'PVT' and constants.grt.re_sign_release_kernel pytest_name ``````````` :doc:`update_kernel <../pytests/update_kernel>` args ```` ``to_release`` :: true ReadDeviceDataFromCrosConfig ---------------------------- pytest_name ``````````` :doc:`read_device_data_from_cros_config <../pytests/read_device_data_from_cros_config>` ReadDeviceDataFromVPD --------------------- pytest_name ``````````` :doc:`read_device_data_from_vpd <../pytests/read_device_data_from_vpd>` RemovableStorage ---------------- pytest_name ``````````` :doc:`removable_storage <../pytests/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 ``````````` :doc:`removable_storage <../pytests/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 ``````````` :doc:`scan <../pytests/scan>` SetWidevineKeybox ----------------- run_if `````` :: constants.has_keybox pytest_name ``````````` :doc:`provision_drm_key <../pytests/provision_drm_key>` ShopfloorNotifyEnd ------------------ run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`shopfloor_service <../pytests/shopfloor_service>` args ```` ``method`` :: "NotifyEnd" ``args`` :: [ "eval! locals.station" ] ShopfloorNotifyStart -------------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`shopfloor_service <../pytests/shopfloor_service>` args ```` ``method`` :: "NotifyStart" ``args`` :: [ "eval! locals.station" ] ShopfloorService ---------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`shopfloor_service <../pytests/shopfloor_service>` SpatialSensorCalibration ------------------------ pytest_name ``````````` :doc:`spatial_sensor_calibration <../pytests/spatial_sensor_calibration>` Start ----- pytest_name ``````````` :doc:`start <../pytests/start>` StationEndSyncFactoryServer --------------------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/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 ``````````` :doc:`suspend_resume <../pytests/suspend_resume>` SuspendStress ------------- pytest_name ``````````` :doc:`suspend_stress <../pytests/suspend_stress>` SyncFactoryServer ----------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/sync_factory_server>` args ```` ``server_url`` :: "eval! constants.default_factory_server_url" SyncFactoryServerUploadReport ----------------------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/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 ``````````` :doc:`thunderbolt_loopback <../pytests/thunderbolt_loopback>` ThermalSensors -------------- pytest_name ``````````` :doc:`thermal_sensors <../pytests/thermal_sensors>` ThermalSlope ------------ pytest_name ``````````` :doc:`thermal_slope <../pytests/thermal_slope>` URandom ------- pytest_name ``````````` :doc:`urandom <../pytests/urandom>` USBPerformance -------------- pytest_name ``````````` :doc:`removable_storage <../pytests/removable_storage>` args ```` ``block_size`` :: 524288 ``perform_random_test`` :: false ``perform_sequential_test`` :: true ``sequential_block_count`` :: 8 ``media`` :: "USB" USBTypeCManualCharge -------------------- pytest_name ``````````` :doc:`battery_current <../pytests/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 ``````````` :doc:`external_display <../pytests/external_display>` args ```` ``display_info`` :: [ "eval! locals.usb.display_info" ] UnloadECButtonDriver -------------------- pytest_name ``````````` :doc:`exec_shell <../pytests/exec_shell>` args ```` ``commands`` :: "echo GOOG0007:00 > /sys/bus/platform/drivers/cros-ec-keyb/unbind || true" UpdateCBI --------- pytest_name ``````````` :doc:`update_cbi <../pytests/update_cbi>` args ```` ``cbi_data_names`` :: [ "SKU_ID", "DRAM_PART_NUM", "PCB_SUPPLIER", "SSFC" ] UpdateDeviceData ---------------- pytest_name ``````````` :doc:`update_device_data <../pytests/update_device_data>` UpdateSKUID ----------- pytest_name ``````````` :doc:`update_cbi <../pytests/update_cbi>` args ```` ``cbi_data_names`` :: [ "SKU_ID" ] UploadRegCodes -------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/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 UploadSerialNumberForAuditing ----------------------------- run_if `````` :: constants.enable_factory_server pytest_name ``````````` :doc:`sync_factory_server <../pytests/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_sn`` :: true ``flush_testlog`` :: false UploadZeroTouchIds ------------------ run_if `````` :: constants.grt.enable_zero_touch and constants.grt.collect_zero_touch_ids pytest_name ``````````` :doc:`sync_factory_server <../pytests/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 ``````````` :doc:`verify_keybox <../pytests/verify_keybox>` WebGLAquarium ------------- pytest_name ``````````` :doc:`webgl_aquarium <../pytests/webgl_aquarium>` WirelessCharger --------------- run_if `````` :: not constants.has_device_data or device.component.has_wireless_charger pytest_name ``````````` :doc:`wireless_charge <../pytests/wireless_charge>` args ```` ``occupy_instruction`` :: "i18n! Attach peripheral to charging port" ``release_instruction`` :: "i18n! Remove peripheral from charging port" WriteDeviceDataToVPD -------------------- pytest_name ``````````` :doc:`write_device_data_to_vpd <../pytests/write_device_data_to_vpd>` WriteHWID --------- pytest_name ``````````` :doc:`hwid <../pytests/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 ``````````` :doc:`write_protect_switch <../pytests/write_protect_switch>` WriteRMAHWID ------------ pytest_name ``````````` :doc:`hwid <../pytests/hwid>` args ```` ``enable_factory_server`` :: "eval! constants.enable_factory_server" ``run_vpd`` :: "eval! constants.hwid_need_vpd" ``rma_mode`` :: true WriteTestHWID ------------- pytest_name ``````````` :doc:`exec_shell <../pytests/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 ``````````````` - `UnloadECButtonDriver`_ - :: { "args": { "button_key_name": "ectool:-H1_EC_RECOVERY_BTN_ODL", "button_name": "i18n! Recovery Button" }, "inherit": "Button", "label": "Recovery Button" } - `LoadECButtonDriver`_ 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 ``````````````` - `StationEndSyncFactoryServer`_ - `Barrier`_ - `ShopfloorNotifyEnd`_ - `Barrier`_ - `WriteDeviceDataToVPD`_ StationStart ------------ Serial subtests ``````````````` - `SyncFactoryServer`_ - `Barrier`_ - `ShopfloorNotifyStart`_ 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 ``````````````` - `USBTypeAManualLeft`_ - `USBTypeAManualRight`_ USBTypeATest ------------ Serial subtests ``````````````` - `USBTypeAManualLeft`_ - `USBTypeAManualRight`_ 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 ``````````````` - `USBTypeCManualLeft`_ - `USBTypeCManualRight`_ USBTypeCTest ------------ Serial subtests ``````````````` - `USBTypeCManualLeft`_ - `USBTypeCManualRight`_ UpdateFirmware -------------- Serial subtests ``````````````` - :: { "pytest_name": "update_firmware" } - `Barrier`_ - :: { "args": { "operation": "eval! constants.update_firmware.reboot_type" }, "inherit": "ShutdownStep", "label": "Reboot" }