Skip to content

Fix statfs guest buffer handling under -O2#1138

Merged
rennergade merged 11 commits intomainfrom
fix-statfs-efault-o2
May 6, 2026
Merged

Fix statfs guest buffer handling under -O2#1138
rennergade merged 11 commits intomainfrom
fix-statfs-efault-o2

Conversation

@DanielZ224
Copy link
Copy Markdown
Contributor

Purpose

This PR fixes the statfs syscall path so it correctly writes filesystem metadata back into guest memory under -O2 optimization.

Previously, statfs_syscall converted the path argument correctly, but directly cast the guest output buffer pointer to a host libc::statfs *. This could cause the host libc::statfs call to write to an invalid host address and return EFAULT.

The updated implementation now follows the safer pattern already used by fstatfs_syscall: it calls host libc::statfs into a local host-side buffer, translates the guest output pointer with sc_convert_addr_to_fstatdata, and then copies the result back into guest memory with convert_fstatdata_to_user.

Related Issue

Fixes #1122

Changes

  • Updated statfs_syscall to avoid directly casting the guest statfs buffer pointer to a host pointer.
  • Added guest-memory translation for the statfs output buffer.
  • Reused the existing FSData conversion path used by fstatfs_syscall.
  • Renamed statbuf_cageid so it can be used for guest buffer address conversion.

Testing

Ran:

cd ~/lind-wasm/src/wasmtime
cargo check -p rawposix --lib

Result

  • rawposix builds successfully.
  • Existing warnings remain, but there are no new compile errors from this change.

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total12
Success12
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.050991s4.379938s
Success
thread.cSuccessNone0.044721s4.380653s
Success
tls_test.cSuccessNone0.055538s4.433181s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases208
Number of Successes208
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.047675s0.137602s
Success
chdir_getcwd.cSuccessNone0.046093s0.091493s
Success
chmod.cSuccessNone0.051636s0.098560s
Success
clock_gettime_highlevel.cSuccessNone0.116569s0.269009s
Success
clock_gettime_simple.cSuccessNone0.040124s0.082503s
Success
cloexec.cSuccessNone0.050020s0.100993s
Success
close.cSuccessNone0.056940s0.107480s
Success
creat_access.cSuccessNone0.049296s0.093231s
Success
doubleclose.cSuccessNone0.041000s0.077285s
Success
dup.cSuccessNone0.042585s0.091086s
Success
dup2.cSuccessNone0.047194s0.091155s
Success
dup3.cSuccessNone0.046095s0.092055s
Success
dupwrite.cSuccessNone0.048707s0.088706s
Success
etc_conf.cSuccessNone0.043802s0.095978s
Success
fchdir.cSuccessNone0.051046s0.100891s
Success
fchmod.cSuccessNone0.050218s0.097222s
Success
fcntl.cSuccessNone0.048214s0.098647s
Success
fdatasync.cSuccessNone0.047467s0.087497s
Success
filetest.cSuccessNone0.048246s0.087335s
Success
filetest1000.cSuccessNone0.056301s0.099742s
Success
flock.cSuccessNone0.056766s0.119677s
Success
fstat.cSuccessNone0.050688s0.098116s
Success
fstatfs.cSuccessNone0.043469s0.084603s
Success
fsync.cSuccessNone0.047197s0.086974s
Success
ftruncate.cSuccessNone0.052655s0.208222s
Success
getcwd.cSuccessNone0.045781s0.085434s
Success
getpgid.cSuccessNone0.042758s0.081939s
Success
getrandom.cSuccessNone0.048937s0.093767s
Success
ioctl.cSuccessNone0.050897s0.095604s
Success
link.cSuccessNone0.052993s0.141633s
Success
locale_test.cSuccessNone0.062481s0.581493s
Success
lseek.cSuccessNone0.053758s0.203358s
Success
lstat.cSuccessNone0.052163s0.107009s
Success
mkdir_rmdir.cSuccessNone0.049314s0.091624s
Success
mkfifo_test.cSuccessNone0.053998s0.128540s
Success
mknod.cSuccessNone0.047475s0.098246s
Success
nocancel_io.cSuccessNone0.052151s0.119141s
Success
open.cSuccessNone0.043041s0.081399s
Success
openat.cSuccessNone0.044107s0.089058s
Success
path_conversion_safety.cSuccessNone0.052828s0.115862s
Success
ppoll.cSuccessNone0.052512s0.102134s
Success
pread_pwrite.cSuccessNone0.045638s0.097710s
Success
preadv_pwritev.cSuccessNone0.051189s0.106117s
Success
printf.cSuccessNone0.040268s0.077366s
Success
prlimit64.cSuccessNone0.043146s0.084119s
Success
read.cSuccessNone0.049649s0.098433s
Success
readbytes.cSuccessNone0.045673s0.085872s
Success
readdir_basic.cSuccessNone0.052784s0.108463s
Success
readlink.cSuccessNone0.048874s0.096616s
Success
readlinkat.cSuccessNone0.050377s0.104541s
Success
readv_writev_test.cSuccessNone0.049883s0.101180s
Success
rename.cSuccessNone0.053944s0.094224s
Success
sc-writev.cSuccessNone0.046771s0.090293s
Success
stat.cSuccessNone0.050257s0.096787s
Success
statfs.cSuccessNone0.043842s0.086322s
Success
symlink.cSuccessNone0.051765s0.121625s
Success
sync_file_range.cSuccessNone0.047080s0.087831s
Success
timespec_time_t_compat.cSuccessNone0.046311s0.085727s
Success
truncate.cSuccessNone0.050360s0.103616s
Success
unlink.cSuccessNone0.051570s0.136297s
Success
unlinkat.cSuccessNone0.050703s0.107737s
Success
write.cSuccessNone0.042867s0.079446s
Success
writeloop.cSuccessNone0.052123s0.089625s
Success
writepartial.cSuccessNone0.049781s0.087403s
Success
writev.cSuccessNone0.050371s0.098745s
Success
Math Tests
math_link_smoke.cSuccessNone0.052309s0.087712s
Success
math_tests.cSuccessNone0.057058s0.105014s
Success
Memory Tests
brk.cSuccessNone0.047049s0.089680s
Success
fork_large_memory.cSuccessNone0.079574s0.326906s
Success
malloc.cSuccessNone0.044720s0.083164s
Success
malloc_large.cSuccessNone0.045434s0.085700s
Success
memcpy.cSuccessNone0.044997s0.081914s
Success
memory_error_test.cSuccessNone0.051792s0.121388s
Success
mmap.cSuccessNone0.041925s0.082414s
Success
mmap_aligned.cSuccessNone0.044034s0.098929s
Success
mmap_complicated.cSuccessNone0.049732s0.100006s
Success
mmap_file.cSuccessNone0.049582s0.093360s
Success
mmap_shared.cSuccessNone0.048662s0.096790s
Success
mmaptest.cSuccessNone0.044652s0.086820s
Success
mprotect.cSuccessNone0.043224s0.083300s
Success
mprotect_boundary.cSuccessNone0.043194s0.098555s
Success
mprotect_end_region.cSuccessNone0.042626s0.089326s
Success
mprotect_middle_region.cSuccessNone0.042720s0.092844s
Success
mprotect_multiple_times.cSuccessNone0.043218s0.092755s
Success
mprotect_same_value.cSuccessNone0.042491s0.088181s
Success
mprotect_spanning_regions.cSuccessNone0.044202s0.107460s
Success
munmap_adjacent_shm.cSuccessNone0.045007s0.096944s
Success
sbrk.cSuccessNone0.045486s0.086933s
Success
segfault.cSuccessNone0.051263s0.106632s
Success
shm.cSuccessNone0.048784s0.099407s
Success
shmtest.cSuccessNone0.043917s0.088155s
Success
thread_malloc_sequential.cSuccessNone0.050720s0.110784s
Success
vtable.cSuccessNone0.054321s0.102670s
Success
Networking Tests
accept4.cSuccessNone0.054961s0.107171s
Success
dns_resolve_test.cSuccessNone0.049885s0.093877s
Success
dnstest.cSuccessNone0.048577s0.100311s
Success
epoll_edge_triggered.cSuccessNone0.207453s0.439686s
Success
epollcreate1.cSuccessNone0.050560s0.105542s
Success
error_handling_net.cSuccessNone0.057679s0.200573s
Success
getaddrinfo_test.cSuccessNone0.052966s0.135211s
Success
getaddrinfo_unspec.cSuccessNone0.064743s0.136419s
Success
gethostname.cSuccessNone0.043105s0.079840s
Success
getifaddrs.cSuccessNone0.051531s0.094012s
Success
getsockname.cSuccessNone0.056127s0.098456s
Success
getsockopt.cSuccessNone0.055212s0.147084s
Success
ipv6_basic.cSuccessNone0.055238s0.138922s
Success
makepipe.cSuccessNone0.042818s0.078613s
Success
nonblocking_eagain.cSuccessNone0.054721s0.153675s
Success
pipe.cSuccessNone0.051764s0.101309s
Success
pipe2.cSuccessNone0.052112s0.095730s
Success
pipeinput.cSuccessNone0.053146s0.111230s
Success
pipeinput2.cSuccessNone0.052836s0.110399s
Success
pipeonestring.cSuccessNone0.052313s0.111250s
Success
pipepong.cSuccessNone0.052002s0.111942s
Success
pipewrite.cSuccessNone0.046121s0.094200s
Success
poll.cSuccessNone0.051008s0.089459s
Success
recvfrom-sendto.cSuccessNone0.051244s0.101240s
Success
sendmsg_recvmsg_test.cSuccessNone0.050417s0.100892s
Success
serverclient.cSuccessNone0.051123s0.096469s
Success
shutdown.cSuccessNone0.053324s0.098992s
Success
shutdown_fork.cSuccessNone0.050787s0.099205s
Success
simple-select.cSuccessNone0.052110s0.113983s
Success
simple_epoll.cSuccessNone0.051060s0.098730s
Success
socket.cSuccessNone0.048178s0.088761s
Success
socket_cloexec.cSuccessNone0.050259s0.090775s
Success
socket_options_advanced.cSuccessNone0.055981s0.167528s
Success
socketepoll.cSuccessNone0.048532s0.090466s
Success
socketpair.cSuccessNone0.048191s0.096703s
Success
socketselect.cSuccessNone0.050675s0.099114s
Success
udp_send_recv.cSuccessNone0.158182s0.252957s
Success
uds-getsockname.cSuccessNone0.050409s0.089487s
Success
uds-nb-select.cSuccessNone2.061584s2.145555s
Success
uds-serverclient.cSuccessNone0.054412s0.118607s
Success
uds-socketselect.cSuccessNone0.051581s0.096874s
Success
writev_socket.cSuccessNone0.053550s0.132222s
Success
Process Tests
barrier_test.cSuccessNone0.050035s0.094687s
Success
chain_thread.cSuccessNone1.050733s1.100629s
Success
ctor_syscall_test.cSuccessNone0.041422s0.081980s
Success
cxa_atexit_test.cSuccessNone0.046756s0.085482s
Success
execve_shebang.cSuccessNone0.050930s0.091868s
Success
exit.cSuccessNone0.049166s0.085509s
Success
exit_failure.cSuccessNone0.048795s0.090321s
Success
exit_group_thread.cSuccessNone0.052981s0.102446s
Success
flockfile_test.cSuccessNone0.051291s0.102784s
Success
fork2malloc.cSuccessNone0.051915s0.099399s
Success
fork_select.cSuccessNone0.049893s0.105046s
Success
fork_simple.cSuccessNone0.047063s0.090811s
Success
fork_syscall.cSuccessNone0.053502s0.209740s
Success
fork_tls_ctype.cSuccessNone0.053099s0.119653s
Success
forkandopen.cSuccessNone0.052456s0.111716s
Success
forkdup.cSuccessNone0.055419s0.101620s
Success
forkexecuid.cSuccessNone0.048039s0.104723s
Success
forkexecv-arg.cSuccessNone0.048246s0.095199s
Success
forkexecv.cSuccessNone0.047075s0.093463s
Success
forkfiles.cSuccessNone0.050402s0.102483s
Success
forkmalloc.cSuccessNone0.050883s0.094611s
Success
forknodup.cSuccessNone0.052171s0.106242s
Success
function-ptr.cSuccessNone0.044864s0.085073s
Success
getegid_syscall.cSuccessNone0.051146s0.179588s
Success
getgid_syscall.cSuccessNone0.051564s0.187510s
Success
getpid.cSuccessNone0.042605s0.082019s
Success
getpid_syscall.cSuccessNone0.053554s0.200595s
Success
getppid.cSuccessNone0.051461s0.096618s
Success
getppid_syscall.cSuccessNone0.054222s0.164867s
Success
getuid.cSuccessNone0.050955s0.090313s
Success
getuid_syscall.cSuccessNone0.048609s0.127850s
Success
hello-arg.cSuccessNone0.042804s0.080409s
Success
hello.cSuccessNone0.041429s0.077255s
Success
longjmp.cSuccessNone0.041906s0.083548s
Success
mutex.cSuccessNone2.052276s2.099076s
Success
printf_deadlock_smoke.cSuccessNone0.059372s0.122141s
Success
printf_thread_test.cSuccessNone0.049360s0.099270s
Success
sem_forks.cSuccessNone0.053505s0.108257s
Success
setsid.cSuccessNone0.042779s0.079953s
Success
template.cSuccessNone0.049169s0.110213s
Success
test_exec_nofork.cSuccessNone0.048059s0.092899s
Success
test_unlink_open_file.cSuccessNone0.045757s0.086095s
Success
thread-guard.cSuccessNone0.047318s0.094245s
Success
thread-test.cSuccessNone0.045243s0.085787s
Success
thread.cSuccessNone0.044429s0.085373s
Success
thread_cageid_race.cSuccessNone0.045702s0.107826s
Success
tls_test.cSuccessNone0.048253s0.096010s
Success
uname.cSuccessNone0.044278s0.082593s
Success
wait.cSuccessNone2.050931s2.093723s
Success
waitpid_anychild.cSuccessNone0.051096s0.095407s
Success
waitpid_syscall.cSuccessNone1.050363s1.125046s
Success
waitpid_wnohang.cSuccessNone0.050778s0.096125s
Success
Signal Tests
alarm.cSuccessNone7.050020s7.119611s
Success
eintr_fork_signal.cSuccessNone1.051207s1.108753s
Success
kill.cSuccessNone1.049123s1.098367s
Success
setitimer.cSuccessNone7.057659s7.122192s
Success
sigalrm.cSuccessNone2.051179s2.103140s
Success
sigaltstack.cSuccessNone0.051720s0.099016s
Success
sigchld.cSuccessNone1.051857s1.095165s
Success
signal-fork.cSuccessNone4.051741s4.098401s
Success
signal-simple.cSuccessNone0.050647s0.091905s
Success
signal_SIGCHLD.cSuccessNone0.048563s0.097350s
Success
signal_fork.cSuccessNone0.047021s0.096697s
Success
signal_int_ignored.cSuccessNone2.049603s2.095664s
Success
signal_kill_cleanup.cSuccessNone1.049140s1.095563s
Success
signal_procmask.cSuccessNone0.044072s0.089377s
Success
signal_read_interrupt.cSuccessNone0.553942s0.603694s
Success
signal_recursive.cSuccessNone0.046608s0.091811s
Success
signal_sa_mask.cSuccessNone0.044084s0.086195s
Success
signal_select_interrupt.cSuccessNone0.554543s0.606015s
Success
signal_write_interrupt.cSuccessNone1.052442s1.106101s
Success
sigpipe.cSuccessNone1.052381s1.104439s
Success
sigprocmask.cSuccessNone1.048462s1.094632s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.042998s0.083837s
Success
Memory Tests
mmap-negative1.cSuccessNone0.127686s0.087847s
Success
mmap-negative2.cSuccessNone0.108029s0.094999s
Success
Signal Tests
signal_resethand.cSuccessNone1.050656s1.095654s
Success

