Files
core/test/rust/fixtures/io.dever
T
2026-11-03 03:32:07 +00:00

77 lines
2.6 KiB
Plaintext

type Holder {
file: dever.system.File
label: Int
}
verify() (ok: Bool) {
created = dever.io.create("created")
dever.io.write(created, dever.bytes.fromText("hello"))
dever.io.close(created)
refused = createFailed(result(dever.io.create("created")))
file = dever.io.open("input")
holder = Holder { file = file
label = 1 }
copied = holder
copied.label = 2
first_read = dever.io.read(holder.file, 2)
files = [copied.file]
second_read = readAlias(first(files))
last_read = dever.io.read(file, 99)
end = dever.io.read(file, 1)
dever.io.close(copied.file)
closed_read = readFailed(result(dever.io.read(file, 1)))
closed_write = writeFailed(result(dever.io.write(holder.file, dever.bytes.fromText(""))))
closed_close = closeFailed(result(dever.io.close(file)))
dever.io.println("hello")
reads = first_read == dever.io.ReadState.Read(dever.bytes.fromText("ab")) and second_read == dever.io.ReadState.Read(dever.bytes.fromText("cd")) and last_read == dever.io.ReadState.Read(dever.bytes.fromText("e"))
ok = refused and holder.label == 1 and copied.label == 2 and reads and end == dever.io.ReadState.End and closed_read and closed_write and closed_close
}
readAlias(file: null) (state: dever.io.ReadState) {
state = dever.io.ReadState.End
}
readAlias(file: dever.system.File) (state: dever.io.ReadState) {
state = dever.io.read(file, 2)
}
missing() () {
file = dever.io.open("missing-file")
}
invalid() () {
file = dever.io.open("input")
state = dever.io.read(file, 0)
}
print() () {
dever.io.println("hello")
}
createFailed(value: dever.io.OpenResult.Opened(file)) (ok: Bool) recover("test observes expected I/O failure") {
ok = false
}
createFailed(value: dever.io.OpenResult.Failed(message)) (ok: Bool) recover("test observes expected I/O failure") {
ok = length(message) > 0
}
readFailed(value: dever.io.ReadResult.Done(state)) (ok: Bool) recover("test observes expected I/O failure") {
ok = false
}
readFailed(value: dever.io.ReadResult.Failed(message)) (ok: Bool) recover("test observes expected I/O failure") {
ok = length(message) > 0
}
writeFailed(value: dever.io.WriteResult.Done) (ok: Bool) recover("test observes expected I/O failure") {
ok = false
}
writeFailed(value: dever.io.WriteResult.Failed(message)) (ok: Bool) recover("test observes expected I/O failure") {
ok = length(message) > 0
}
closeFailed(value: dever.io.CloseResult.Closed) (ok: Bool) recover("test observes expected I/O failure") {
ok = false
}
closeFailed(value: dever.io.CloseResult.Failed(message)) (ok: Bool) recover("test observes expected I/O failure") {
ok = length(message) > 0
}