1# SPDX-License-Identifier: GPL-2.0+ 2# Copyright (c) 2018, Linaro Limited 3# Author: Takahiro Akashi <takahiro.akashi@linaro.org> 4# 5# U-Boot File System:mkdir Test 6 7""" 8This test verifies mkdir operation on file system. 9""" 10 11import pytest 12 13@pytest.mark.boardspec('sandbox') 14@pytest.mark.slow 15class TestMkdir(object): 16 def test_mkdir1(self, u_boot_console, fs_obj_mkdir): 17 """ 18 Test Case 1 - create a directory under a root 19 """ 20 fs_type,fs_img = fs_obj_mkdir 21 with u_boot_console.log.section('Test Case 1 - mkdir'): 22 output = u_boot_console.run_command_list([ 23 'host bind 0 %s' % fs_img, 24 '%smkdir host 0:0 dir1' % fs_type, 25 '%sls host 0:0 /' % fs_type]) 26 assert('dir1/' in ''.join(output)) 27 28 output = u_boot_console.run_command( 29 '%sls host 0:0 dir1' % fs_type) 30 assert('./' in output) 31 assert('../' in output) 32 33 def test_mkdir2(self, u_boot_console, fs_obj_mkdir): 34 """ 35 Test Case 2 - create a directory under a sub-directory 36 """ 37 fs_type,fs_img = fs_obj_mkdir 38 with u_boot_console.log.section('Test Case 2 - mkdir (sub-sub directory)'): 39 output = u_boot_console.run_command_list([ 40 'host bind 0 %s' % fs_img, 41 '%smkdir host 0:0 dir1/dir2' % fs_type, 42 '%sls host 0:0 dir1' % fs_type]) 43 assert('dir2/' in ''.join(output)) 44 45 output = u_boot_console.run_command( 46 '%sls host 0:0 dir1/dir2' % fs_type) 47 assert('./' in output) 48 assert('../' in output) 49 50 def test_mkdir3(self, u_boot_console, fs_obj_mkdir): 51 """ 52 Test Case 3 - trying to create a directory with a non-existing 53 path should fail 54 """ 55 fs_type,fs_img = fs_obj_mkdir 56 with u_boot_console.log.section('Test Case 3 - mkdir (non-existing path)'): 57 output = u_boot_console.run_command_list([ 58 'host bind 0 %s' % fs_img, 59 '%smkdir host 0:0 none/dir3' % fs_type]) 60 assert('Unable to create a directory' in ''.join(output)) 61 62 def test_mkdir4(self, u_boot_console, fs_obj_mkdir): 63 """ 64 Test Case 4 - trying to create "." should fail 65 """ 66 fs_type,fs_img = fs_obj_mkdir 67 with u_boot_console.log.section('Test Case 4 - mkdir (".")'): 68 output = u_boot_console.run_command_list([ 69 'host bind 0 %s' % fs_img, 70 '%smkdir host 0:0 .' % fs_type]) 71 assert('Unable to create a directory' in ''.join(output)) 72 73 def test_mkdir5(self, u_boot_console, fs_obj_mkdir): 74 """ 75 Test Case 5 - trying to create ".." should fail 76 """ 77 fs_type,fs_img = fs_obj_mkdir 78 with u_boot_console.log.section('Test Case 5 - mkdir ("..")'): 79 output = u_boot_console.run_command_list([ 80 'host bind 0 %s' % fs_img, 81 '%smkdir host 0:0 ..' % fs_type]) 82 assert('Unable to create a directory' in ''.join(output)) 83 84 def test_mkdir6(self, u_boot_console, fs_obj_mkdir): 85 """ 86 'Test Case 6 - create as many directories as amount of directory 87 entries goes beyond a cluster size)' 88 """ 89 fs_type,fs_img = fs_obj_mkdir 90 with u_boot_console.log.section('Test Case 6 - mkdir (create many)'): 91 output = u_boot_console.run_command_list([ 92 'host bind 0 %s' % fs_img, 93 '%smkdir host 0:0 dir6' % fs_type, 94 '%sls host 0:0 /' % fs_type]) 95 assert('dir6/' in ''.join(output)) 96 97 for i in range(0, 20): 98 output = u_boot_console.run_command( 99 '%smkdir host 0:0 dir6/0123456789abcdef%02x' 100 % (fs_type, i)) 101 output = u_boot_console.run_command('%sls host 0:0 dir6' % fs_type) 102 assert('0123456789abcdef00/' in output) 103 assert('0123456789abcdef13/' in output) 104 105 output = u_boot_console.run_command( 106 '%sls host 0:0 dir6/0123456789abcdef13/.' % fs_type) 107 assert('./' in output) 108 assert('../' in output) 109 110 output = u_boot_console.run_command( 111 '%sls host 0:0 dir6/0123456789abcdef13/..' % fs_type) 112 assert('0123456789abcdef00/' in output) 113 assert('0123456789abcdef13/' in output) 114