77 lines
2.6 KiB
Plaintext
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
|
|
}
|