tests/extmod/vfs_basic: Add more tests for basic VFS functionality.

This commit is contained in:
Damien George 2017-03-14 16:07:30 +11:00
parent d1ae6ae080
commit 773b0bac41
2 changed files with 72 additions and 3 deletions

View File

@ -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')

View File

@ -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