@rennergade
Copy link
Copy Markdown
Contributor

@DanielZ224 O2 branch is merged please remove statfs test from the skip list so it can run CI

drapl0n and others added 8 commits April 30, 2026 16:57
* handle error in epoll_wait_syscall()

- replaces unsafe `unwrap()` with error handeling based on Result<>
- returns appropriate error code

* add epoll test that accesses epoll fd after being closed
* Restore lind debug import helper

* Link lind debug object in dynamic builds

---------

Co-authored-by: Daniel Zhao <你çzz10239@nyu.edu>
getcwd(NULL, 0) is valid POSIX — glibc should allocate the buffer.
Our wrapper passed NULL through TRANSLATE_GUEST_POINTER_TO_HOST which
produced a bad pointer, causing the syscall to fail. bash calls
getcwd(0, 0) during shell init, triggering "error retrieving current
directory" on startup.

Allocate a buffer when buf is NULL before calling the syscall.
* Change optimization level from O0 to O2

* fix tests for O2 compatibility

- filetest.c, filetest1000.c: fix OOB write buffer[WRITE_BUFFER_SIZE]
  to buffer[WRITE_BUFFER_SIZE - 1]
- alarm.c, setitimer.c: add volatile to signal_counter so O2 doesn't
  optimize out the spin loop
- wait.c: convert to asserts, remove sleep and non-deterministic output
- fork_large_memory.c: remove intermediate printf, keep single final print

* skip statfs test pending O2 investigation

---------

Co-authored-by: Nicholas Renner <nicholassrenner@gmail.com>
* Increase MAX_CAGEID to 2048 and fix alloc off-by-one

Raise the cage ID limit from 1024 to 2048. Fix off-by-one in
alloc_cage_id where the old condition (v <= MAX_CAGEID) could return
a cage ID equal to MAX_CAGEID, which is out of bounds for CAGE_MAP.
Add fork_max_cages test that exercises the full cage ID space.

* Add fork_max_cages to skip list
@DanielZ224
Copy link
Copy Markdown
Contributor Author

@rennergade
Done. I removed file_tests/deterministic/statfs.c from skip_test_cases.txt, so the statfs test should now run in CI after the O2 branch merge.

@qianxichen233
Copy link
Copy Markdown
Contributor

qianxichen233 commented May 1, 2026

there are conflicts you need to resolve. merge with main and resolve the conflicts to enable CI run

@DanielZ224
Copy link
Copy Markdown
Contributor Author

Done. I merged the latest origin/main into fix-statfs-efault-o2, resolved the conflicts, and pushed the updated branch.

I kept the new rdynamic_* skip entries from main, removed file_tests/deterministic/statfs.c from skip_test_cases.txt, and preserved the new cage_map_bench bench config from main. CI should be able to run now.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 3, 2026

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total14
Success14
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

copy-data-between-cages/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

