diff options
Diffstat (limited to 'test/py/tests/test_usb.py')
-rw-r--r-- | test/py/tests/test_usb.py | 368 |
1 files changed, 188 insertions, 180 deletions
diff --git a/test/py/tests/test_usb.py b/test/py/tests/test_usb.py index fb3d20f0826..1dcd0834f55 100644 --- a/test/py/tests/test_usb.py +++ b/test/py/tests/test_usb.py @@ -4,7 +4,7 @@ import pytest import random import re -import u_boot_utils +import utils """ Note: This test doesn't rely on boardenv_* configuration values but it can @@ -20,20 +20,20 @@ For example: env__usb_device_test_skip = False """ -def setup_usb(u_boot_console): - if u_boot_console.config.env.get('env__usb_device_test_skip', True): +def setup_usb(ubman): + if ubman.config.env.get('env__usb_device_test_skip', True): pytest.skip('USB device test is not enabled') @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_start(u_boot_console): - setup_usb(u_boot_console) - output = u_boot_console.run_command('usb start') +def test_usb_start(ubman): + setup_usb(ubman) + output = ubman.run_command('usb start') # if output is empty, usb start may already run as part of preboot command # re-start the usb, in that case if not output: - u_boot_console.run_command('usb stop') - output = u_boot_console.run_command('usb start') + ubman.run_command('usb stop') + output = ubman.run_command('usb start') if 'No USB device found' in output: pytest.skip('No USB controller available') @@ -61,26 +61,26 @@ def test_usb_start(u_boot_console): if 'Starting the controller' in output: assert 'USB XHCI' in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') return controllers, storage_device @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_stop(u_boot_console): - setup_usb(u_boot_console) - output = u_boot_console.run_command('usb stop') +def test_usb_stop(ubman): + setup_usb(ubman) + output = ubman.run_command('usb stop') assert 'stopping USB..' in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') - output = u_boot_console.run_command('usb dev') + output = ubman.run_command('usb dev') assert "USB is stopped. Please issue 'usb start' first." in output @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_reset(u_boot_console): - setup_usb(u_boot_console) - output = u_boot_console.run_command('usb reset') +def test_usb_reset(ubman): + setup_usb(ubman) + output = ubman.run_command('usb reset') if 'No USB device found' in output: pytest.skip('No USB controller available') @@ -107,13 +107,13 @@ def test_usb_reset(u_boot_console): if 'Starting the controller' in output: assert 'USB XHCI' in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_info(u_boot_console): - controllers, storage_device = test_usb_start(u_boot_console) - output = u_boot_console.run_command('usb info') +def test_usb_info(ubman): + controllers, storage_device = test_usb_start(ubman) + output = ubman.run_command('usb info') num_controller = len(re.findall(': Hub,', output)) num_mass_storage = len(re.findall(': Mass Storage,', output)) @@ -121,22 +121,22 @@ def test_usb_info(u_boot_console): assert num_controller == controllers - 1 assert num_mass_storage == storage_device - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') for i in range(0, storage_device + controllers - 1): - output = u_boot_console.run_command('usb info %d' % i) + output = ubman.run_command('usb info %d' % i) num_controller = len(re.findall(': Hub,', output)) num_mass_storage = len(re.findall(': Mass Storage,', output)) assert num_controller + num_mass_storage == 1 assert 'No device available' not in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_tree(u_boot_console): - controllers, storage_device = test_usb_start(u_boot_console) - output = u_boot_console.run_command('usb tree') +def test_usb_tree(ubman): + controllers, storage_device = test_usb_start(ubman) + output = ubman.run_command('usb tree') num_controller = len(re.findall('Hub', output)) num_mass_storage = len(re.findall('Mass Storage', output)) @@ -144,14 +144,14 @@ def test_usb_tree(u_boot_console): assert num_controller == controllers - 1 assert num_mass_storage == storage_device - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('usb_storage') -def test_usb_storage(u_boot_console): - controllers, storage_device = test_usb_start(u_boot_console) - output = u_boot_console.run_command('usb storage') +def test_usb_storage(ubman): + controllers, storage_device = test_usb_start(ubman) + output = ubman.run_command('usb storage') obj = re.findall(r'Capacity: (\d+|\d+[\.]?\d)', output) devices = {} @@ -167,17 +167,17 @@ def test_usb_storage(u_boot_console): except ValueError: pytest.fail('USB storage device capacity not recognized') - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_dev(u_boot_console): - controllers, storage_device = test_usb_start(u_boot_console) - output = u_boot_console.run_command('usb dev') +def test_usb_dev(ubman): + controllers, storage_device = test_usb_start(ubman) + output = ubman.run_command('usb dev') assert 'no usb devices available' not in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') devices = {} @@ -188,7 +188,7 @@ def test_usb_dev(u_boot_console): fail = 0 for x in range(0, storage_device): devices[x]['detected'] = 'yes' - output = u_boot_console.run_command('usb dev %d' % x) + output = ubman.run_command('usb dev %d' % x) if 'Card did not respond to voltage select' in output: fail = 1 @@ -201,7 +201,7 @@ def test_usb_dev(u_boot_console): devices[x]['detected'] = 'no' assert 'is now current device' in output - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') if fail: @@ -210,24 +210,25 @@ def test_usb_dev(u_boot_console): return devices, controllers, storage_device @pytest.mark.buildconfigspec('cmd_usb') -def test_usb_part(u_boot_console): - devices, controllers, storage_device = test_usb_dev(u_boot_console) +def test_usb_part(ubman): + devices, controllers, storage_device = test_usb_dev(ubman) if not devices: pytest.skip('No devices detected') - u_boot_console.run_command('usb part') + ubman.run_command('usb part') - output = u_boot_console.run_command('echo $?') + output = ubman.run_command('echo $?') assert output.endswith('0') for i in range(0, storage_device): if devices[i]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % i) - output = u_boot_console.run_command('usb part') + ubman.run_command('usb dev %d' % i) + output = ubman.run_command('usb part') lines = output.split('\n') part_fat = [] - part_ext = [] + part_ext2 = [] + part_ext4 = [] for line in lines: obj = re.search(r'(\d)\s+\d+\s+\d+\s+\w+\d+\w+-\d+\s+(\d+\w+)', line) if obj: @@ -239,23 +240,29 @@ def test_usb_part(u_boot_console): print('Fat detected') part_fat.append(part_id) elif part_type == '83': - print('ext detected') - part_ext.append(part_id) + print('ext(2/4) detected') + output = ubman.run_command( + 'fstype usb %d:%d' % (i, part_id) + ) + if 'ext2' in output: + part_ext2.append(part_id) + elif 'ext4' in output: + part_ext4.append(part_id) else: pytest.fail('Unsupported Filesystem on device %d' % i) - devices[i]['ext4'] = part_ext - devices[i]['ext2'] = part_ext + devices[i]['ext4'] = part_ext4 + devices[i]['ext2'] = part_ext2 devices[i]['fat'] = part_fat - if not part_ext and not part_fat: + if not part_ext2 and not part_ext4 and not part_fat: pytest.fail('No partition detected on device %d' % i) return devices, controllers, storage_device @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_fat') -def test_usb_fatls_fatinfo(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_fatls_fatinfo(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -263,7 +270,7 @@ def test_usb_fatls_fatinfo(u_boot_console): fs = 'fat' for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) try: partitions = devices[x][fs] except: @@ -271,7 +278,7 @@ def test_usb_fatls_fatinfo(u_boot_console): continue for part in partitions: - output = u_boot_console.run_command('fatls usb %d:%s' % (x, part)) + output = ubman.run_command('fatls usb %d:%s' % (x, part)) if 'Unrecognized filesystem type' in output: partitions.remove(part) pytest.fail('Unrecognized filesystem') @@ -279,7 +286,7 @@ def test_usb_fatls_fatinfo(u_boot_console): if not re.search(r'\d file\(s\), \d dir\(s\)', output): pytest.fail('%s read failed on device %d' % (fs.upper, x)) - output = u_boot_console.run_command('fatinfo usb %d:%s' % (x, part)) + output = ubman.run_command('fatinfo usb %d:%s' % (x, part)) string = 'Filesystem: %s' % fs.upper if re.search(string, output): pytest.fail('%s FS failed on device %d' % (fs.upper(), x)) @@ -288,11 +295,52 @@ def test_usb_fatls_fatinfo(u_boot_console): if not part_detect: pytest.skip('No %s partition detected' % fs.upper()) +def usb_fatload_fatwrite(ubman, fs, x, part): + addr = utils.find_ram_base(ubman) + size = random.randint(4, 1 * 1024 * 1024) + output = ubman.run_command('crc32 %x %x' % (addr, size)) + m = re.search('==> (.+?)', output) + if not m: + pytest.fail('CRC32 failed') + expected_crc32 = m.group(1) + + file = '%s_%d' % ('uboot_test', size) + output = ubman.run_command( + '%swrite usb %d:%s %x %s %x' % (fs, x, part, addr, file, size) + ) + assert 'Unable to write' not in output + assert 'Error' not in output + assert 'overflow' not in output + expected_text = '%d bytes written' % size + assert expected_text in output + + alignment = int( + ubman.config.buildconfig.get( + 'config_sys_cacheline_size', 128 + ) + ) + offset = random.randrange(alignment, 1024, alignment) + output = ubman.run_command( + '%sload usb %d:%s %x %s' % (fs, x, part, addr + offset, file) + ) + assert 'Invalid FAT entry' not in output + assert 'Unable to read file' not in output + assert 'Misaligned buffer address' not in output + expected_text = '%d bytes read' % size + assert expected_text in output + + output = ubman.run_command( + 'crc32 %x $filesize' % (addr + offset) + ) + assert expected_crc32 in output + + return file, size, expected_crc32 + @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_fat') @pytest.mark.buildconfigspec('cmd_memory') -def test_usb_fatload_fatwrite(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_fatload_fatwrite(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -300,7 +348,7 @@ def test_usb_fatload_fatwrite(u_boot_console): fs = 'fat' for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) try: partitions = devices[x][fs] except: @@ -309,53 +357,15 @@ def test_usb_fatload_fatwrite(u_boot_console): for part in partitions: part_detect = 1 - addr = u_boot_utils.find_ram_base(u_boot_console) - size = random.randint(4, 1 * 1024 * 1024) - output = u_boot_console.run_command('crc32 %x %x' % (addr, size)) - m = re.search('==> (.+?)', output) - if not m: - pytest.fail('CRC32 failed') - expected_crc32 = m.group(1) - - file = '%s_%d' % ('uboot_test', size) - output = u_boot_console.run_command( - '%swrite usb %d:%s %x %s %x' % (fs, x, part, addr, file, size) - ) - assert 'Unable to write' not in output - assert 'Error' not in output - assert 'overflow' not in output - expected_text = '%d bytes written' % size - assert expected_text in output - - alignment = int( - u_boot_console.config.buildconfig.get( - 'config_sys_cacheline_size', 128 - ) - ) - offset = random.randrange(alignment, 1024, alignment) - output = u_boot_console.run_command( - '%sload usb %d:%s %x %s' % (fs, x, part, addr + offset, file) - ) - assert 'Invalid FAT entry' not in output - assert 'Unable to read file' not in output - assert 'Misaligned buffer address' not in output - expected_text = '%d bytes read' % size - assert expected_text in output - - output = u_boot_console.run_command( - 'crc32 %x $filesize' % (addr + offset) - ) - assert expected_crc32 in output + usb_fatload_fatwrite(ubman, fs, x, part) if not part_detect: pytest.skip('No %s partition detected' % fs.upper()) - return file, size - @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_ext4') -def test_usb_ext4ls(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_ext4ls(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -369,9 +379,9 @@ def test_usb_ext4ls(u_boot_console): print('No %s table on this device' % fs.upper()) continue - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) for part in partitions: - output = u_boot_console.run_command('%sls usb %d:%s' % (fs, x, part)) + output = ubman.run_command('%sls usb %d:%s' % (fs, x, part)) if 'Unrecognized filesystem type' in output: partitions.remove(part) pytest.fail('Unrecognized filesystem') @@ -380,12 +390,45 @@ def test_usb_ext4ls(u_boot_console): if not part_detect: pytest.skip('No %s partition detected' % fs.upper()) +def usb_ext4load_ext4write(ubman, fs, x, part): + addr = utils.find_ram_base(ubman) + size = random.randint(4, 1 * 1024 * 1024) + output = ubman.run_command('crc32 %x %x' % (addr, size)) + m = re.search('==> (.+?)', output) + if not m: + pytest.fail('CRC32 failed') + expected_crc32 = m.group(1) + file = '%s_%d' % ('uboot_test', size) + + output = ubman.run_command( + '%swrite usb %d:%s %x /%s %x' % (fs, x, part, addr, file, size) + ) + assert 'Unable to write' not in output + assert 'Error' not in output + assert 'overflow' not in output + expected_text = '%d bytes written' % size + assert expected_text in output + + offset = random.randrange(128, 1024, 128) + output = ubman.run_command( + '%sload usb %d:%s %x /%s' % (fs, x, part, addr + offset, file) + ) + expected_text = '%d bytes read' % size + assert expected_text in output + + output = ubman.run_command( + 'crc32 %x $filesize' % (addr + offset) + ) + assert expected_crc32 in output + + return file, size, expected_crc32 + @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_ext4') -@pytest.mark.buildconfigspec('ext4_write') +@pytest.mark.buildconfigspec('cmd_ext4_write') @pytest.mark.buildconfigspec('cmd_memory') -def test_usb_ext4load_ext4write(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_ext4load_ext4write(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -393,7 +436,7 @@ def test_usb_ext4load_ext4write(u_boot_console): fs = 'ext4' for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) try: partitions = devices[x][fs] except: @@ -402,45 +445,15 @@ def test_usb_ext4load_ext4write(u_boot_console): for part in partitions: part_detect = 1 - addr = u_boot_utils.find_ram_base(u_boot_console) - size = random.randint(4, 1 * 1024 * 1024) - output = u_boot_console.run_command('crc32 %x %x' % (addr, size)) - m = re.search('==> (.+?)', output) - if not m: - pytest.fail('CRC32 failed') - expected_crc32 = m.group(1) - file = '%s_%d' % ('uboot_test', size) - - output = u_boot_console.run_command( - '%swrite usb %d:%s %x /%s %x' % (fs, x, part, addr, file, size) - ) - assert 'Unable to write' not in output - assert 'Error' not in output - assert 'overflow' not in output - expected_text = '%d bytes written' % size - assert expected_text in output - - offset = random.randrange(128, 1024, 128) - output = u_boot_console.run_command( - '%sload usb %d:%s %x /%s' % (fs, x, part, addr + offset, file) - ) - expected_text = '%d bytes read' % size - assert expected_text in output - - output = u_boot_console.run_command( - 'crc32 %x $filesize' % (addr + offset) - ) - assert expected_crc32 in output + usb_ext4load_ext4write(ubman, fs, x, part) if not part_detect: pytest.skip('No %s partition detected' % fs.upper()) - return file, size - @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_ext2') -def test_usb_ext2ls(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_ext2ls(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -448,7 +461,7 @@ def test_usb_ext2ls(u_boot_console): fs = 'ext2' for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) try: partitions = devices[x][fs] except: @@ -457,7 +470,7 @@ def test_usb_ext2ls(u_boot_console): for part in partitions: part_detect = 1 - output = u_boot_console.run_command('%sls usb %d:%s' % (fs, x, part)) + output = ubman.run_command('%sls usb %d:%s' % (fs, x, part)) if 'Unrecognized filesystem type' in output: partitions.remove(part) pytest.fail('Unrecognized filesystem') @@ -469,11 +482,10 @@ def test_usb_ext2ls(u_boot_console): @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_ext2') @pytest.mark.buildconfigspec('cmd_ext4') -@pytest.mark.buildconfigspec('ext4_write') +@pytest.mark.buildconfigspec('cmd_ext4_write') @pytest.mark.buildconfigspec('cmd_memory') -def test_usb_ext2load(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) - file, size = test_usb_ext4load_ext4write(u_boot_console) +def test_usb_ext2load(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') @@ -482,7 +494,7 @@ def test_usb_ext2load(u_boot_console): fs = 'ext2' for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) + ubman.run_command('usb dev %d' % x) try: partitions = devices[x][fs] except: @@ -491,21 +503,18 @@ def test_usb_ext2load(u_boot_console): for part in partitions: part_detect = 1 - addr = u_boot_utils.find_ram_base(u_boot_console) - output = u_boot_console.run_command('crc32 %x %x' % (addr, size)) - m = re.search('==> (.+?)', output) - if not m: - pytest.fail('CRC32 failed') - expected_crc32 = m.group(1) + file, size, expected_crc32 = \ + usb_ext4load_ext4write(ubman, fs, x, part) + addr = utils.find_ram_base(ubman) offset = random.randrange(128, 1024, 128) - output = u_boot_console.run_command( + output = ubman.run_command( '%sload usb %d:%s %x /%s' % (fs, x, part, addr + offset, file) ) expected_text = '%d bytes read' % size assert expected_text in output - output = u_boot_console.run_command( + output = ubman.run_command( 'crc32 %x $filesize' % (addr + offset) ) assert expected_crc32 in output @@ -515,16 +524,16 @@ def test_usb_ext2load(u_boot_console): @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_fs_generic') -def test_usb_ls(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_ls(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') part_detect = 0 for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) - for fs in ['fat', 'ext4']: + ubman.run_command('usb dev %d' % x) + for fs in ['fat', 'ext2', 'ext4']: try: partitions = devices[x][fs] except: @@ -533,7 +542,7 @@ def test_usb_ls(u_boot_console): for part in partitions: part_detect = 1 - output = u_boot_console.run_command('ls usb %d:%s' % (x, part)) + output = ubman.run_command('ls usb %d:%s' % (x, part)) if re.search(r'No \w+ table on this device', output): pytest.fail( '%s: Partition table not found %d' % (fs.upper(), x) @@ -543,17 +552,18 @@ def test_usb_ls(u_boot_console): pytest.skip('No partition detected') @pytest.mark.buildconfigspec('cmd_usb') +@pytest.mark.buildconfigspec('cmd_ext4_write') @pytest.mark.buildconfigspec('cmd_fs_generic') -def test_usb_load(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_load(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') part_detect = 0 for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) - for fs in ['fat', 'ext4']: + ubman.run_command('usb dev %d' % x) + for fs in ['fat', 'ext2', 'ext4']: try: partitions = devices[x][fs] except: @@ -562,27 +572,25 @@ def test_usb_load(u_boot_console): for part in partitions: part_detect = 1 - addr = u_boot_utils.find_ram_base(u_boot_console) + addr = utils.find_ram_base(ubman) if fs == 'fat': - file, size = test_usb_fatload_fatwrite(u_boot_console) - elif fs == 'ext4': - file, size = test_usb_ext4load_ext4write(u_boot_console) - - output = u_boot_console.run_command('crc32 %x %x' % (addr, size)) - m = re.search('==> (.+?)', output) - if not m: - pytest.fail('CRC32 failed') - expected_crc32 = m.group(1) + file, size, expected_crc32 = \ + usb_fatload_fatwrite(ubman, fs, x, part) + elif fs in ['ext4', 'ext2']: + file, size, expected_crc32 = \ + usb_ext4load_ext4write(ubman, fs, x, part) + else: + raise Exception('Unsupported filesystem type %s' % fs) offset = random.randrange(128, 1024, 128) - output = u_boot_console.run_command( + output = ubman.run_command( 'load usb %d:%s %x /%s' % (x, part, addr + offset, file) ) expected_text = '%d bytes read' % size assert expected_text in output - output = u_boot_console.run_command( + output = ubman.run_command( 'crc32 %x $filesize' % (addr + offset) ) assert expected_crc32 in output @@ -592,16 +600,16 @@ def test_usb_load(u_boot_console): @pytest.mark.buildconfigspec('cmd_usb') @pytest.mark.buildconfigspec('cmd_fs_generic') -def test_usb_save(u_boot_console): - devices, controllers, storage_device = test_usb_part(u_boot_console) +def test_usb_save(ubman): + devices, controllers, storage_device = test_usb_part(ubman) if not devices: pytest.skip('No devices detected') part_detect = 0 for x in range(0, int(storage_device)): if devices[x]['detected'] == 'yes': - u_boot_console.run_command('usb dev %d' % x) - for fs in ['fat', 'ext4']: + ubman.run_command('usb dev %d' % x) + for fs in ['fat', 'ext2', 'ext4']: try: partitions = devices[x][fs] except: @@ -610,12 +618,12 @@ def test_usb_save(u_boot_console): for part in partitions: part_detect = 1 - addr = u_boot_utils.find_ram_base(u_boot_console) + addr = utils.find_ram_base(ubman) size = random.randint(4, 1 * 1024 * 1024) file = '%s_%d' % ('uboot_test', size) offset = random.randrange(128, 1024, 128) - output = u_boot_console.run_command( + output = ubman.run_command( 'save usb %d:%s %x /%s %x' % (x, part, addr + offset, file, size) ) |