summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--tests/extmod/vfs_fat_oldproto.py61
-rw-r--r--tests/extmod/vfs_fat_oldproto.py.exp4
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/extmod/vfs_fat_oldproto.py b/tests/extmod/vfs_fat_oldproto.py
new file mode 100644
index 0000000000..bb8dd824cf
--- /dev/null
+++ b/tests/extmod/vfs_fat_oldproto.py
@@ -0,0 +1,61 @@
+import sys
+import uos
+import uerrno
+try:
+ uos.VfsFat
+except AttributeError:
+ print("SKIP")
+ sys.exit()
+
+class RAMFS_OLD:
+
+ SEC_SIZE = 512
+
+ def __init__(self, blocks):
+ self.data = bytearray(blocks * self.SEC_SIZE)
+
+ def readblocks(self, n, buf):
+ #print("readblocks(%s, %x(%d))" % (n, id(buf), len(buf)))
+ for i in range(len(buf)):
+ buf[i] = self.data[n * self.SEC_SIZE + i]
+
+ def writeblocks(self, n, buf):
+ #print("writeblocks(%s, %x)" % (n, id(buf)))
+ for i in range(len(buf)):
+ self.data[n * self.SEC_SIZE + i] = buf[i]
+
+ def sync(self):
+ pass
+
+ def count(self):
+ return len(self.data) // self.SEC_SIZE
+
+
+try:
+ bdev = RAMFS_OLD(48)
+except MemoryError:
+ print("SKIP")
+ sys.exit()
+
+uos.vfs_mkfs(bdev, "/ramdisk")
+uos.vfs_mount(bdev, "/ramdisk")
+
+# file io
+vfs = uos.VfsFat(bdev, "/ramdisk")
+with vfs.open("file.txt", "w") as f:
+ f.write("hello!")
+
+print(vfs.listdir())
+
+with vfs.open("file.txt", "r") as f:
+ print(f.read())
+
+vfs.remove("file.txt")
+print(vfs.listdir())
+
+# umount by device
+uos.vfs_umount(bdev)
+try:
+ vfs.listdir()
+except OSError as e:
+ print(e.args[0] == uerrno.ENODEV)
diff --git a/tests/extmod/vfs_fat_oldproto.py.exp b/tests/extmod/vfs_fat_oldproto.py.exp
new file mode 100644
index 0000000000..4120c277ac
--- /dev/null
+++ b/tests/extmod/vfs_fat_oldproto.py.exp
@@ -0,0 +1,4 @@
+['file.txt']
+hello!
+[]
+True