e7738de6d2
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
43 lines
1.4 KiB
Plaintext
43 lines
1.4 KiB
Plaintext
pub fn main(world: World) -> Void raises {
|
|
let path: String = "conformance/fixtures/std-fs-read.txt"
|
|
var out_buf: [16]u8 = [0_u8; 16]
|
|
var chunk: [4]u8 = [0_u8; 4]
|
|
var offset: usize = 0
|
|
var total: usize = 0
|
|
var saw_truncation: Bool = true
|
|
var ok: Bool = true
|
|
var done: Bool = false
|
|
while ok && !done {
|
|
let read: Maybe<usize> = std.fs.readBytesAt(path, offset, chunk)
|
|
if !read.has {
|
|
ok = false
|
|
} else {
|
|
total = read.value
|
|
if total <= 4 {
|
|
saw_truncation = false
|
|
}
|
|
var valid: usize = 0
|
|
if offset < total {
|
|
valid = total - offset
|
|
if valid > 4 {
|
|
valid = 4
|
|
}
|
|
}
|
|
let copied: usize = std.mem.copy(out_buf[offset..], chunk[..valid])
|
|
if copied != valid {
|
|
ok = false
|
|
}
|
|
offset = offset + valid
|
|
if offset >= total {
|
|
done = true
|
|
}
|
|
}
|
|
}
|
|
let whole: Maybe<usize> = std.fs.readBytes(path, out_buf)
|
|
if ok && saw_truncation && total == 10 && whole.has && whole.value == 10 && std.mem.eqlBytes(out_buf[..total], std.mem.span("zero file\n")) {
|
|
check world.out.write("fs read chunks ok\n")
|
|
} else {
|
|
check world.out.write("fs read chunks failed\n")
|
|
}
|
|
}
|