interposing-calls/fork-with-newret_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Cage] Forked process with PID: 10
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.052920s4.379863s
Success
thread.cSuccessNone0.045915s4.435412s
Success
tls_test.cSuccessNone0.055901s4.484244s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases212
Number of Successes211
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure1
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.047997s0.128137s
Success
chdir_getcwd.cSuccessNone0.048232s0.095300s
Success
chmod.cSuccessNone0.054382s0.103824s
Success
clock_gettime_highlevel.cSuccessNone0.118565s0.157113s
Success
clock_gettime_simple.cSuccessNone0.042111s0.086227s
Success
cloexec.cSuccessNone0.052155s0.106808s
Success
close.cSuccessNone0.060017s0.114700s
Success
creat_access.cSuccessNone0.052399s0.097862s
Success
doubleclose.cSuccessNone0.043196s0.082078s
Success
dup.cSuccessNone0.043953s0.095430s
Success
dup2.cSuccessNone0.049595s0.095248s
Success
dup3.cSuccessNone0.050535s0.096256s
Success
dupwrite.cSuccessNone0.050270s0.094065s
Success
etc_conf.cSuccessNone0.046139s0.098185s
Success
fchdir.cSuccessNone0.053999s0.105786s
Success
fchmod.cSuccessNone0.052534s0.105084s
Success
fcntl.cSuccessNone0.050260s0.109846s
Success
fdatasync.cSuccessNone0.049139s0.093603s
Success
filetest.cSuccessNone0.049852s0.091987s
Success
filetest1000.cSuccessNone0.058261s0.107784s
Success
flock.cSuccessNone0.059739s0.123486s
Success
fstat.cSuccessNone0.052504s0.106094s
Success
fstatfs.cSuccessNone0.046096s0.088943s
Success
fsync.cSuccessNone0.051160s0.093599s
Success
ftruncate.cSuccessNone0.054968s0.288065s
Success
getcwd.cSuccessNone0.046715s0.089612s
Success
getcwd_null.cSuccessNone0.051291s0.100750s
Success
getpgid.cSuccessNone0.044987s0.086001s
Success
getrandom.cSuccessNone0.050225s0.105584s
Success
ioctl.cSuccessNone0.053009s0.100114s
Success
link.cSuccessNone0.054757s0.145179s
Success
locale_test.cSuccessNone0.065405s0.707754s
Success
lseek.cSuccessNone0.055880s0.197324s
Success
lstat.cSuccessNone0.053612s0.111022s
Success
mkdir_rmdir.cSuccessNone0.051368s0.095941s
Success
mkfifo_test.cSuccessNone0.056780s0.138705s
Success
mknod.cSuccessNone0.049939s0.103322s
Success
nocancel_io.cSuccessNone0.054960s0.123359s
Success
open.cSuccessNone0.045400s0.086224s
Success
openat.cSuccessNone0.046414s0.091300s
Success
path_conversion_safety.cSuccessNone0.054162s0.114600s
Success
ppoll.cSuccessNone0.053966s0.105384s
Success
pread_pwrite.cSuccessNone0.047867s0.097847s
Success
preadv_pwritev.cSuccessNone0.053438s0.109994s
Success
printf.cSuccessNone0.042239s0.080624s
Success
prlimit64.cSuccessNone0.044402s0.088109s
Success
read.cSuccessNone0.051901s0.104817s
Success
readbytes.cSuccessNone0.046738s0.090942s
Success
readdir_basic.cSuccessNone0.054732s0.119930s
Success
readlink.cSuccessNone0.056763s0.102646s
Success
readlinkat.cSuccessNone0.053073s0.107357s
Success
readv_writev_test.cSuccessNone0.052464s0.105975s
Success
rename.cSuccessNone0.053297s0.098493s
Success
sc-writev.cSuccessNone0.049280s0.094431s
Success
stat.cSuccessNone0.051314s0.104763s
Success
statfs.cSuccessNone0.044828s0.088200s
Success
symlink.cSuccessNone0.053279s0.126237s
Success
sync_file_range.cSuccessNone0.048266s0.093499s
Success
timespec_time_t_compat.cSuccessNone0.048583s0.090905s
Success
truncate.cSuccessNone0.052162s0.111672s
Success
unlink.cSuccessNone0.053627s0.134780s
Success
unlinkat.cSuccessNone0.053252s0.112655s
Success
write.cSuccessNone0.044219s0.082348s
Success
writeloop.cSuccessNone0.054330s0.100213s
Success
writepartial.cSuccessNone0.051267s0.092442s
Success
writev.cSuccessNone0.052359s0.102631s
Success
Math Tests
math_link_smoke.cSuccessNone0.054695s0.090804s
Success
math_tests.cSuccessNone0.058308s0.114067s
Success
printf_float.cSuccessNone0.055670s0.113489s
Success
Memory Tests
brk.cSuccessNone0.049481s0.095749s
Success
fork_large_memory.cSuccessNone0.081712s0.491161s
Success
malloc.cSuccessNone0.045172s0.084407s
Success
malloc_large.cSuccessNone0.047316s0.084748s
Success
memcpy.cSuccessNone0.045641s0.086503s
Success
memory_error_test.cSuccessNone0.052557s0.113621s
Success
mmap.cSuccessNone0.045263s0.085058s
Success
mmap_aligned.cSuccessNone0.045154s0.097351s
Success
mmap_complicated.cSuccessNone0.051504s0.103985s
Success
mmap_file.cSuccessNone0.051394s0.097910s
Success
mmap_shared.cSuccessNone0.050507s0.098989s
Success
mmaptest.cSuccessNone0.046883s0.090770s
Success
mprotect.cSuccessNone0.044336s0.086671s
Success
mprotect_boundary.cSuccessNone0.044833s0.095592s
Success
mprotect_end_region.cSuccessNone0.044280s0.089734s
Success
mprotect_middle_region.cSuccessNone0.044770s0.090719s
Success
mprotect_multiple_times.cSuccessNone0.044455s0.090610s
Success
mprotect_same_value.cSuccessNone0.043847s0.088071s
Success
mprotect_spanning_regions.cSuccessNone0.046010s0.105128s
Success
munmap_adjacent_shm.cSuccessNone0.046597s0.107715s
Success
sbrk.cSuccessNone0.046615s0.088732s
Success
segfault.cSuccessNone0.053029s0.114302s
Success
shm.cSuccessNone0.050293s0.103906s
Success
shmtest.cSuccessNone0.045211s0.092847s
Success
thread_malloc_sequential.cSuccessNone0.052422s0.126263s
Success
vtable.cSuccessNone0.056023s0.103710s
Success
Networking Tests
accept4.cSuccessNone0.056441s0.112075s
Success
dns_resolve_test.cSuccessNone0.050992s0.100297s
Success
dnstest.cSuccessNone0.052269s0.098577s
Success
epoll_badfd.cSuccessNone0.045240s0.087601s
Success
epoll_edge_triggered.cSuccessNone0.209169s0.516140s
Success
epollcreate1.cSuccessNone0.053094s0.107338s
Success
error_handling_net.cFailureUnknown_Failure0.063008s0.212123s
1. EBADF on all operations with fd=-1/tmp/wasmtest_artifacts_9yvl0fzt/networking_tests/deterministic/error_handling_net.c:77: int main(void): Assertion `ret == -1' failed.
failed to run main module

Caused by:
0: failed to invoke command default
1: wasm trap: wasm unreachable instruction executed

getaddrinfo_test.cSuccessNone0.054672s0.142018s
Success
getaddrinfo_unspec.cSuccessNone0.052965s0.104873s
Success
gethostname.cSuccessNone0.044282s0.084223s
Success
getifaddrs.cSuccessNone0.053249s0.100853s
Success
getsockname.cSuccessNone0.057442s0.101753s
Success
getsockopt.cSuccessNone0.054971s0.147958s
Success
ipv6_basic.cSuccessNone0.056350s0.140493s
Success
makepipe.cSuccessNone0.044778s0.083558s
Success
nonblocking_eagain.cSuccessNone0.056967s0.155621s
Success
pipe.cSuccessNone0.053979s0.106542s
Success
pipe2.cSuccessNone0.053849s0.099381s
Success
pipeinput.cSuccessNone0.054414s0.117784s
Success
pipeinput2.cSuccessNone0.055340s0.123593s
Success
pipeonestring.cSuccessNone0.054374s0.118161s
Success
pipepong.cSuccessNone0.054537s0.119895s
Success
pipewrite.cSuccessNone0.048161s0.096366s
Success
poll.cSuccessNone0.051554s0.095925s
Success
recvfrom-sendto.cSuccessNone0.052771s0.104795s
Success
sendmsg_recvmsg_test.cSuccessNone0.051975s0.107745s
Success
serverclient.cSuccessNone0.052202s0.110511s
Success
shutdown.cSuccessNone0.054192s0.107466s
Success
shutdown_fork.cSuccessNone0.053260s0.105873s
Success
simple-select.cSuccessNone0.053667s0.116971s
Success
simple_epoll.cSuccessNone0.051762s0.102201s
Success
socket.cSuccessNone0.051260s0.094235s
Success
socket_cloexec.cSuccessNone0.050976s0.094119s
Success
socket_options_advanced.cSuccessNone0.058203s0.184632s
Success
socketepoll.cSuccessNone0.051414s0.097587s
Success
socketpair.cSuccessNone0.049636s0.102440s
Success
socketselect.cSuccessNone0.051331s0.100892s
Success
udp_send_recv.cSuccessNone0.158283s0.252387s
Success
uds-getsockname.cSuccessNone0.051849s0.097531s
Success
uds-nb-select.cSuccessNone2.063717s2.147627s
Success
uds-serverclient.cSuccessNone0.056816s0.123310s
Success
uds-socketselect.cSuccessNone0.052635s0.105114s
Success
writev_socket.cSuccessNone0.055998s0.135847s
Success
Process Tests
barrier_test.cSuccessNone0.050376s0.101193s
Success
chain_thread.cSuccessNone1.053410s1.107765s
Success
ctor_syscall_test.cSuccessNone0.041904s0.083216s
Success
cxa_atexit_test.cSuccessNone0.047279s0.089846s
Success
exec_non_utf8.cSuccessNone0.050818s0.095862s
Success
execve_shebang.cSuccessNone0.052221s0.096055s
Success
exit.cSuccessNone0.048446s0.090383s
Success
exit_failure.cSuccessNone0.052049s0.099609s
Success
exit_group_thread.cSuccessNone0.054893s0.106435s
Success
flockfile_test.cSuccessNone0.052246s0.107513s
Success
fork2malloc.cSuccessNone0.052529s0.102107s
Success
fork_select.cSuccessNone0.050411s0.106628s
Success
fork_simple.cSuccessNone0.049567s0.095194s
Success
fork_syscall.cSuccessNone0.056963s0.224739s
Success
fork_tls_ctype.cSuccessNone0.054239s0.119136s
Success
forkandopen.cSuccessNone0.052613s0.111189s
Success
forkdup.cSuccessNone0.056826s0.105221s
Success
forkexecuid.cSuccessNone0.050922s0.110413s
Success
forkexecv-arg.cSuccessNone0.050965s0.101045s
Success
forkexecv.cSuccessNone0.048820s0.098591s
Success
forkfiles.cSuccessNone0.052666s0.105947s
Success
forkmalloc.cSuccessNone0.051971s0.098203s
Success
forknodup.cSuccessNone0.053276s0.108542s
Success
function-ptr.cSuccessNone0.046014s0.088478s
Success
getegid_syscall.cSuccessNone0.052590s0.212373s
Success
getgid_syscall.cSuccessNone0.052787s0.205977s
Success
getpid.cSuccessNone0.044918s0.083748s
Success
getpid_syscall.cSuccessNone0.053978s0.212397s
Success
getppid.cSuccessNone0.051620s0.099431s
Success
getppid_syscall.cSuccessNone0.054665s0.179359s
Success
getuid.cSuccessNone0.052388s0.096018s
Success
getuid_syscall.cSuccessNone0.049645s0.139490s
Success
hello-arg.cSuccessNone0.041831s0.084783s
Success
hello.cSuccessNone0.042156s0.080857s
Success
longjmp.cSuccessNone0.043247s0.086373s
Success
mutex.cSuccessNone2.055877s2.103454s
Success
printf_deadlock_smoke.cSuccessNone0.060182s0.131131s
Success
printf_thread_test.cSuccessNone0.049788s0.104797s
Success
sem_forks.cSuccessNone0.055110s0.116245s
Success
setsid.cSuccessNone0.044771s0.084999s
Success
template.cSuccessNone0.051831s0.118621s
Success
test_exec_nofork.cSuccessNone0.052223s0.100649s
Success
test_unlink_open_file.cSuccessNone0.046328s0.086870s
Success
thread-guard.cSuccessNone0.048601s0.099098s
Success
thread-test.cSuccessNone0.047714s0.093453s
Success
thread.cSuccessNone0.046188s0.089777s
Success
thread_cageid_race.cSuccessNone0.047685s0.126128s
Success
tls_test.cSuccessNone0.049141s0.103753s
Success
uname.cSuccessNone0.045765s0.085334s
Success
wait.cSuccessNone0.048089s0.102507s
Success
waitpid_anychild.cSuccessNone0.051748s0.101435s
Success
waitpid_syscall.cSuccessNone1.051378s1.133124s
Success
waitpid_wnohang.cSuccessNone0.052777s0.105230s
Success
Signal Tests
alarm.cSuccessNone7.050432s7.133107s
Success
eintr_fork_signal.cSuccessNone1.053593s1.114309s
Success
kill.cSuccessNone1.051983s1.103191s
Success
setitimer.cSuccessNone7.051784s7.129637s
Success
sigalrm.cSuccessNone2.051422s2.107912s
Success
sigaltstack.cSuccessNone0.055709s0.105748s
Success
sigchld.cSuccessNone1.052917s1.101405s
Success
signal-fork.cSuccessNone4.053553s4.104549s
Success
signal-simple.cSuccessNone0.052352s0.098143s
Success
signal_SIGCHLD.cSuccessNone0.050623s0.103439s
Success
signal_fork.cSuccessNone0.047671s0.103633s
Success
signal_int_ignored.cSuccessNone2.052285s2.100803s
Success
signal_kill_cleanup.cSuccessNone1.049057s1.099893s
Success
signal_procmask.cSuccessNone0.046212s0.094112s
Success
signal_read_interrupt.cSuccessNone0.555985s0.610234s
Success
signal_recursive.cSuccessNone0.047212s0.095029s
Success
signal_sa_mask.cSuccessNone0.045781s0.091917s
Success
signal_select_interrupt.cSuccessNone0.556699s0.611930s
Success
signal_write_interrupt.cSuccessNone1.054016s1.111610s
Success
sigpipe.cSuccessNone1.053966s1.110367s
Success
sigprocmask.cSuccessNone1.050972s1.099966s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.043645s0.085034s
Success
Memory Tests
mmap-negative1.cSuccessNone0.115359s0.100937s
Success
mmap-negative2.cSuccessNone0.112058s0.101335s
Success
Signal Tests
signal_resethand.cSuccessNone1.051165s1.100635s
Success

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 3, 2026

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total14
Success14
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

copy-data-between-cages/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

interposing-calls/fork-with-newret_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Cage] Forked process with PID: 10
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.052920s4.379863s
Success
thread.cSuccessNone0.045915s4.435412s
Success
tls_test.cSuccessNone0.055901s4.484244s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases212
Number of Successes211
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure1
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.047997s0.128137s
Success
chdir_getcwd.cSuccessNone0.048232s0.095300s
Success
chmod.cSuccessNone0.054382s0.103824s
Success
clock_gettime_highlevel.cSuccessNone0.118565s0.157113s
Success
clock_gettime_simple.cSuccessNone0.042111s0.086227s
Success
cloexec.cSuccessNone0.052155s0.106808s
Success
close.cSuccessNone0.060017s0.114700s
Success
creat_access.cSuccessNone0.052399s0.097862s
Success
doubleclose.cSuccessNone0.043196s0.082078s
Success
dup.cSuccessNone0.043953s0.095430s
Success
dup2.cSuccessNone0.049595s0.095248s
Success
dup3.cSuccessNone0.050535s0.096256s
Success
dupwrite.cSuccessNone0.050270s0.094065s
Success
etc_conf.cSuccessNone0.046139s0.098185s
Success
fchdir.cSuccessNone0.053999s0.105786s
Success
fchmod.cSuccessNone0.052534s0.105084s
Success
fcntl.cSuccessNone0.050260s0.109846s
Success
fdatasync.cSuccessNone0.049139s0.093603s
Success
filetest.cSuccessNone0.049852s0.091987s
Success
filetest1000.cSuccessNone0.058261s0.107784s
Success
flock.cSuccessNone0.059739s0.123486s
Success
fstat.cSuccessNone0.052504s0.106094s
Success
fstatfs.cSuccessNone0.046096s0.088943s
Success
fsync.cSuccessNone0.051160s0.093599s
Success
ftruncate.cSuccessNone0.054968s0.288065s
Success
getcwd.cSuccessNone0.046715s0.089612s
Success
getcwd_null.cSuccessNone0.051291s0.100750s
Success
getpgid.cSuccessNone0.044987s0.086001s
Success
getrandom.cSuccessNone0.050225s0.105584s
Success
ioctl.cSuccessNone0.053009s0.100114s
Success
link.cSuccessNone0.054757s0.145179s
Success
locale_test.cSuccessNone0.065405s0.707754s
Success
lseek.cSuccessNone0.055880s0.197324s
Success
lstat.cSuccessNone0.053612s0.111022s
Success
mkdir_rmdir.cSuccessNone0.051368s0.095941s
Success
mkfifo_test.cSuccessNone0.056780s0.138705s
Success
mknod.cSuccessNone0.049939s0.103322s
Success
nocancel_io.cSuccessNone0.054960s0.123359s
Success
open.cSuccessNone0.045400s0.086224s
Success
openat.cSuccessNone0.046414s0.091300s
Success
path_conversion_safety.cSuccessNone0.054162s0.114600s
Success
ppoll.cSuccessNone0.053966s0.105384s
Success
pread_pwrite.cSuccessNone0.047867s0.097847s
Success
preadv_pwritev.cSuccessNone0.053438s0.109994s
Success
printf.cSuccessNone0.042239s0.080624s
Success
prlimit64.cSuccessNone0.044402s0.088109s
Success
read.cSuccessNone0.051901s0.104817s
Success
readbytes.cSuccessNone0.046738s0.090942s
Success
readdir_basic.cSuccessNone0.054732s0.119930s
Success
readlink.cSuccessNone0.056763s0.102646s
Success
readlinkat.cSuccessNone0.053073s0.107357s
Success
readv_writev_test.cSuccessNone0.052464s0.105975s
Success
rename.cSuccessNone0.053297s0.098493s
Success
sc-writev.cSuccessNone0.049280s0.094431s
Success
stat.cSuccessNone0.051314s0.104763s
Success
statfs.cSuccessNone0.044828s0.088200s
Success
symlink.cSuccessNone0.053279s0.126237s
Success
sync_file_range.cSuccessNone0.048266s0.093499s
Success
timespec_time_t_compat.cSuccessNone0.048583s0.090905s
Success
truncate.cSuccessNone0.052162s0.111672s
Success
unlink.cSuccessNone0.053627s0.134780s
Success
unlinkat.cSuccessNone0.053252s0.112655s
Success
write.cSuccessNone0.044219s0.082348s
Success
writeloop.cSuccessNone0.054330s0.100213s
Success
writepartial.cSuccessNone0.051267s0.092442s
Success
writev.cSuccessNone0.052359s0.102631s
Success
Math Tests
math_link_smoke.cSuccessNone0.054695s0.090804s
Success
math_tests.cSuccessNone0.058308s0.114067s
Success
printf_float.cSuccessNone0.055670s0.113489s
Success
Memory Tests
brk.cSuccessNone0.049481s0.095749s
Success
fork_large_memory.cSuccessNone0.081712s0.491161s
Success
malloc.cSuccessNone0.045172s0.084407s
Success
malloc_large.cSuccessNone0.047316s0.084748s
Success
memcpy.cSuccessNone0.045641s0.086503s
Success
memory_error_test.cSuccessNone0.052557s0.113621s
Success
mmap.cSuccessNone0.045263s0.085058s
Success
mmap_aligned.cSuccessNone0.045154s0.097351s
Success
mmap_complicated.cSuccessNone0.051504s0.103985s
Success
mmap_file.cSuccessNone0.051394s0.097910s
Success
mmap_shared.cSuccessNone0.050507s0.098989s
Success
mmaptest.cSuccessNone0.046883s0.090770s
Success
mprotect.cSuccessNone0.044336s0.086671s
Success
mprotect_boundary.cSuccessNone0.044833s0.095592s
Success
mprotect_end_region.cSuccessNone0.044280s0.089734s
Success
mprotect_middle_region.cSuccessNone0.044770s0.090719s
Success
mprotect_multiple_times.cSuccessNone0.044455s0.090610s
Success
mprotect_same_value.cSuccessNone0.043847s0.088071s
Success
mprotect_spanning_regions.cSuccessNone0.046010s0.105128s
Success
munmap_adjacent_shm.cSuccessNone0.046597s0.107715s
Success
sbrk.cSuccessNone0.046615s0.088732s
Success
segfault.cSuccessNone0.053029s0.114302s
Success
shm.cSuccessNone0.050293s0.103906s
Success
shmtest.cSuccessNone0.045211s0.092847s
Success
thread_malloc_sequential.cSuccessNone0.052422s0.126263s
Success
vtable.cSuccessNone0.056023s0.103710s
Success
Networking Tests
accept4.cSuccessNone0.056441s0.112075s
Success
dns_resolve_test.cSuccessNone0.050992s0.100297s
Success
dnstest.cSuccessNone0.052269s0.098577s
Success
epoll_badfd.cSuccessNone0.045240s0.087601s
Success
epoll_edge_triggered.cSuccessNone0.209169s0.516140s
Success
epollcreate1.cSuccessNone0.053094s0.107338s
Success
error_handling_net.cFailureUnknown_Failure0.063008s0.212123s
1. EBADF on all operations with fd=-1/tmp/wasmtest_artifacts_9yvl0fzt/networking_tests/deterministic/error_handling_net.c:77: int main(void): Assertion `ret == -1' failed.
failed to run main module

