# SPDX-License-Identifier: GPL-2.0 # (C) Copyright 2023, Advanced Micro Devices, Inc. import pytest """ Note: This test relies on boardenv_* containing configuration values to define the SCSI device number, type and capacity. This test will be automatically skipped without this. For example: # Setup env__scsi_device_test to set the SCSI device number/slot, the type of device, and the device capacity in MB. env__scsi_device_test = { 'dev_num': 0, 'device_type': 'Hard Disk', 'device_capacity': '476940.0 MB', } """ def scsi_setup(u_boot_console): f = u_boot_console.config.env.get('env__scsi_device_test', None) if not f: pytest.skip('No SCSI device to test') dev_num = f.get('dev_num', None) if not isinstance(dev_num, int): pytest.skip('No device number specified in env file to read') dev_type = f.get('device_type') if not dev_type: pytest.skip('No device type specified in env file to read') dev_size = f.get('device_capacity') if not dev_size: pytest.skip('No device capacity specified in env file to read') return dev_num, dev_type, dev_size @pytest.mark.buildconfigspec('cmd_scsi') def test_scsi_reset(u_boot_console): dev_num, dev_type, dev_size = scsi_setup(u_boot_console) output = u_boot_console.run_command('scsi reset') assert f'Device {dev_num}:' in output assert f'Type: {dev_type}' in output assert f'Capacity: {dev_size}' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_scsi') def test_scsi_info(u_boot_console): dev_num, dev_type, dev_size = scsi_setup(u_boot_console) output = u_boot_console.run_command('scsi info') assert f'Device {dev_num}:' in output assert f'Type: {dev_type}' in output assert f'Capacity: {dev_size}' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_scsi') def test_scsi_scan(u_boot_console): dev_num, dev_type, dev_size = scsi_setup(u_boot_console) output = u_boot_console.run_command('scsi scan') assert f'Device {dev_num}:' in output assert f'Type: {dev_type}' in output assert f'Capacity: {dev_size}' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_scsi') def test_scsi_dev(u_boot_console): dev_num, dev_type, dev_size = scsi_setup(u_boot_console) output = u_boot_console.run_command('scsi device') assert 'no scsi devices available' not in output assert f'device {dev_num}:' in output assert f'Type: {dev_type}' in output assert f'Capacity: {dev_size}' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0') output = u_boot_console.run_command('scsi device %d' % dev_num) assert 'is now current device' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_scsi') def test_scsi_part(u_boot_console): test_scsi_dev(u_boot_console) output = u_boot_console.run_command('scsi part') assert 'Partition Map for scsi device' in output output = u_boot_console.run_command('echo $?') assert output.endswith('0')