tests/extmod/vfs_basic: Add more tests for basic VFS functionality.
This commit is contained in:
parent
d1ae6ae080
commit
773b0bac41
@ -25,10 +25,33 @@ class Filesystem:
|
|||||||
return ['a%d' % self.id]
|
return ['a%d' % self.id]
|
||||||
def chdir(self, dir):
|
def chdir(self, dir):
|
||||||
print(self.id, 'chdir', dir)
|
print(self.id, 'chdir', dir)
|
||||||
|
def getcwd(self):
|
||||||
|
print(self.id, 'getcwd')
|
||||||
|
return 'dir%d' % self.id
|
||||||
|
def mkdir(self, path):
|
||||||
|
print(self.id, 'mkdir', path)
|
||||||
|
def remove(self, path):
|
||||||
|
print(self.id, 'remove', path)
|
||||||
|
def rename(self, old_path, new_path):
|
||||||
|
print(self.id, 'rename', old_path, new_path)
|
||||||
|
def rmdir(self, path):
|
||||||
|
print(self.id, 'rmdir', path)
|
||||||
|
def stat(self, path):
|
||||||
|
print(self.id, 'stat', path)
|
||||||
|
return (self.id,)
|
||||||
|
def statvfs(self, path):
|
||||||
|
print(self.id, 'statvfs', path)
|
||||||
|
return (self.id,)
|
||||||
def open(self, file, mode):
|
def open(self, file, mode):
|
||||||
print(self.id, 'open', file, mode)
|
print(self.id, 'open', file, mode)
|
||||||
|
|
||||||
|
|
||||||
|
# stat root dir
|
||||||
|
print(uos.stat('/'))
|
||||||
|
|
||||||
|
# getcwd when in root dir
|
||||||
|
print(uos.getcwd())
|
||||||
|
|
||||||
# basic mounting and listdir
|
# basic mounting and listdir
|
||||||
uos.mount(Filesystem(1), '/test_mnt')
|
uos.mount(Filesystem(1), '/test_mnt')
|
||||||
print(uos.listdir())
|
print(uos.listdir())
|
||||||
@ -42,14 +65,43 @@ uos.mount(Filesystem(2), '/test_mnt2', readonly=True)
|
|||||||
print(uos.listdir())
|
print(uos.listdir())
|
||||||
print(uos.listdir('/test_mnt2'))
|
print(uos.listdir('/test_mnt2'))
|
||||||
|
|
||||||
# chdir
|
# mounting over an existing mount point
|
||||||
|
try:
|
||||||
|
uos.mount(Filesystem(3), '/test_mnt2')
|
||||||
|
except OSError:
|
||||||
|
print('OSError')
|
||||||
|
|
||||||
|
# mkdir of a mount point
|
||||||
|
try:
|
||||||
|
uos.mkdir('/test_mnt')
|
||||||
|
except OSError:
|
||||||
|
print('OSError')
|
||||||
|
|
||||||
|
# rename across a filesystem
|
||||||
|
try:
|
||||||
|
uos.rename('/test_mnt/a', '/test_mnt2/b')
|
||||||
|
except OSError:
|
||||||
|
print('OSError')
|
||||||
|
|
||||||
|
# delegating to mounted filesystem
|
||||||
uos.chdir('test_mnt')
|
uos.chdir('test_mnt')
|
||||||
print(uos.listdir())
|
print(uos.listdir())
|
||||||
|
print(uos.getcwd())
|
||||||
# open
|
uos.mkdir('test_dir')
|
||||||
|
uos.remove('test_file')
|
||||||
|
uos.rename('test_file', 'test_file2')
|
||||||
|
uos.rmdir('test_dir')
|
||||||
|
print(uos.stat('test_file'))
|
||||||
|
print(uos.statvfs('/test_mnt'))
|
||||||
open('test_file')
|
open('test_file')
|
||||||
open('test_file', 'wb')
|
open('test_file', 'wb')
|
||||||
|
|
||||||
# umount
|
# umount
|
||||||
uos.umount('/test_mnt')
|
uos.umount('/test_mnt')
|
||||||
uos.umount('/test_mnt2')
|
uos.umount('/test_mnt2')
|
||||||
|
|
||||||
|
# umount a non-existent mount point
|
||||||
|
try:
|
||||||
|
uos.umount('/test_mnt')
|
||||||
|
except OSError:
|
||||||
|
print('OSError')
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
(16384, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
/
|
||||||
1 mount False False
|
1 mount False False
|
||||||
['test_mnt']
|
['test_mnt']
|
||||||
1 listdir /
|
1 listdir /
|
||||||
@ -8,10 +10,25 @@
|
|||||||
['test_mnt', 'test_mnt2']
|
['test_mnt', 'test_mnt2']
|
||||||
2 listdir /
|
2 listdir /
|
||||||
['a2']
|
['a2']
|
||||||
|
3 mount False False
|
||||||
|
OSError
|
||||||
|
OSError
|
||||||
|
OSError
|
||||||
1 chdir /
|
1 chdir /
|
||||||
1 listdir
|
1 listdir
|
||||||
['a1']
|
['a1']
|
||||||
|
1 getcwd
|
||||||
|
/test_mntdir1
|
||||||
|
1 mkdir test_dir
|
||||||
|
1 remove test_file
|
||||||
|
1 rename test_file test_file2
|
||||||
|
1 rmdir test_dir
|
||||||
|
1 stat test_file
|
||||||
|
(1,)
|
||||||
|
1 statvfs /
|
||||||
|
(1,)
|
||||||
1 open test_file r
|
1 open test_file r
|
||||||
1 open test_file wb
|
1 open test_file wb
|
||||||
1 umount
|
1 umount
|
||||||
2 umount
|
2 umount
|
||||||
|
OSError
|
||||||
|
Loading…
Reference in New Issue
Block a user