about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--088file.mu1
-rw-r--r--090scenario_filesystem_test.mu18
2 files changed, 18 insertions, 1 deletions
diff --git a/088file.mu b/088file.mu
index f2dde0a1..19539b95 100644
--- a/088file.mu
+++ b/088file.mu
@@ -30,6 +30,7 @@ def start-reading fs:address:filesystem, filename:address:array:character -> con
     done?:boolean <- greater-or-equal i, len
     break-if done?
     tmp:file-mapping <- index *data, i
+    i <- add i, 1
     curr-filename:address:array:character <- get tmp, name:offset
     found?:boolean <- equal filename, curr-filename
     loop-unless found?
diff --git a/090scenario_filesystem_test.mu b/090scenario_filesystem_test.mu
index de93a2d9..02343cba 100644
--- a/090scenario_filesystem_test.mu
+++ b/090scenario_filesystem_test.mu
@@ -25,7 +25,23 @@ scenario read-from-fake-file [
 scenario write-to-fake-file [
   local-scope
   assume-filesystem [
-    #[a] <- []
+  ]
+  sink:address:sink:character, writer:number/routine <- start-writing filesystem:address:filesystem, [a]
+  sink <- write sink, 120/x
+  sink <- write sink, 121/y
+  close sink
+  wait-for-routine writer
+  contents-read-back:address:array:character <- slurp filesystem, [a]
+  10:boolean/raw <- equal contents-read-back, [xy]
+  memory-should-contain [
+    10 <- 1  # file contents read back exactly match what was written
+  ]
+]
+
+scenario write-to-fake-file-that-exists [
+  local-scope
+  assume-filesystem [
+    [a] <- []
   ]
   sink:address:sink:character, writer:number/routine <- start-writing filesystem:address:filesystem, [a]
   sink <- write sink, 120/x