Caused by:
0: failed to invoke command default
1: wasm trap: wasm unreachable instruction executed

getaddrinfo_test.cSuccessNone0.054672s0.142018s
Success
getaddrinfo_unspec.cSuccessNone0.052965s0.104873s
Success
gethostname.cSuccessNone0.044282s0.084223s
Success
getifaddrs.cSuccessNone0.053249s0.100853s
Success
getsockname.cSuccessNone0.057442s0.101753s
Success
getsockopt.cSuccessNone0.054971s0.147958s
Success
ipv6_basic.cSuccessNone0.056350s0.140493s
Success
makepipe.cSuccessNone0.044778s0.083558s
Success
nonblocking_eagain.cSuccessNone0.056967s0.155621s
Success
pipe.cSuccessNone0.053979s0.106542s
Success
pipe2.cSuccessNone0.053849s0.099381s
Success
pipeinput.cSuccessNone0.054414s0.117784s
Success
pipeinput2.cSuccessNone0.055340s0.123593s
Success
pipeonestring.cSuccessNone0.054374s0.118161s
Success
pipepong.cSuccessNone0.054537s0.119895s
Success
pipewrite.cSuccessNone0.048161s0.096366s
Success
poll.cSuccessNone0.051554s0.095925s
Success
recvfrom-sendto.cSuccessNone0.052771s0.104795s
Success
sendmsg_recvmsg_test.cSuccessNone0.051975s0.107745s
Success
serverclient.cSuccessNone0.052202s0.110511s
Success
shutdown.cSuccessNone0.054192s0.107466s
Success
shutdown_fork.cSuccessNone0.053260s0.105873s
Success
simple-select.cSuccessNone0.053667s0.116971s
Success
simple_epoll.cSuccessNone0.051762s0.102201s
Success
socket.cSuccessNone0.051260s0.094235s
Success
socket_cloexec.cSuccessNone0.050976s0.094119s
Success
socket_options_advanced.cSuccessNone0.058203s0.184632s
Success
socketepoll.cSuccessNone0.051414s0.097587s
Success
socketpair.cSuccessNone0.049636s0.102440s
Success
socketselect.cSuccessNone0.051331s0.100892s
Success
udp_send_recv.cSuccessNone0.158283s0.252387s
Success
uds-getsockname.cSuccessNone0.051849s0.097531s
Success
uds-nb-select.cSuccessNone2.063717s2.147627s
Success
uds-serverclient.cSuccessNone0.056816s0.123310s
Success
uds-socketselect.cSuccessNone0.052635s0.105114s
Success
writev_socket.cSuccessNone0.055998s0.135847s
Success
Process Tests
barrier_test.cSuccessNone0.050376s0.101193s
Success
chain_thread.cSuccessNone1.053410s1.107765s
Success
ctor_syscall_test.cSuccessNone0.041904s0.083216s
Success
cxa_atexit_test.cSuccessNone0.047279s0.089846s
Success
exec_non_utf8.cSuccessNone0.050818s0.095862s
Success
execve_shebang.cSuccessNone0.052221s0.096055s
Success
exit.cSuccessNone0.048446s0.090383s
Success
exit_failure.cSuccessNone0.052049s0.099609s
Success
exit_group_thread.cSuccessNone0.054893s0.106435s
Success
flockfile_test.cSuccessNone0.052246s0.107513s
Success
fork2malloc.cSuccessNone0.052529s0.102107s
Success
fork_select.cSuccessNone0.050411s0.106628s
Success
fork_simple.cSuccessNone0.049567s0.095194s
Success
fork_syscall.cSuccessNone0.056963s0.224739s
Success
fork_tls_ctype.cSuccessNone0.054239s0.119136s
Success
forkandopen.cSuccessNone0.052613s0.111189s
Success
forkdup.cSuccessNone0.056826s0.105221s
Success
forkexecuid.cSuccessNone0.050922s0.110413s
Success
forkexecv-arg.cSuccessNone0.050965s0.101045s
Success
forkexecv.cSuccessNone0.048820s0.098591s
Success
forkfiles.cSuccessNone0.052666s0.105947s
Success
forkmalloc.cSuccessNone0.051971s0.098203s
Success
forknodup.cSuccessNone0.053276s0.108542s
Success
function-ptr.cSuccessNone0.046014s0.088478s
Success
getegid_syscall.cSuccessNone0.052590s0.212373s
Success
getgid_syscall.cSuccessNone0.052787s0.205977s
Success
getpid.cSuccessNone0.044918s0.083748s
Success
getpid_syscall.cSuccessNone0.053978s0.212397s
Success
getppid.cSuccessNone0.051620s0.099431s
Success
getppid_syscall.cSuccessNone0.054665s0.179359s
Success
getuid.cSuccessNone0.052388s0.096018s
Success
getuid_syscall.cSuccessNone0.049645s0.139490s
Success
hello-arg.cSuccessNone0.041831s0.084783s
Success
hello.cSuccessNone0.042156s0.080857s
Success
longjmp.cSuccessNone0.043247s0.086373s
Success
mutex.cSuccessNone2.055877s2.103454s
Success
printf_deadlock_smoke.cSuccessNone0.060182s0.131131s
Success
printf_thread_test.cSuccessNone0.049788s0.104797s
Success
sem_forks.cSuccessNone0.055110s0.116245s
Success
setsid.cSuccessNone0.044771s0.084999s
Success
template.cSuccessNone0.051831s0.118621s
Success
test_exec_nofork.cSuccessNone0.052223s0.100649s
Success
test_unlink_open_file.cSuccessNone0.046328s0.086870s
Success
thread-guard.cSuccessNone0.048601s0.099098s
Success
thread-test.cSuccessNone0.047714s0.093453s
Success
thread.cSuccessNone0.046188s0.089777s
Success
thread_cageid_race.cSuccessNone0.047685s0.126128s
Success
tls_test.cSuccessNone0.049141s0.103753s
Success
uname.cSuccessNone0.045765s0.085334s
Success
wait.cSuccessNone0.048089s0.102507s
Success
waitpid_anychild.cSuccessNone0.051748s0.101435s
Success
waitpid_syscall.cSuccessNone1.051378s1.133124s
Success
waitpid_wnohang.cSuccessNone0.052777s0.105230s
Success
Signal Tests
alarm.cSuccessNone7.050432s7.133107s
Success
eintr_fork_signal.cSuccessNone1.053593s1.114309s
Success
kill.cSuccessNone1.051983s1.103191s
Success
setitimer.cSuccessNone7.051784s7.129637s
Success
sigalrm.cSuccessNone2.051422s2.107912s
Success
sigaltstack.cSuccessNone0.055709s0.105748s
Success
sigchld.cSuccessNone1.052917s1.101405s
Success
signal-fork.cSuccessNone4.053553s4.104549s
Success
signal-simple.cSuccessNone0.052352s0.098143s
Success
signal_SIGCHLD.cSuccessNone0.050623s0.103439s
Success
signal_fork.cSuccessNone0.047671s0.103633s
Success
signal_int_ignored.cSuccessNone2.052285s2.100803s
Success
signal_kill_cleanup.cSuccessNone1.049057s1.099893s
Success
signal_procmask.cSuccessNone0.046212s0.094112s
Success
signal_read_interrupt.cSuccessNone0.555985s0.610234s
Success
signal_recursive.cSuccessNone0.047212s0.095029s
Success
signal_sa_mask.cSuccessNone0.045781s0.091917s
Success
signal_select_interrupt.cSuccessNone0.556699s0.611930s
Success
signal_write_interrupt.cSuccessNone1.054016s1.111610s
Success
sigpipe.cSuccessNone1.053966s1.110367s
Success
sigprocmask.cSuccessNone1.050972s1.099966s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.043645s0.085034s
Success
Memory Tests
mmap-negative1.cSuccessNone0.115359s0.100937s
Success
mmap-negative2.cSuccessNone0.112058s0.101335s
Success
Signal Tests
signal_resethand.cSuccessNone1.051165s1.100635s
Success

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 3, 2026

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total14
Success14
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

