Skip to content

Commit b87bbae

Browse files
committed
tests: Use vfs module instead of os.
Signed-off-by: Damien George <[email protected]>
1 parent 5804aa0 commit b87bbae

34 files changed

+419
-468
lines changed

tests/extmod/vfs_basic.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# test VFS functionality without any particular filesystem type
22

33
try:
4-
import os
5-
6-
os.mount
7-
except (ImportError, AttributeError):
4+
import os, vfs
5+
except ImportError:
86
print("SKIP")
97
raise SystemExit
108

@@ -59,11 +57,11 @@ def open(self, file, mode):
5957

6058
# first we umount any existing mount points the target may have
6159
try:
62-
os.umount("/")
60+
vfs.umount("/")
6361
except OSError:
6462
pass
6563
for path in os.listdir("/"):
66-
os.umount("/" + path)
64+
vfs.umount("/" + path)
6765

6866
# stat root dir
6967
print(os.stat("/"))
@@ -83,7 +81,7 @@ def open(self, file, mode):
8381
print(func, arg, "OSError")
8482

8583
# basic mounting and listdir
86-
os.mount(Filesystem(1), "/test_mnt")
84+
vfs.mount(Filesystem(1), "/test_mnt")
8785
print(os.listdir())
8886

8987
# ilistdir
@@ -103,13 +101,13 @@ def open(self, file, mode):
103101
print(os.listdir("/test_mnt"))
104102

105103
# mounting another filesystem
106-
os.mount(Filesystem(2), "/test_mnt2", readonly=True)
104+
vfs.mount(Filesystem(2), "/test_mnt2", readonly=True)
107105
print(os.listdir())
108106
print(os.listdir("/test_mnt2"))
109107

110108
# mounting over an existing mount point
111109
try:
112-
os.mount(Filesystem(3), "/test_mnt2")
110+
vfs.mount(Filesystem(3), "/test_mnt2")
113111
except OSError:
114112
print("OSError")
115113

@@ -139,23 +137,23 @@ def open(self, file, mode):
139137
open("test_file", "wb")
140138

141139
# umount
142-
os.umount("/test_mnt")
143-
os.umount("/test_mnt2")
140+
vfs.umount("/test_mnt")
141+
vfs.umount("/test_mnt2")
144142

145143
# umount a non-existent mount point
146144
try:
147-
os.umount("/test_mnt")
145+
vfs.umount("/test_mnt")
148146
except OSError:
149147
print("OSError")
150148

151149
# root dir
152-
os.mount(Filesystem(3), "/")
150+
vfs.mount(Filesystem(3), "/")
153151
print(os.stat("/"))
154152
print(os.statvfs("/"))
155153
print(os.listdir())
156154
open("test")
157155

158-
os.mount(Filesystem(4), "/mnt")
156+
vfs.mount(Filesystem(4), "/mnt")
159157
print(os.listdir())
160158
print(os.listdir("/mnt"))
161159
os.chdir("/mnt")
@@ -166,9 +164,9 @@ def open(self, file, mode):
166164
print(os.listdir())
167165
os.chdir("/")
168166

169-
os.umount("/")
167+
vfs.umount("/")
170168
print(os.listdir("/"))
171-
os.umount("/mnt")
169+
vfs.umount("/mnt")
172170

173171
# chdir to a non-existent mount point (current directory should remain unchanged)
174172
try:
@@ -178,7 +176,7 @@ def open(self, file, mode):
178176
print(os.getcwd())
179177

180178
# chdir to a non-existent subdirectory in a mounted filesystem
181-
os.mount(Filesystem(5, 1), "/mnt")
179+
vfs.mount(Filesystem(5, 1), "/mnt")
182180
try:
183181
os.chdir("/mnt/subdir")
184182
except OSError:

tests/extmod/vfs_blockdev.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Test for behaviour of combined standard and extended block device
22

33
try:
4-
import os
4+
import vfs
55

6-
os.VfsFat
7-
os.VfsLfs2
6+
vfs.VfsFat
7+
vfs.VfsLfs2
88
except (ImportError, AttributeError):
99
print("SKIP")
1010
raise SystemExit
@@ -65,12 +65,10 @@ def test(bdev, vfs_class):
6565

6666

6767
try:
68-
import os
69-
7068
bdev = RAMBlockDevice(50)
7169
except MemoryError:
7270
print("SKIP")
7371
raise SystemExit
7472

75-
test(bdev, os.VfsFat)
76-
test(bdev, os.VfsLfs2)
73+
test(bdev, vfs.VfsFat)
74+
test(bdev, vfs.VfsLfs2)

tests/extmod/vfs_fat_fileio1.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
try:
2-
import errno
3-
import os
4-
except ImportError:
5-
print("SKIP")
6-
raise SystemExit
2+
import errno, os, vfs
73

