blob: 2a35e47e55810400937652cd289081386c9b6f50 [file] [log] [blame]
Love Kumaraaf4a622024-01-19 20:07:13 +05301# SPDX-License-Identifier: GPL-2.0
2# (C) Copyright 2023, Advanced Micro Devices, Inc.
3
4import pytest
5
6"""
7Note: This test relies on boardenv_* containing configuration values to define
8the SCSI device number, type and capacity. This test will be automatically
9skipped without this.
10
11For example:
12
13# Setup env__scsi_device_test to set the SCSI device number/slot, the type of
14device, and the device capacity in MB.
15env__scsi_device_test = {
16 'dev_num': 0,
17 'device_type': 'Hard Disk',
18 'device_capacity': '476940.0 MB',
19}
20"""
21
Simon Glassddba5202025-02-09 09:07:14 -070022def scsi_setup(ubman):
23 f = ubman.config.env.get('env__scsi_device_test', None)
Love Kumaraaf4a622024-01-19 20:07:13 +053024 if not f:
25 pytest.skip('No SCSI device to test')
26
27 dev_num = f.get('dev_num', None)
28 if not isinstance(dev_num, int):
29 pytest.skip('No device number specified in env file to read')
30
31 dev_type = f.get('device_type')
32 if not dev_type:
33 pytest.skip('No device type specified in env file to read')
34
35 dev_size = f.get('device_capacity')
36 if not dev_size:
37 pytest.skip('No device capacity specified in env file to read')
38
39 return dev_num, dev_type, dev_size
40
41@pytest.mark.buildconfigspec('cmd_scsi')
Simon Glassddba5202025-02-09 09:07:14 -070042def test_scsi_reset(ubman):
43 dev_num, dev_type, dev_size = scsi_setup(ubman)
44 output = ubman.run_command('scsi reset')
Love Kumaraaf4a622024-01-19 20:07:13 +053045 assert f'Device {dev_num}:' in output
46 assert f'Type: {dev_type}' in output
47 assert f'Capacity: {dev_size}' in output
Simon Glassddba5202025-02-09 09:07:14 -070048 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053049 assert output.endswith('0')
50
51@pytest.mark.buildconfigspec('cmd_scsi')
Simon Glassddba5202025-02-09 09:07:14 -070052def test_scsi_info(ubman):
53 dev_num, dev_type, dev_size = scsi_setup(ubman)
54 output = ubman.run_command('scsi info')
Love Kumaraaf4a622024-01-19 20:07:13 +053055 assert f'Device {dev_num}:' in output
56 assert f'Type: {dev_type}' in output
57 assert f'Capacity: {dev_size}' in output
Simon Glassddba5202025-02-09 09:07:14 -070058 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053059 assert output.endswith('0')
60
61@pytest.mark.buildconfigspec('cmd_scsi')
Simon Glassddba5202025-02-09 09:07:14 -070062def test_scsi_scan(ubman):
63 dev_num, dev_type, dev_size = scsi_setup(ubman)
64 output = ubman.run_command('scsi scan')
Love Kumaraaf4a622024-01-19 20:07:13 +053065 assert f'Device {dev_num}:' in output
66 assert f'Type: {dev_type}' in output
67 assert f'Capacity: {dev_size}' in output
Simon Glassddba5202025-02-09 09:07:14 -070068 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053069 assert output.endswith('0')
70
71@pytest.mark.buildconfigspec('cmd_scsi')
Simon Glassddba5202025-02-09 09:07:14 -070072def test_scsi_dev(ubman):
73 dev_num, dev_type, dev_size = scsi_setup(ubman)
74 output = ubman.run_command('scsi device')
Love Kumaraaf4a622024-01-19 20:07:13 +053075 assert 'no scsi devices available' not in output
76 assert f'device {dev_num}:' in output
77 assert f'Type: {dev_type}' in output
78 assert f'Capacity: {dev_size}' in output
Simon Glassddba5202025-02-09 09:07:14 -070079 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053080 assert output.endswith('0')
Simon Glassddba5202025-02-09 09:07:14 -070081 output = ubman.run_command('scsi device %d' % dev_num)
Love Kumaraaf4a622024-01-19 20:07:13 +053082 assert 'is now current device' in output
Simon Glassddba5202025-02-09 09:07:14 -070083 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053084 assert output.endswith('0')
85
86@pytest.mark.buildconfigspec('cmd_scsi')
Simon Glassddba5202025-02-09 09:07:14 -070087def test_scsi_part(ubman):
88 test_scsi_dev(ubman)
89 output = ubman.run_command('scsi part')
Heinrich Schuchardte4319112024-04-03 13:40:47 +020090 assert 'Partition Map for scsi device' in output
Simon Glassddba5202025-02-09 09:07:14 -070091 output = ubman.run_command('echo $?')
Love Kumaraaf4a622024-01-19 20:07:13 +053092 assert output.endswith('0')