copy-data-between-cages/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

interposing-calls/fork-with-newret_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Cage] Forked process with PID: 10
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.052920s4.379863s
Success
thread.cSuccessNone0.045915s4.435412s
Success
tls_test.cSuccessNone0.055901s4.484244s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases212
Number of Successes211
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure1
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.047997s0.128137s
Success
chdir_getcwd.cSuccessNone0.048232s0.095300s
Success
chmod.cSuccessNone0.054382s0.103824s
Success
clock_gettime_highlevel.cSuccessNone0.118565s0.157113s
Success
clock_gettime_simple.cSuccessNone0.042111s0.086227s
Success
cloexec.cSuccessNone0.052155s0.106808s
Success
close.cSuccessNone0.060017s0.114700s
Success
creat_access.cSuccessNone0.052399s0.097862s
Success
doubleclose.cSuccessNone0.043196s0.082078s
Success
dup.cSuccessNone0.043953s0.095430s
Success
dup2.cSuccessNone0.049595s0.095248s
Success
dup3.cSuccessNone0.050535s0.096256s
Success
dupwrite.cSuccessNone0.050270s0.094065s
Success
etc_conf.cSuccessNone0.046139s0.098185s
Success
fchdir.cSuccessNone0.053999s0.105786s
Success
fchmod.cSuccessNone0.052534s0.105084s
Success
fcntl.cSuccessNone0.050260s0.109846s
Success
fdatasync.cSuccessNone0.049139s0.093603s
Success
filetest.cSuccessNone0.049852s0.091987s
Success
filetest1000.cSuccessNone0.058261s0.107784s
Success
flock.cSuccessNone0.059739s0.123486s
Success
fstat.cSuccessNone0.052504s0.106094s
Success
fstatfs.cSuccessNone0.046096s0.088943s
Success
fsync.cSuccessNone0.051160s0.093599s
Success
ftruncate.cSuccessNone0.054968s0.288065s
Success
getcwd.cSuccessNone0.046715s0.089612s
Success
getcwd_null.cSuccessNone0.051291s0.100750s
Success
getpgid.cSuccessNone0.044987s0.086001s
Success
getrandom.cSuccessNone0.050225s0.105584s
Success
ioctl.cSuccessNone0.053009s0.100114s
Success
link.cSuccessNone0.054757s0.145179s
Success
locale_test.cSuccessNone0.065405s0.707754s
Success
lseek.cSuccessNone0.055880s0.197324s
Success
lstat.cSuccessNone0.053612s0.111022s
Success
mkdir_rmdir.cSuccessNone0.051368s0.095941s
Success
mkfifo_test.cSuccessNone0.056780s0.138705s
Success
mknod.cSuccessNone0.049939s0.103322s
Success
nocancel_io.cSuccessNone0.054960s0.123359s
Success
open.cSuccessNone0.045400s0.086224s
Success
openat.cSuccessNone0.046414s0.091300s
Success
path_conversion_safety.cSuccessNone0.054162s0.114600s
Success
ppoll.cSuccessNone0.053966s0.105384s
Success
pread_pwrite.cSuccessNone0.047867s0.097847s
Success
preadv_pwritev.cSuccessNone0.053438s0.109994s
Success
printf.cSuccessNone0.042239s0.080624s
Success
prlimit64.cSuccessNone0.044402s0.088109s
Success
read.cSuccessNone0.051901s0.104817s
Success
readbytes.cSuccessNone0.046738s0.090942s
Success
readdir_basic.cSuccessNone0.054732s0.119930s
Success
readlink.cSuccessNone0.056763s0.102646s
Success
readlinkat.cSuccessNone0.053073s0.107357s
Success
readv_writev_test.cSuccessNone0.052464s0.105975s
Success
rename.cSuccessNone0.053297s0.098493s
Success
sc-writev.cSuccessNone0.049280s0.094431s
Success
stat.cSuccessNone0.051314s0.104763s
Success
statfs.cSuccessNone0.044828s0.088200s
Success
symlink.cSuccessNone0.053279s0.126237s
Success
sync_file_range.cSuccessNone0.048266s0.093499s
Success
timespec_time_t_compat.cSuccessNone0.048583s0.090905s
Success
truncate.cSuccessNone0.052162s0.111672s
Success
unlink.cSuccessNone0.053627s0.134780s
Success
unlinkat.cSuccessNone0.053252s0.112655s
Success
write.cSuccessNone0.044219s0.082348s
Success
writeloop.cSuccessNone0.054330s0.100213s
Success
writepartial.cSuccessNone0.051267s0.092442s
Success
writev.cSuccessNone0.052359s0.102631s
Success
Math Tests
math_link_smoke.cSuccessNone0.054695s0.090804s
Success
math_tests.cSuccessNone0.058308s0.114067s
Success
printf_float.cSuccessNone0.055670s0.113489s
Success
Memory Tests
brk.cSuccessNone0.049481s0.095749s
Success
fork_large_memory.cSuccessNone0.081712s0.491161s
Success
malloc.cSuccessNone0.045172s0.084407s
Success
malloc_large.cSuccessNone0.047316s0.084748s
Success
memcpy.cSuccessNone0.045641s0.086503s
Success
memory_error_test.cSuccessNone0.052557s0.113621s
Success
mmap.cSuccessNone0.045263s0.085058s
Success
mmap_aligned.cSuccessNone0.045154s0.097351s
Success
mmap_complicated.cSuccessNone0.051504s0.103985s
Success
mmap_file.cSuccessNone0.051394s0.097910s
Success
mmap_shared.cSuccessNone0.050507s0.098989s
Success
mmaptest.cSuccessNone0.046883s0.090770s
Success
mprotect.cSuccessNone0.044336s0.086671s
Success
mprotect_boundary.cSuccessNone0.044833s0.095592s
Success
mprotect_end_region.cSuccessNone0.044280s0.089734s
Success
mprotect_middle_region.cSuccessNone0.044770s0.090719s
Success
mprotect_multiple_times.cSuccessNone0.044455s0.090610s
Success
mprotect_same_value.cSuccessNone0.043847s0.088071s
Success
mprotect_spanning_regions.cSuccessNone0.046010s0.105128s
Success
munmap_adjacent_shm.cSuccessNone0.046597s0.107715s
Success
sbrk.cSuccessNone0.046615s0.088732s
Success
segfault.cSuccessNone0.053029s0.114302s
Success
shm.cSuccessNone0.050293s0.103906s
Success
shmtest.cSuccessNone0.045211s0.092847s
Success
thread_malloc_sequential.cSuccessNone0.052422s0.126263s
Success
vtable.cSuccessNone0.056023s0.103710s
Success
Networking Tests
accept4.cSuccessNone0.056441s0.112075s
Success
dns_resolve_test.cSuccessNone0.050992s0.100297s
Success
dnstest.cSuccessNone0.052269s0.098577s
Success
epoll_badfd.cSuccessNone0.045240s0.087601s
Success
epoll_edge_triggered.cSuccessNone0.209169s0.516140s
Success
epollcreate1.cSuccessNone0.053094s0.107338s
Success
error_handling_net.cFailureUnknown_Failure0.063008s0.212123s
1. EBADF on all operations with fd=-1/tmp/wasmtest_artifacts_9yvl0fzt/networking_tests/deterministic/error_handling_net.c:77: int main(void): Assertion `ret == -1' failed.
failed to run main module

Caused by:
0: failed to invoke command default
1: wasm trap: wasm unreachable instruction executed

getaddrinfo_test.cSuccessNone0.054672s0.142018s
Success
getaddrinfo_unspec.cSuccessNone0.052965s0.104873s
Success
gethostname.cSuccessNone0.044282s0.084223s
Success
getifaddrs.cSuccessNone0.053249s0.100853s
Success
getsockname.cSuccessNone0.057442s0.101753s
Success
getsockopt.cSuccessNone0.054971s0.147958s
Success
ipv6_basic.cSuccessNone0.056350s0.140493s
Success
makepipe.cSuccessNone0.044778s0.083558s
Success
nonblocking_eagain.cSuccessNone0.056967s0.155621s
Success
pipe.cSuccessNone0.053979s0.106542s
Success
pipe2.cSuccessNone0.053849s0.099381s
Success
pipeinput.cSuccessNone0.054414s0.117784s
Success
pipeinput2.cSuccessNone0.055340s0.123593s
Success
pipeonestring.cSuccessNone0.054374s0.118161s
Success
pipepong.cSuccessNone0.054537s0.119895s
Success
pipewrite.cSuccessNone0.048161s0.096366s
Success
poll.cSuccessNone0.051554s0.095925s
Success
recvfrom-sendto.cSuccessNone0.052771s0.104795s
Success
sendmsg_recvmsg_test.cSuccessNone0.051975s0.107745s
Success
serverclient.cSuccessNone0.052202s0.110511s
Success
shutdown.cSuccessNone0.054192s0.107466s
Success
shutdown_fork.cSuccessNone0.053260s0.105873s
Success
simple-select.cSuccessNone0.053667s0.116971s
Success
simple_epoll.cSuccessNone0.051762s0.102201s
Success
socket.cSuccessNone0.051260s0.094235s
Success
socket_cloexec.cSuccessNone0.050976s0.094119s
Success
socket_options_advanced.cSuccessNone0.058203s0.184632s
Success
socketepoll.cSuccessNone0.051414s0.097587s
Success
socketpair.cSuccessNone0.049636s0.102440s
Success
socketselect.cSuccessNone0.051331s0.100892s
Success
udp_send_recv.cSuccessNone0.158283s0.252387s
Success
uds-getsockname.cSuccessNone0.051849s0.097531s
Success
uds-nb-select.cSuccessNone2.063717s2.147627s
Success
uds-serverclient.cSuccessNone0.056816s0.123310s
Success
uds-socketselect.cSuccessNone0.052635s0.105114s
Success
writev_socket.cSuccessNone0.055998s0.135847s
Success
Process Tests
barrier_test.cSuccessNone0.050376s0.101193s
Success
chain_thread.cSuccessNone1.053410s1.107765s
Success
ctor_syscall_test.cSuccessNone0.041904s0.083216s
Success
cxa_atexit_test.cSuccessNone0.047279s0.089846s
Success
exec_non_utf8.cSuccessNone0.050818s0.095862s
Success
execve_shebang.cSuccessNone0.052221s0.096055s
Success
exit.cSuccessNone0.048446s0.090383s
Success
exit_failure.cSuccessNone0.052049s0.099609s
Success
exit_group_thread.cSuccessNone0.054893s0.106435s
Success
flockfile_test.cSuccessNone0.052246s0.107513s
Success
fork2malloc.cSuccessNone0.052529s0.102107s
Success
fork_select.cSuccessNone0.050411s0.106628s
Success
fork_simple.cSuccessNone0.049567s0.095194s
Success
fork_syscall.cSuccessNone0.056963s0.224739s
Success
fork_tls_ctype.cSuccessNone0.054239s0.119136s
Success
forkandopen.cSuccessNone0.052613s0.111189s
Success
forkdup.cSuccessNone0.056826s0.105221s
Success
forkexecuid.cSuccessNone0.050922s0.110413s
Success
forkexecv-arg.cSuccessNone0.050965s0.101045s
Success
forkexecv.cSuccessNone0.048820s0.098591s
Success
forkfiles.cSuccessNone0.052666s0.105947s
Success
forkmalloc.cSuccessNone0.051971s0.098203s
Success
forknodup.cSuccessNone0.053276s0.108542s
Success
function-ptr.cSuccessNone0.046014s0.088478s
Success
getegid_syscall.cSuccessNone0.052590s0.212373s
Success
getgid_syscall.cSuccessNone0.052787s0.205977s
Success
getpid.cSuccessNone0.044918s0.083748s
Success
getpid_syscall.cSuccessNone0.053978s0.212397s
Success
getppid.cSuccessNone0.051620s0.099431s
Success
getppid_syscall.cSuccessNone0.054665s0.179359s
Success
getuid.cSuccessNone0.052388s0.096018s
Success
getuid_syscall.cSuccessNone0.049645s0.139490s
Success
hello-arg.cSuccessNone0.041831s0.084783s
Success
hello.cSuccessNone0.042156s0.080857s
Success
longjmp.cSuccessNone0.043247s0.086373s
Success
mutex.cSuccessNone2.055877s2.103454s
Success
printf_deadlock_smoke.cSuccessNone0.060182s0.131131s
Success
printf_thread_test.cSuccessNone0.049788s0.104797s
Success
sem_forks.cSuccessNone0.055110s0.116245s
Success
setsid.cSuccessNone0.044771s0.084999s
Success
template.cSuccessNone0.051831s0.118621s
Success
test_exec_nofork.cSuccessNone0.052223s0.100649s
Success
test_unlink_open_file.cSuccessNone0.046328s0.086870s
Success
thread-guard.cSuccessNone0.048601s0.099098s
Success
thread-test.cSuccessNone0.047714s0.093453s
Success
thread.cSuccessNone0.046188s0.089777s
Success
thread_cageid_race.cSuccessNone0.047685s0.126128s
Success
tls_test.cSuccessNone0.049141s0.103753s
Success
uname.cSuccessNone0.045765s0.085334s
Success
wait.cSuccessNone0.048089s0.102507s
Success
waitpid_anychild.cSuccessNone0.051748s0.101435s
Success
waitpid_syscall.cSuccessNone1.051378s1.133124s
Success
waitpid_wnohang.cSuccessNone0.052777s0.105230s
Success
Signal Tests
alarm.cSuccessNone7.050432s7.133107s
Success
eintr_fork_signal.cSuccessNone1.053593s1.114309s
Success
kill.cSuccessNone1.051983s1.103191s
Success
setitimer.cSuccessNone7.051784s7.129637s
Success
sigalrm.cSuccessNone2.051422s2.107912s
Success
sigaltstack.cSuccessNone0.055709s0.105748s
Success
sigchld.cSuccessNone1.052917s1.101405s
Success
signal-fork.cSuccessNone4.053553s4.104549s
Success
signal-simple.cSuccessNone0.052352s0.098143s
Success
signal_SIGCHLD.cSuccessNone0.050623s0.103439s
Success
signal_fork.cSuccessNone0.047671s0.103633s
Success
signal_int_ignored.cSuccessNone2.052285s2.100803s
Success
signal_kill_cleanup.cSuccessNone1.049057s1.099893s
Success
signal_procmask.cSuccessNone0.046212s0.094112s
Success
signal_read_interrupt.cSuccessNone0.555985s0.610234s
Success
signal_recursive.cSuccessNone0.047212s0.095029s
Success
signal_sa_mask.cSuccessNone0.045781s0.091917s
Success
signal_select_interrupt.cSuccessNone0.556699s0.611930s
Success
signal_write_interrupt.cSuccessNone1.054016s1.111610s
Success
sigpipe.cSuccessNone1.053966s1.110367s
Success
sigprocmask.cSuccessNone1.050972s1.099966s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.043645s0.085034s
Success
Memory Tests
mmap-negative1.cSuccessNone0.115359s0.100937s
Success
mmap-negative2.cSuccessNone0.112058s0.101335s
Success
Signal Tests
signal_resethand.cSuccessNone1.051165s1.100635s
Success

@DanielZ224
Copy link
Copy Markdown
Contributor Author

Since error_handling_net.c seems unrelated to the statfs fix and passes locally, I’ll keep this PR focused on statfs and open a separate issue/PR to track and fix the networking test failure.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total14
Success14
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

copy-data-between-cages/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

interposing-calls/fork-with-newret_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Cage] Forked process with PID: 10
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.051552s4.392597s
Success
thread.cSuccessNone0.045806s4.455854s
Success
tls_test.cSuccessNone0.057772s4.468083s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases212
Number of Successes212
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.047476s0.139764s
Success
chdir_getcwd.cSuccessNone0.050318s0.112749s
Success
chmod.cSuccessNone0.055375s0.119808s
Success
clock_gettime_highlevel.cSuccessNone0.118052s0.156600s
Success
clock_gettime_simple.cSuccessNone0.042926s0.099662s
Success
cloexec.cSuccessNone0.053797s0.127140s
Success
close.cSuccessNone0.058489s0.128031s
Success
creat_access.cSuccessNone0.050604s0.110944s
Success
doubleclose.cSuccessNone0.043111s0.096073s
Success
dup.cSuccessNone0.044143s0.114901s
Success
dup2.cSuccessNone0.049604s0.110320s
Success
dup3.cSuccessNone0.050272s0.109204s
Success
dupwrite.cSuccessNone0.051225s0.108771s
Success
etc_conf.cSuccessNone0.044948s0.110421s
Success
fchdir.cSuccessNone0.053355s0.122572s
Success
fchmod.cSuccessNone0.053823s0.122731s
Success
fcntl.cSuccessNone0.050310s0.124138s
Success
fdatasync.cSuccessNone0.049319s0.106451s
Success
filetest.cSuccessNone0.049586s0.103937s
Success
filetest1000.cSuccessNone0.058942s0.116943s
Success
flock.cSuccessNone0.058776s0.147795s
Success
fstat.cSuccessNone0.052228s0.121788s
Success
fstatfs.cSuccessNone0.047570s0.102507s
Success
fsync.cSuccessNone0.049138s0.106765s
Success
ftruncate.cSuccessNone0.054869s0.204674s
Success
getcwd.cSuccessNone0.045434s0.099699s
Success
getcwd_null.cSuccessNone0.051398s0.112169s
Success
getpgid.cSuccessNone0.044811s0.104689s
Success
getrandom.cSuccessNone0.051301s0.119288s
Success
ioctl.cSuccessNone0.054082s0.115094s
Success
link.cSuccessNone0.054780s0.152348s
Success
locale_test.cSuccessNone0.063917s0.315095s
Success
lseek.cSuccessNone0.056133s0.183160s
Success
lstat.cSuccessNone0.054966s0.129781s
Success
mkdir_rmdir.cSuccessNone0.050106s0.110185s
Success
mkfifo_test.cSuccessNone0.056292s0.150706s
Success
mknod.cSuccessNone0.049835s0.119012s
Success
nocancel_io.cSuccessNone0.053387s0.133155s
Success
open.cSuccessNone0.045715s0.099674s
Success
openat.cSuccessNone0.045597s0.104498s
Success
path_conversion_safety.cSuccessNone0.054065s0.126776s
Success
ppoll.cSuccessNone0.053569s0.118879s
Success
pread_pwrite.cSuccessNone0.049410s0.116247s
Success
preadv_pwritev.cSuccessNone0.052981s0.126455s
Success
printf.cSuccessNone0.041817s0.091963s
Success
prlimit64.cSuccessNone0.044083s0.098718s
Success
read.cSuccessNone0.052925s0.123110s
Success
readbytes.cSuccessNone0.046518s0.101170s
Success
readdir_basic.cSuccessNone0.054940s0.141750s
Success
readlink.cSuccessNone0.049378s0.117231s
Success
readlinkat.cSuccessNone0.052804s0.120970s
Success
readv_writev_test.cSuccessNone0.052976s0.121872s
Success
rename.cSuccessNone0.054658s0.114236s
Success
sc-writev.cSuccessNone0.050617s0.110171s
Success
stat.cSuccessNone0.051033s0.118730s
Success
statfs.cSuccessNone0.046093s0.102423s
Success
symlink.cSuccessNone0.052720s0.140881s
Success
sync_file_range.cSuccessNone0.049330s0.107097s
Success
timespec_time_t_compat.cSuccessNone0.048098s0.103279s
Success
truncate.cSuccessNone0.051670s0.127890s
Success
unlink.cSuccessNone0.053944s0.145228s
Success
unlinkat.cSuccessNone0.051655s0.130602s
Success
write.cSuccessNone0.044133s0.091629s
Success
writeloop.cSuccessNone0.053451s0.111075s
Success
writepartial.cSuccessNone0.053503s0.104989s
Success
writev.cSuccessNone0.052686s0.119566s
Success
Math Tests
math_link_smoke.cSuccessNone0.054622s0.101258s
Success
math_tests.cSuccessNone0.059707s0.135372s
Success
printf_float.cSuccessNone0.054746s0.125566s
Success
Memory Tests
brk.cSuccessNone0.048417s0.104882s
Success
fork_large_memory.cSuccessNone0.085776s0.370478s
Success
malloc.cSuccessNone0.045909s0.099864s
Success
malloc_large.cSuccessNone0.049004s0.102806s
Success
memcpy.cSuccessNone0.045728s0.097770s
Success
memory_error_test.cSuccessNone0.052570s0.126815s
Success
mmap.cSuccessNone0.041879s0.095684s
Success
mmap_aligned.cSuccessNone0.046242s0.109653s
Success
mmap_complicated.cSuccessNone0.052811s0.125829s
Success
mmap_file.cSuccessNone0.054635s0.108597s
Success
mmap_shared.cSuccessNone0.048811s0.114751s
Success
mmaptest.cSuccessNone0.045034s0.099942s
Success
mprotect.cSuccessNone0.045628s0.099662s
Success
mprotect_boundary.cSuccessNone0.043714s0.110297s
Success
mprotect_end_region.cSuccessNone0.043127s0.102998s
Success
mprotect_middle_region.cSuccessNone0.043914s0.102539s
Success
mprotect_multiple_times.cSuccessNone0.044341s0.104318s
Success
mprotect_same_value.cSuccessNone0.046207s0.102384s
Success
mprotect_spanning_regions.cSuccessNone0.044352s0.125889s
Success
munmap_adjacent_shm.cSuccessNone0.045522s0.116303s
Success
sbrk.cSuccessNone0.045368s0.099198s
Success
segfault.cSuccessNone0.052032s0.134102s
Success
shm.cSuccessNone0.049357s0.121331s
Success
shmtest.cSuccessNone0.045123s0.104028s
Success
thread_malloc_sequential.cSuccessNone0.053124s0.147752s
Success
vtable.cSuccessNone0.055543s0.115923s
Success
Networking Tests
accept4.cSuccessNone0.056125s0.126046s
Success
dns_resolve_test.cSuccessNone0.050528s0.111808s
Success
dnstest.cSuccessNone0.050352s0.111919s
Success
epoll_badfd.cSuccessNone0.045684s0.099372s
Success
epoll_edge_triggered.cSuccessNone0.208931s0.372865s
Success
epollcreate1.cSuccessNone0.052619s0.126795s
Success
error_handling_net.cSuccessNone0.058212s0.188509s
Success
getaddrinfo_test.cSuccessNone0.055391s0.147053s
Success
getaddrinfo_unspec.cSuccessNone0.052136s0.126249s
Success
gethostname.cSuccessNone0.045137s0.099583s
Success
getifaddrs.cSuccessNone0.053245s0.113734s
Success
getsockname.cSuccessNone0.055237s0.113672s
Success
getsockopt.cSuccessNone0.055833s0.149763s
Success
ipv6_basic.cSuccessNone0.056050s0.151129s
Success
makepipe.cSuccessNone0.043397s0.097082s
Success
nonblocking_eagain.cSuccessNone0.057903s0.157953s
Success
pipe.cSuccessNone0.054904s0.123157s
Success
pipe2.cSuccessNone0.053287s0.112538s
Success
pipeinput.cSuccessNone0.055562s0.137621s
Success
pipeinput2.cSuccessNone0.053675s0.139675s
Success
pipeonestring.cSuccessNone0.054135s0.136028s
Success
pipepong.cSuccessNone0.055532s0.142521s
Success
pipewrite.cSuccessNone0.048425s0.110764s
Success
poll.cSuccessNone0.052023s0.107183s
Success
recvfrom-sendto.cSuccessNone0.054067s0.124058s
Success
sendmsg_recvmsg_test.cSuccessNone0.052514s0.121628s
Success
serverclient.cSuccessNone0.051655s0.128681s
Success
shutdown.cSuccessNone0.055527s0.124161s
Success
shutdown_fork.cSuccessNone0.053492s0.125214s
Success
simple-select.cSuccessNone0.053786s0.141628s
Success
simple_epoll.cSuccessNone0.052479s0.120123s
Success
socket.cSuccessNone0.052509s0.106147s
Success
socket_cloexec.cSuccessNone0.050509s0.105709s
Success
socket_options_advanced.cSuccessNone0.057080s0.167180s
Success
socketepoll.cSuccessNone0.050088s0.107030s
Success
socketpair.cSuccessNone0.049417s0.121718s
Success
socketselect.cSuccessNone0.052125s0.116104s
Success
udp_send_recv.cSuccessNone0.161759s0.260208s
Success
uds-getsockname.cSuccessNone0.052016s0.109080s
Success
uds-nb-select.cSuccessNone2.061499s2.169732s
Success
uds-serverclient.cSuccessNone0.056473s0.142679s
Success
uds-socketselect.cSuccessNone0.052920s0.119835s
Success
writev_socket.cSuccessNone0.055524s0.149155s
Success
Process Tests
barrier_test.cSuccessNone0.050334s0.119856s
Success
chain_thread.cSuccessNone1.051815s1.121381s
Success
ctor_syscall_test.cSuccessNone0.040725s0.095538s
Success
cxa_atexit_test.cSuccessNone0.046829s0.100369s
Success
exec_non_utf8.cSuccessNone0.049680s0.106778s
Success
execve_shebang.cSuccessNone0.051143s0.106994s
Success
exit.cSuccessNone0.048542s0.098287s
Success
exit_failure.cSuccessNone0.049582s0.114941s
Success
exit_group_thread.cSuccessNone0.054924s0.126737s
Success
flockfile_test.cSuccessNone0.050888s0.122173s
Success
fork2malloc.cSuccessNone0.051999s0.119007s
Success
fork_select.cSuccessNone0.051281s0.124676s
Success
fork_simple.cSuccessNone0.048894s0.111194s
Success
fork_syscall.cSuccessNone0.055843s0.333399s
Success
fork_tls_ctype.cSuccessNone0.054882s0.138397s
Success
forkandopen.cSuccessNone0.053193s0.127657s
Success
forkdup.cSuccessNone0.057461s0.121963s
Success
forkexecuid.cSuccessNone0.049685s0.129565s
Success
forkexecv-arg.cSuccessNone0.049824s0.117254s
Success
forkexecv.cSuccessNone0.048340s0.117203s
Success
forkfiles.cSuccessNone0.052792s0.121515s
Success
forkmalloc.cSuccessNone0.052005s0.111663s
Success
forknodup.cSuccessNone0.053074s0.125252s
Success
function-ptr.cSuccessNone0.046276s0.098890s
Success
getegid_syscall.cSuccessNone0.050257s0.261299s
Success
getgid_syscall.cSuccessNone0.051491s0.268269s
Success
getpid.cSuccessNone0.044834s0.095245s
Success
getpid_syscall.cSuccessNone0.053219s0.271369s
Success
getppid.cSuccessNone0.052232s0.116607s
Success
getppid_syscall.cSuccessNone0.054182s0.235729s
Success
getuid.cSuccessNone0.050621s0.104716s
Success
getuid_syscall.cSuccessNone0.050555s0.170588s
Success
hello-arg.cSuccessNone0.041346s0.097812s
Success
hello.cSuccessNone0.042991s0.095502s
Success
longjmp.cSuccessNone0.042093s0.099548s
Success
mutex.cSuccessNone2.054665s2.114605s
Success
printf_deadlock_smoke.cSuccessNone0.060273s0.146069s
Success
printf_thread_test.cSuccessNone0.049878s0.125702s
Success
sem_forks.cSuccessNone0.054225s0.140216s
Success
setsid.cSuccessNone0.042695s0.093856s
Success
template.cSuccessNone0.050663s0.137184s
Success
test_exec_nofork.cSuccessNone0.049582s0.113124s
Success
test_unlink_open_file.cSuccessNone0.047653s0.097279s
Success
thread-guard.cSuccessNone0.050011s0.112465s
Success
thread-test.cSuccessNone0.045936s0.105097s
Success
thread.cSuccessNone0.045335s0.103342s
Success
thread_cageid_race.cSuccessNone0.048100s0.158337s
Success
tls_test.cSuccessNone0.048719s0.119999s
Success
uname.cSuccessNone0.044911s0.096538s
Success
wait.cSuccessNone0.047114s0.120527s
Success
waitpid_anychild.cSuccessNone0.050262s0.115745s
Success
waitpid_syscall.cSuccessNone1.051760s1.163709s
Success
waitpid_wnohang.cSuccessNone0.051529s0.120965s
Success
Signal Tests
alarm.cSuccessNone7.050382s7.139369s
Success
eintr_fork_signal.cSuccessNone1.051970s1.133744s
Success
kill.cSuccessNone1.052035s1.119089s
Success
setitimer.cSuccessNone7.051479s7.147330s
Success
sigalrm.cSuccessNone2.051644s2.123109s
Success
sigaltstack.cSuccessNone0.052271s0.118902s
Success
sigchld.cSuccessNone1.053014s1.120003s
Success
signal-fork.cSuccessNone4.052497s4.119574s
Success
signal-simple.cSuccessNone0.053549s0.108835s
Success
signal_SIGCHLD.cSuccessNone0.049861s0.121592s
Success
signal_fork.cSuccessNone0.048550s0.120694s
Success
signal_int_ignored.cSuccessNone2.051833s2.121830s
Success
signal_kill_cleanup.cSuccessNone1.049469s1.111960s
Success
signal_procmask.cSuccessNone0.046091s0.108928s
Success
signal_read_interrupt.cSuccessNone0.556288s0.627227s
Success
signal_recursive.cSuccessNone0.046751s0.115480s
Success
signal_sa_mask.cSuccessNone0.045354s0.107221s
Success
signal_select_interrupt.cSuccessNone0.554125s0.627216s
Success
signal_write_interrupt.cSuccessNone1.054450s1.125610s
Success
sigpipe.cSuccessNone1.053651s1.127028s
Success
sigprocmask.cSuccessNone1.050151s1.114215s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.043736s0.097342s
Success
Memory Tests
mmap-negative1.cSuccessNone0.134585s0.101846s
Success
mmap-negative2.cSuccessNone0.128795s0.116888s
Success
Signal Tests
signal_resethand.cSuccessNone1.050537s1.115561s
Success

C++ harness

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccess0.434335s10.334376s
LIBCPP_SORT_OK 1 2 3

@rennergade rennergade merged commit 5f8dec8 into main May 6, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

statfs returns EFAULT at -O2 optimization level

5 participants