8-
try:
9-
os.VfsFat
10-
except AttributeError:
4+
vfs.VfsFat
5+
except (ImportError, AttributeError):
116
print("SKIP")
127
raise SystemExit
138

@@ -38,13 +33,13 @@ def ioctl(self, op, arg):
3833

3934
try:
4035
bdev = RAMFS(50)
41-
os.VfsFat.mkfs(bdev)
36+
vfs.VfsFat.mkfs(bdev)
4237
except MemoryError:
4338
print("SKIP")
4439
raise SystemExit
4540

46-
vfs = os.VfsFat(bdev)
47-
os.mount(vfs, "/ramdisk")
41+
fs = vfs.VfsFat(bdev)
42+
vfs.mount(fs, "/ramdisk")
4843
os.chdir("/ramdisk")
4944

5045
# file IO
@@ -99,12 +94,12 @@ def ioctl(self, op, arg):
9994
# print(f.read())
10095

10196
# dirs
102-
vfs.mkdir("foo_dir")
97+
fs.mkdir("foo_dir")
10398

10499
try:
105-
vfs.rmdir("foo_file.txt")
100+
fs.rmdir("foo_file.txt")
106101
except OSError as e:
107102
print(e.errno == 20) # errno.ENOTDIR
108103

109-
vfs.remove("foo_file.txt")
110-
print(list(vfs.ilistdir()))
104+
fs.remove("foo_file.txt")
105+
print(list(fs.ilistdir()))

tests/extmod/vfs_fat_fileio2.py

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
try:
2-
import errno
3-
import os
4-
except ImportError:
5-
print("SKIP")
6-
raise SystemExit
2+
import errno, os, vfs
73

8-
try:
9-
os.VfsFat
10-
except AttributeError:
4+
vfs.VfsFat
5+
except (ImportError, AttributeError):
116
print("SKIP")
127
raise SystemExit
138

@@ -38,32 +33,32 @@ def ioctl(self, op, arg):
3833

3934
try:
4035
bdev = RAMFS(50)
41-
os.VfsFat.mkfs(bdev)
36+
vfs.VfsFat.mkfs(bdev)
4237
except MemoryError:
4338
print("SKIP")
4439
raise SystemExit
4540

46-
vfs = os.VfsFat(bdev)
47-
os.mount(vfs, "/ramdisk")
41+
fs = vfs.VfsFat(bdev)
42+
vfs.mount(fs, "/ramdisk")
4843
os.chdir("/ramdisk")
4944

5045
try:
51-
vfs.mkdir("foo_dir")
46+
fs.mkdir("foo_dir")
5247
except OSError as e:
5348
print(e.errno == errno.EEXIST)
5449

5550
try:
56-
vfs.remove("foo_dir")
51+
fs.remove("foo_dir")
5752
except OSError as e:
5853
print(e.errno == errno.EISDIR)
5954

6055
try:
61-
vfs.remove("no_file.txt")
56+
fs.remove("no_file.txt")
6257
except OSError as e:
6358
print(e.errno == errno.ENOENT)
6459

6560
try:
66-
vfs.rename("foo_dir", "/null/file")
61+
fs.rename("foo_dir", "/null/file")
6762
except OSError as e:
6863
print(e.errno == errno.ENOENT)
6964

@@ -79,34 +74,34 @@ def ioctl(self, op, arg):
7974

8075
# directory not empty
8176
try:
82-
vfs.rmdir("foo_dir")
77+
fs.rmdir("foo_dir")
8378
except OSError as e:
8479
print(e.errno == errno.EACCES)
8580

8681
# trim full path
87-
vfs.rename("foo_dir/file-in-dir.txt", "foo_dir/file.txt")
88-
print(list(vfs.ilistdir("foo_dir")))
82+
fs.rename("foo_dir/file-in-dir.txt", "foo_dir/file.txt")
83+
print(list(fs.ilistdir("foo_dir")))
8984

90-
vfs.rename("foo_dir/file.txt", "moved-to-root.txt")
91-
print(list(vfs.ilistdir()))
85+
fs.rename("foo_dir/file.txt", "moved-to-root.txt")
86+
print(list(fs.ilistdir()))
9287

9388
# check that renaming to existing file will overwrite it
9489
with open("temp", "w") as f:
9590
f.write("new text")
96-
vfs.rename("temp", "moved-to-root.txt")
97-
print(list(vfs.ilistdir()))
91+
fs.rename("temp", "moved-to-root.txt")
92+
print(list(fs.ilistdir()))
9893
with open("moved-to-root.txt") as f:
9994
print(f.read())
10095

