summaryrefslogtreecommitdiffstatshomepage
path: root/tests/extmod/vfs_fat_ramdisk.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/extmod/vfs_fat_ramdisk.py')
-rw-r--r--tests/extmod/vfs_fat_ramdisk.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/extmod/vfs_fat_ramdisk.py b/tests/extmod/vfs_fat_ramdisk.py
new file mode 100644
index 0000000000..4750c76110
--- /dev/null
+++ b/tests/extmod/vfs_fat_ramdisk.py
@@ -0,0 +1,48 @@
+import sys
+import uos
+try:
+ uos.VfsFat
+except AttributeError:
+ print("SKIP")
+ sys.exit()
+
+
+class RAMFS:
+ def __init__(self, blocks):
+ self.data = bytearray(blocks * 512)
+
+ 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*512+i]
+
+ def writeblocks(self, n, buf):
+ #print("writeblocks(%s, %x)" % (n, id(buf)))
+ for i in range(len(buf)):
+ self.data[n*512+i] = buf[i]
+
+ def sync(self):
+ pass
+
+ def count(self):
+ return len(self.data) // 512
+
+
+bdev = RAMFS(48)
+uos.VfsFat.mkfs(bdev)
+
+assert b"FOO_FILETXT" not in bdev.data
+assert b"hello!" not in bdev.data
+
+vfs = uos.VfsFat(bdev, "/ramdisk")
+
+f = vfs.open("foo_file.txt", "w")
+f.write("hello!")
+f.close()
+
+f2 = vfs.open("foo_file.txt")
+print(f2.read())
+f2.close()
+
+assert b"FOO_FILETXT" in bdev.data
+assert b"hello!" in bdev.data