erlang: file:read_file/write_file/delete BIFs (+10 eval tests, 633/633)
This commit is contained in:
@@ -1340,6 +1340,55 @@
|
||||
(er-eval-test "capstone soft_purge clean after hard = true"
|
||||
(get (nth (get er-rt-cap-result :elements) 4) :name) "true")
|
||||
|
||||
|
||||
;; ── Phase 8: file module BIFs ───────────────────────────────────
|
||||
(er-modules-reset!)
|
||||
|
||||
;; write + read round-trip
|
||||
(er-eval-test "file:write_file ok"
|
||||
(nm (ev "file:write_file(\"/tmp/er-test-1.txt\", \"hello\")"))
|
||||
"ok")
|
||||
|
||||
(er-eval-test "file:read_file ok tag"
|
||||
(nm (ev "element(1, file:read_file(\"/tmp/er-test-1.txt\"))"))
|
||||
"ok")
|
||||
|
||||
(er-eval-test "file:read_file payload is binary"
|
||||
(ev "case file:read_file(\"/tmp/er-test-1.txt\") of {ok, B} -> is_binary(B) end")
|
||||
(er-mk-atom "true"))
|
||||
|
||||
(er-eval-test "file:read_file content bytes"
|
||||
(ev "case file:read_file(\"/tmp/er-test-1.txt\") of {ok, B} -> byte_size(B) end")
|
||||
5)
|
||||
|
||||
;; missing file → {error, enoent}
|
||||
(er-eval-test "file:read_file missing tag"
|
||||
(nm (ev "element(1, file:read_file(\"/tmp/er-no-such-file-xyz\"))"))
|
||||
"error")
|
||||
|
||||
(er-eval-test "file:read_file missing reason"
|
||||
(nm (ev "element(2, file:read_file(\"/tmp/er-no-such-file-xyz\"))"))
|
||||
"enoent")
|
||||
|
||||
;; delete
|
||||
(er-eval-test "file:delete ok"
|
||||
(nm (ev "file:write_file(\"/tmp/er-test-del.txt\", \"x\"), file:delete(\"/tmp/er-test-del.txt\")"))
|
||||
"ok")
|
||||
|
||||
(er-eval-test "file:read_file after delete"
|
||||
(nm (ev "file:write_file(\"/tmp/er-test-del2.txt\", \"x\"), file:delete(\"/tmp/er-test-del2.txt\"), element(2, file:read_file(\"/tmp/er-test-del2.txt\"))"))
|
||||
"enoent")
|
||||
|
||||
;; write to inaccessible dir → {error, enoent}
|
||||
(er-eval-test "file:write_file bad path"
|
||||
(nm (ev "element(2, file:write_file(\"/tmp/no-such-dir-xyz/x\", \"y\"))"))
|
||||
"enoent")
|
||||
|
||||
;; binary input round-trip (the bytes go through write)
|
||||
(er-eval-test "file:write_file binary payload round-trip"
|
||||
(ev "file:write_file(\"/tmp/er-test-2.bin\", <<1, 2, 3, 4, 5>>), case file:read_file(\"/tmp/er-test-2.bin\") of {ok, B} -> byte_size(B) end")
|
||||
5)
|
||||
|
||||
(define
|
||||
er-eval-test-summary
|
||||
(str "eval " er-eval-test-pass "/" er-eval-test-count))
|
||||
|
||||
Reference in New Issue
Block a user