10196
# valid removes
102-
vfs.remove("foo_dir/sub_file.txt")
103-
vfs.rmdir("foo_dir")
104-
print(list(vfs.ilistdir()))
97+
fs.remove("foo_dir/sub_file.txt")
98+
fs.rmdir("foo_dir")
99+
print(list(fs.ilistdir()))
105100

106101
# disk full
107102
try:
108-
bsize = vfs.statvfs("/ramdisk")[0]
109-
free = vfs.statvfs("/ramdisk")[2] + 1
103+
bsize = fs.statvfs("/ramdisk")[0]
104+
free = fs.statvfs("/ramdisk")[2] + 1
110105
f = open("large_file.txt", "wb")
111106
f.write(bytearray(bsize * free))
112107
except OSError as e:

tests/extmod/vfs_fat_finaliser.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Test VfsFat class and its finaliser
22

33
try:
4-
import errno, os
4+
import errno, os, vfs
55

6-
os.VfsFat
6+
vfs.VfsFat
77
except (ImportError, AttributeError):
88
print("SKIP")
99
raise SystemExit
@@ -39,8 +39,8 @@ def ioctl(self, op, arg):
3939
raise SystemExit
4040

4141
# Format block device and create VFS object
42-
os.VfsFat.mkfs(bdev)
43-
vfs = os.VfsFat(bdev)
42+
vfs.VfsFat.mkfs(bdev)
43+
fs = vfs.VfsFat(bdev)
4444

4545
# Here we test that opening a file with the heap locked fails correctly. This
4646
# is a special case because file objects use a finaliser and allocating with a
@@ -52,7 +52,7 @@ def ioctl(self, op, arg):
5252
try:
5353
import errno, os
5454

55-
vfs.open("x", "r")
55+
fs.open("x", "r")
5656
except MemoryError:
5757
print("MemoryError")
5858
micropython.heap_unlock()
@@ -77,10 +77,10 @@ def ioctl(self, op, arg):
7777
# Only read back N-1 files because the last one may not be finalised due to
7878
# references to it being left on the C stack.
7979
for n in names:
80-
f = vfs.open(n, "w")
80+
f = fs.open(n, "w")
8181
f.write(n)
8282
f = None # release f without closing
8383
gc.collect() # should finalise at least the first N-1 files by closing them
8484
for n in names[:-1]:
85-
with vfs.open(n, "r") as f:
85+
with fs.open(n, "r") as f:
8686
print(f.read())

tests/extmod/vfs_fat_ilistdir_del.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import gc
33

44
try:
5-
import os
5+
import os, vfs
66

7-
os.VfsFat
7+
vfs.VfsFat
88
except (ImportError, AttributeError):
99
print("SKIP")
1010
raise SystemExit
@@ -37,29 +37,29 @@ def ioctl(self, op, arg):
3737

3838
def test(bdev, vfs_class):
3939
vfs_class.mkfs(bdev)
40-
vfs = vfs_class(bdev)
41-
vfs.mkdir("/test_d1")
42-
vfs.mkdir("/test_d2")
43-
vfs.mkdir("/test_d3")
40+
fs = vfs_class(bdev)
41+
fs.mkdir("/test_d1")
42+
fs.mkdir("/test_d2")
43+
fs.mkdir("/test_d3")
4444

4545
for i in range(10):
4646
print(i)
4747

4848
# We want to partially iterate the ilistdir iterator to leave it in an
4949
# open state, which will then test the finaliser when it's garbage collected.
50-
idir = vfs.ilistdir("/")
50+
idir = fs.ilistdir("/")
5151
print(any(idir))
5252

5353
# Alternate way of partially iterating the ilistdir object, modifying the
5454
# filesystem while it's open.
55-
for dname, *_ in vfs.ilistdir("/"):
56-
vfs.rmdir(dname)
55+
for dname, *_ in fs.ilistdir("/"):
56+
fs.rmdir(dname)
5757
break
58-
vfs.mkdir(dname)
58+
fs.mkdir(dname)
5959

6060
# Also create a fully drained iterator and ensure trying to reuse it
6161
# throws the correct exception.
62-
idir_emptied = vfs.ilistdir("/")
62+
idir_emptied = fs.ilistdir("/")
6363
l = list(idir_emptied)
6464
print(len(l))
6565
try:
@@ -68,7 +68,7 @@ def test(bdev, vfs_class):
6868
pass
6969

7070
gc.collect()
71-
vfs.open("/test", "w").close()
71+
fs.open("/test", "w").close()
7272

7373

7474
try:
@@ -77,4 +77,4 @@ def test(bdev, vfs_class):
7777
print("SKIP")
7878
raise SystemExit
7979

80-
test(bdev, os.VfsFat)
80+
test(bdev, vfs.VfsFat)

0 commit comments

Comments
 (0)