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