Skip to content

register_handler: calling cage should be the destination grate.#979

Merged
Yaxuan-w merged 4 commits intomainfrom
register-handler-cage
Mar 26, 2026
Merged

register_handler: calling cage should be the destination grate.#979
Yaxuan-w merged 4 commits intomainfrom
register-handler-cage

Conversation

@stupendoussuperpowers
Copy link
Copy Markdown
Contributor

@stupendoussuperpowers stupendoussuperpowers commented Mar 24, 2026

The current model when we interpose on register_handler is: "If anyone tries to interpose this target_cage, send it to me" and not "If this grate is the target for a register handler on any random cage, send it to me"

This PR fixes that and updates the interpose-register test to be compatible with the expected semantics.

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success9
Failures1
Compile Failures0
Runtime Failures0
Timeout Failures1
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:

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:

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:

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:

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
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interpose-register_grate.cFailureTimeout
Timed Out (timeout: 30s)
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:

race-test_grate.cSuccess
STDOUT:
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/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:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases195
Number of Successes194
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.049722s4.350417s
Success
chdir_getcwd.cSuccessNone0.050406s4.337911s
Success
chmod.cSuccessNone0.058838s4.356068s
Success
clock_gettime_highlevel.cSuccessNone0.121681s4.512883s
Success
clock_gettime_simple.cSuccessNone0.045094s4.284500s
Success
cloexec.cSuccessNone0.054002s4.017288s
Success
close.cSuccessNone0.063075s4.350619s
Success
creat_access.cSuccessNone0.053805s4.322762s
Success
doubleclose.cSuccessNone0.045781s3.906698s
Success
dup.cSuccessNone0.046244s4.335480s
Success
dup2.cSuccessNone0.051579s3.925341s
Success
dup3.cSuccessNone0.049941s4.301030s
Success
dupwrite.cSuccessNone0.052974s3.922884s
Success
etc_conf.cSuccessNone0.048114s4.313113s
Success
fchdir.cSuccessNone0.057136s4.335379s
Success
fchmod.cSuccessNone0.059356s4.367527s
Success
fcntl.cSuccessNone0.052644s4.321281s
Success
fdatasync.cSuccessNone0.055240s4.325336s
Success
filetest.cSuccessNone0.052112s3.962157s
Success
filetest1000.cSuccessNone0.062695s3.960004s
Success
flock.cSuccessNone0.062557s4.394273s
Success
fstat.cSuccessNone0.054438s4.308501s
Success
fstatfs.cSuccessNone0.052598s4.310160s
Success
fsync.cSuccessNone0.051697s4.355981s
Success
ftruncate.cSuccessNone0.057267s4.367629s
Success
getcwd.cSuccessNone0.048677s4.343827s
Success
getrandom.cSuccessNone0.052349s4.336329s
Success
ioctl.cSuccessNone0.058936s4.317896s
Success
link.cSuccessNone0.057049s4.337626s
Success
locale_test.cSuccessNone0.068419s6.185198s
Success
lseek.cSuccessNone0.057823s4.415440s
Success
mkdir_rmdir.cSuccessNone0.054857s4.382850s
Success
mkfifo_test.cSuccessNone0.061441s4.479755s
Success
mknod.cSuccessNone0.052133s4.312147s
Success
nocancel_io.cSuccessNone0.056440s5.533399s
Success
open.cSuccessNone0.049926s4.296654s
Success
openat.cSuccessNone0.048113s4.293384s
Success
path_conversion_safety.cSuccessNone0.058714s4.325248s
Success
pread_pwrite.cSuccessNone0.051808s4.321545s
Success
printf.cSuccessNone0.045850s3.911959s
Success
prlimit64.cSuccessNone0.047960s3.925610s
Success
read.cSuccessNone0.054114s4.290306s
Success
readbytes.cSuccessNone0.050140s3.949148s
Success
readlink.cSuccessNone0.053280s4.326710s
Success
readlinkat.cSuccessNone0.054691s4.314466s
Success
readv_writev_test.cSuccessNone0.055517s4.339812s
Success
rename.cSuccessNone0.055526s4.323479s
Success
sc-writev.cSuccessNone0.050798s4.305489s
Success
stat.cSuccessNone0.053484s4.311671s
Success
statfs.cSuccessNone0.048144s4.329561s
Success
sync_file_range.cSuccessNone0.051199s4.322929s
Success
truncate.cSuccessNone0.059465s4.394395s
Success
unlink.cSuccessNone0.055781s4.327626s
Success
unlinkat.cSuccessNone0.054679s4.344536s
Success
write.cSuccessNone0.046825s3.924193s
Success
writeloop.cSuccessNone0.058077s3.945485s
Success
writepartial.cSuccessNone0.054994s3.922902s
Success
writev.cSuccessNone0.054949s4.369255s
Success
Math Tests
math_link_smoke.cSuccessNone0.058408s3.947035s
Success
math_tests.cSuccessNone0.064035s4.141285s
Success
Memory Tests
brk.cSuccessNone0.050828s4.305482s
Success
fork_large_memory.cSuccessNone0.085084s4.605849s
Success
malloc.cSuccessNone0.048455s3.925381s
Success
malloc_large.cSuccessNone0.049716s4.303395s
Success
memcpy.cSuccessNone0.048142s3.912398s
Success
memory_error_test.cSuccessNone0.056317s4.359676s
Success
mmap.cSuccessNone0.046351s4.329238s
Success
mmap_aligned.cSuccessNone0.048080s4.411188s
Success
mmap_complicated.cSuccessNone0.054074s4.367193s
Success
mmap_file.cSuccessNone0.053800s4.319353s
Success
mmap_shared.cSuccessNone0.052833s4.386211s
Success
mmaptest.cSuccessNone0.049519s4.321307s
Success
mprotect.cSuccessNone0.049869s4.983791s
Success
mprotect_boundary.cSuccessNone0.047399s4.324736s
Success
mprotect_end_region.cSuccessNone0.046430s4.322081s
Success
mprotect_middle_region.cSuccessNone0.046751s4.355195s
Success
mprotect_multiple_times.cSuccessNone0.046821s4.291791s
Success
mprotect_same_value.cSuccessNone0.049692s4.308902s
Success
mprotect_spanning_regions.cSuccessNone0.048140s4.335749s
Success
sbrk.cSuccessNone0.049342s4.296128s
Success
segfault.cSuccessNone0.055273s4.361123s
Success
shm.cSuccessNone0.053991s4.383739s
Success
shmtest.cSuccessNone0.048112s4.309466s
Success
tcache_test.cFailureUnknown_Failure0.057405s4.708021s
tcache reuse: yes
thread_malloc_sequential.cSuccessNone0.055910s4.482811s
Success
vtable.cSuccessNone0.062817s4.343398s
Success
Networking Tests
accept4.cSuccessNone0.063428s4.412000s
Success
dns_resolve_test.cSuccessNone0.052917s6.088081s
Success
dnstest.cSuccessNone0.054122s4.338957s
Success
epoll_edge_triggered.cSuccessNone0.214090s4.571447s
Success
epollcreate1.cSuccessNone0.055272s4.328852s
Success
error_handling_net.cSuccessNone0.062089s4.380158s
Success
getaddrinfo_test.cSuccessNone0.058874s6.117115s
Success
getaddrinfo_unspec.cSuccessNone0.057332s6.017566s
Success
gethostname.cSuccessNone0.047875s3.950975s
Success
getifaddrs.cSuccessNone0.055981s4.535141s
Success
getsockname.cSuccessNone0.056677s4.349604s
Success
getsockopt.cSuccessNone0.058308s4.368782s
Success
ipv6_basic.cSuccessNone0.060069s4.400345s
Success
makepipe.cSuccessNone0.046955s3.923195s
Success
nonblocking_eagain.cSuccessNone0.062269s4.448127s
Success
pipe.cSuccessNone0.055492s4.350484s
Success
pipe2.cSuccessNone0.056286s4.363073s
Success
pipeinput.cSuccessNone0.058470s4.417465s
Success
pipeinput2.cSuccessNone0.057632s4.378711s
Success
pipeonestring.cSuccessNone0.057657s4.407498s
Success
pipepong.cSuccessNone0.056556s4.432802s
Success
pipewrite.cSuccessNone0.049655s4.342088s
Success
poll.cSuccessNone0.054801s4.345883s
Success
recvfrom-sendto.cSuccessNone0.056429s4.358830s
Success
sendmsg_recvmsg_test.cSuccessNone0.056388s4.366866s
Success
serverclient.cSuccessNone0.056078s3.949722s
Success
shutdown.cSuccessNone0.057622s3.972915s
Success
shutdown_fork.cSuccessNone0.055062s4.371515s
Success
simple-select.cSuccessNone0.056198s4.413832s
Success
simple_epoll.cSuccessNone0.057521s4.451759s
Success
socket.cSuccessNone0.053031s3.948908s
Success
socket_cloexec.cSuccessNone0.053528s4.321954s
Success
socket_options_advanced.cSuccessNone0.061654s4.397695s
Success
socketepoll.cSuccessNone0.055323s3.933616s
Success
socketpair.cSuccessNone0.053831s4.356530s
Success
socketselect.cSuccessNone0.053426s4.335201s
Success
udp_send_recv.cSuccessNone0.162286s4.556498s
Success
uds-getsockname.cSuccessNone0.056803s4.374552s
Success
uds-nb-select.cSuccessNone2.062415s6.569459s
Success
uds-serverclient.cSuccessNone0.059567s4.535937s
Success
uds-socketselect.cSuccessNone0.055454s3.969997s
Success
writev_socket.cSuccessNone0.059383s4.323575s
Success
Process Tests
barrier_test.cSuccessNone0.053169s4.491247s
Success
chain_thread.cSuccessNone1.055283s5.464360s
Success
ctor_syscall_test.cSuccessNone0.044529s4.332209s
Success
cxa_atexit_test.cSuccessNone0.049775s3.929938s
Success
exit.cSuccessNone0.051321s3.926484s
Success
exit_failure.cSuccessNone0.055181s4.016948s
Success
exit_group_thread.cSuccessNone0.056397s4.565922s
Success
flockfile_test.cSuccessNone0.053888s4.528311s
Success
fork2malloc.cSuccessNone0.056736s4.383513s
Success
fork_select.cSuccessNone0.054077s4.373875s
Success
fork_simple.cSuccessNone0.054315s4.463872s
Success
fork_syscall.cSuccessNone0.059173s4.441334s
Success
fork_tls_ctype.cSuccessNone0.058324s4.416618s
Success
forkandopen.cSuccessNone0.055774s4.390344s
Success
forkdup.cSuccessNone0.056466s4.002453s
Success
forkexecuid.cSuccessNone0.054038s4.463353s
Success
forkexecv-arg.cSuccessNone0.054591s4.456095s
Success
forkexecv.cSuccessNone0.051989s4.418917s
Success
forkfiles.cSuccessNone0.055419s4.368670s
Success
forkmalloc.cSuccessNone0.077478s4.368506s
Success
forknodup.cSuccessNone0.059492s4.412866s
Success
function-ptr.cSuccessNone0.051991s4.306507s
Success
getegid_syscall.cSuccessNone0.054611s4.389698s
Success
getgid_syscall.cSuccessNone0.055804s4.418038s
Success
getpid.cSuccessNone0.049203s4.316340s
Success
getpid_syscall.cSuccessNone0.056791s4.440316s
Success
getppid.cSuccessNone0.056780s4.439173s
Success
getppid_syscall.cSuccessNone0.059709s4.412494s
Success
getuid.cSuccessNone0.056191s4.313453s
Success
getuid_syscall.cSuccessNone0.053347s4.420431s
Success
hello-arg.cSuccessNone0.045239s3.928357s
Success
hello.cSuccessNone0.045640s3.955933s
Success
longjmp.cSuccessNone0.045522s3.980046s
Success
mutex.cSuccessNone2.062143s6.639532s
Success
printf_deadlock_smoke.cSuccessNone0.063040s4.646165s
Success
printf_thread_test.cSuccessNone0.052556s4.497141s
Success
sem_forks.cSuccessNone0.059859s4.413502s
Success
setsid.cSuccessNone0.047591s3.952615s
Success
template.cSuccessNone0.054784s4.390012s
Success
test_exec_nofork.cSuccessNone0.053168s4.408514s
Success
test_unlink_open_file.cSuccessNone0.049568s3.929334s
Success
thread-test.cSuccessNone0.050830s4.477945s
Success
thread.cSuccessNone0.049058s4.456700s
Success
thread_cageid_race.cSuccessNone0.050608s4.516370s
Success
tls_test.cSuccessNone0.053445s4.496581s
Success
uname.cSuccessNone0.048409s4.357121s
Success
wait.cSuccessNone2.052660s6.046237s
Success
waitpid_anychild.cSuccessNone0.054596s4.375795s
Success
waitpid_syscall.cSuccessNone1.057636s5.405315s
Success
waitpid_wnohang.cSuccessNone0.056816s3.971345s
Success
Signal Tests
alarm.cSuccessNone7.056983s10.980163s
Success
eintr_fork_signal.cSuccessNone1.057237s5.426336s
Success
kill.cSuccessNone1.054096s5.437127s
Success
setitimer.cSuccessNone7.055118s11.018564s
Success
sigalrm.cSuccessNone2.055198s6.001991s
Success
sigchld.cSuccessNone1.055149s5.059161s
Success
signal-fork.cSuccessNone4.056519s8.041015s
Success
signal-simple.cSuccessNone0.055385s3.960508s
Success
signal_SIGCHLD.cSuccessNone0.054293s4.398516s
Success
signal_fork.cSuccessNone0.052099s4.373771s
Success
signal_int_ignored.cSuccessNone2.054969s6.437032s
Success
signal_kill_cleanup.cSuccessNone1.052155s5.356372s
Success
signal_procmask.cSuccessNone0.050146s4.321995s
Success
signal_recursive.cSuccessNone0.050908s3.966202s
Success
signal_sa_mask.cSuccessNone0.049086s3.941704s
Success
sigpipe.cSuccessNone1.056081s5.396797s
Success
sigprocmask.cSuccessNone1.055901s5.078001s
Success
Fail 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
Memory Tests
mmap-negative1.cSuccessNone0.122187s4.531705s
Success
mmap-negative2.cSuccessNone0.192912s4.261759s
Success
Signal Tests
signal_resethand.cSuccessNone1.053262s5.018448s
Success

@rennergade
Copy link
Copy Markdown
Contributor

so the interpose test seems to fail with this?

@stupendoussuperpowers
Copy link
Copy Markdown
Contributor Author

Shouldn't the register_handler interposition have 3 grates?

main grate -> regular grate -> cage

and whenever we try to register_handler with target_grateid = regular grate, it goes to main grate first?

Not sure what the test we currently have is doing.

@Yaxuan-w
Copy link
Copy Markdown
Member

Shouldn't the register_handler interposition have 3 grates?
main grate -> regular grate -> cage
and whenever we try to register_handler with target_grateid = regular grate, it goes to main grate first?
Not sure what the test we currently have is doing.

The interposing register_handler test case is registering handlers in cage and grate interposes it then send it to 3i. I don't prefer we set the scenarios described here as default..

@Yaxuan-w
Copy link
Copy Markdown
Member

Could you point me to the case current version causes problems?

@stupendoussuperpowers
Copy link
Copy Markdown
Contributor Author

Could you point me to the case current version causes problems?

The current model when we interpose on register_handler is: "If anyone tries to interpose this target_cage, send it to me" and not "If this grate is the target for a register handler on any random cage, send it to me"

The current test interposes on the child cage, and then when it registers geteuid on it, we hit the custom handler.

The thing we want to test is that we hit the custom handler if the child grate tries to register something to divert to itself.

@Yaxuan-w
Copy link
Copy Markdown
Member

The current model when we interpose on register_handler is: "If anyone tries to interpose this target_cage, send it to me" and not "If this grate is the target for a register handler on any random cage, send it to me"

I see this makes sense to me. Could you update the interposing handler test and also comment this on the glibc? Thanks

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
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:

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:

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:

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:

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
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

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:

race-test_grate.cSuccess
STDOUT:
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/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:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases196
Number of Successes196
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.045971s4.300341s
Success
chdir_getcwd.cSuccessNone0.047298s4.330798s
Success
chmod.cSuccessNone0.055364s4.320596s
Success
clock_gettime_highlevel.cSuccessNone0.117728s4.494119s
Success
clock_gettime_simple.cSuccessNone0.041775s4.290092s
Success
cloexec.cSuccessNone0.050059s3.990481s
Success
close.cSuccessNone0.057386s4.321705s
Success
creat_access.cSuccessNone0.049772s4.300076s
Success
doubleclose.cSuccessNone0.041661s3.893382s
Success
dup.cSuccessNone0.042178s4.278603s
Success
dup2.cSuccessNone0.047407s3.935366s
Success
dup3.cSuccessNone0.046100s4.355064s
Success
dupwrite.cSuccessNone0.050173s3.912205s
Success
etc_conf.cSuccessNone0.045390s4.284648s
Success
fchdir.cSuccessNone0.051477s4.323972s
Success
fchmod.cSuccessNone0.051813s4.324956s
Success
fcntl.cSuccessNone0.048420s4.290106s
Success
fdatasync.cSuccessNone0.046587s4.276073s
Success
filetest.cSuccessNone0.048295s3.913494s
Success
filetest1000.cSuccessNone0.055780s3.949432s
Success
flock.cSuccessNone0.057343s4.392681s
Success
fstat.cSuccessNone0.052011s4.313090s
Success
fstatfs.cSuccessNone0.044515s4.303131s
Success
fsync.cSuccessNone0.047545s4.313602s
Success
ftruncate.cSuccessNone0.053486s4.363770s
Success
getcwd.cSuccessNone0.046286s4.312295s
Success
getrandom.cSuccessNone0.048508s4.332464s
Success
ioctl.cSuccessNone0.051499s4.284933s
Success
link.cSuccessNone0.054186s4.371310s
Success
locale_test.cSuccessNone0.063237s6.112810s
Success
lseek.cSuccessNone0.053399s4.345824s
Success
mkdir_rmdir.cSuccessNone0.049450s4.319833s
Success
mkfifo_test.cSuccessNone0.055008s4.391030s
Success
mknod.cSuccessNone0.047977s4.324330s
Success
nocancel_io.cSuccessNone0.054103s5.515624s
Success
open.cSuccessNone0.043648s4.302069s
Success
openat.cSuccessNone0.044882s4.287549s
Success
path_conversion_safety.cSuccessNone0.054246s4.330027s
Success
pread_pwrite.cSuccessNone0.046145s4.308478s
Success
printf.cSuccessNone0.040769s3.904653s
Success
prlimit64.cSuccessNone0.042185s3.902281s
Success
read.cSuccessNone0.051698s4.276915s
Success
readbytes.cSuccessNone0.046982s3.914024s
Success
readlink.cSuccessNone0.049743s4.315813s
Success
readlinkat.cSuccessNone0.050859s4.286162s
Success
readv_writev_test.cSuccessNone0.050709s4.322103s
Success
rename.cSuccessNone0.051469s4.304597s
Success
sc-writev.cSuccessNone0.049427s4.310822s
Success
stat.cSuccessNone0.049932s4.303196s
Success
statfs.cSuccessNone0.044185s4.301090s
Success
sync_file_range.cSuccessNone0.047667s4.295770s
Success
truncate.cSuccessNone0.050482s4.327755s
Success
unlink.cSuccessNone0.052681s4.338496s
Success
unlinkat.cSuccessNone0.051461s4.301382s
Success
write.cSuccessNone0.043153s3.892458s
Success
writeloop.cSuccessNone0.054476s3.910558s
Success
writepartial.cSuccessNone0.050468s3.919139s
Success
writev.cSuccessNone0.051123s4.317043s
Success
Math Tests
math_link_smoke.cSuccessNone0.053870s3.944113s
Success
math_tests.cSuccessNone0.056345s4.100349s
Success
Memory Tests
brk.cSuccessNone0.047648s4.312332s
Success
fork_large_memory.cSuccessNone0.079741s4.486730s
Success
malloc.cSuccessNone0.045332s3.908987s
Success
malloc_large.cSuccessNone0.046380s4.286988s
Success
memcpy.cSuccessNone0.045291s3.885161s
Success
memory_error_test.cSuccessNone0.050932s4.325674s
Success
mmap.cSuccessNone0.041794s4.283205s
Success
mmap_aligned.cSuccessNone0.043952s4.317312s
Success
mmap_complicated.cSuccessNone0.048550s4.342577s
Success
mmap_file.cSuccessNone0.049646s4.279565s
Success
mmap_shared.cSuccessNone0.048641s4.315558s
Success
mmaptest.cSuccessNone0.044782s4.273067s
Success
mprotect.cSuccessNone0.042631s4.320808s
Success
mprotect_boundary.cSuccessNone0.043038s4.294816s
Success
mprotect_end_region.cSuccessNone0.043194s4.305867s
Success
mprotect_middle_region.cSuccessNone0.045245s4.326044s
Success
mprotect_multiple_times.cSuccessNone0.045580s4.282985s
Success
mprotect_same_value.cSuccessNone0.043823s4.279318s
Success
mprotect_spanning_regions.cSuccessNone0.044483s4.323860s
Success
sbrk.cSuccessNone0.046242s4.286019s
Success
segfault.cSuccessNone0.050774s4.385545s
Success
shm.cSuccessNone0.049538s4.414802s
Success
shmtest.cSuccessNone0.043760s4.285560s
Success
tcache_test.cSuccessNone0.052752s4.477833s
Success
thread_malloc_sequential.cSuccessNone0.050990s4.453546s
Success
vtable.cSuccessNone0.056442s3.974606s
Success
Networking Tests
accept4.cSuccessNone0.054721s4.329257s
Success
dns_resolve_test.cSuccessNone0.050694s5.994546s
Success
dnstest.cSuccessNone0.049313s4.282936s
Success
epoll_edge_triggered.cSuccessNone0.208917s4.523564s
Success
epollcreate1.cSuccessNone0.050870s4.326487s
Success
error_handling_net.cSuccessNone0.058831s4.368417s
Success
getaddrinfo_test.cSuccessNone0.053262s6.029435s
Success
getaddrinfo_unspec.cSuccessNone0.050774s5.976795s
Success
gethostname.cSuccessNone0.043150s3.920071s
Success
getifaddrs.cSuccessNone0.051066s4.402745s
Success
getsockname.cSuccessNone0.051141s4.314045s
Success
getsockopt.cSuccessNone0.053439s4.300365s
Success
ipv6_basic.cSuccessNone0.054387s4.346115s
Success
makepipe.cSuccessNone0.043466s3.897109s
Success
nonblocking_eagain.cSuccessNone0.054173s4.342294s
Success
pipe.cSuccessNone0.052538s4.337821s
Success
pipe2.cSuccessNone0.052495s4.295208s
Success
pipeinput.cSuccessNone0.053322s4.361473s
Success
pipeinput2.cSuccessNone0.053265s4.373742s
Success
pipeonestring.cSuccessNone0.053352s4.378794s
Success
pipepong.cSuccessNone0.051078s4.355268s
Success
pipewrite.cSuccessNone0.046306s4.282289s
Success
poll.cSuccessNone0.050460s4.308164s
Success
recvfrom-sendto.cSuccessNone0.052760s4.299981s
Success
sendmsg_recvmsg_test.cSuccessNone0.051221s4.305425s
Success
serverclient.cSuccessNone0.051487s3.932876s
Success
shutdown.cSuccessNone0.052626s3.931331s
Success
shutdown_fork.cSuccessNone0.050617s4.396588s
Success
simple-select.cSuccessNone0.052903s4.383235s
Success
simple_epoll.cSuccessNone0.050990s4.300044s
Success
socket.cSuccessNone0.048996s3.919622s
Success
socket_cloexec.cSuccessNone0.048648s4.317648s
Success
socket_options_advanced.cSuccessNone0.055239s4.339681s
Success
socketepoll.cSuccessNone0.049105s3.926831s
Success
socketpair.cSuccessNone0.049560s4.343089s
Success
socketselect.cSuccessNone0.049310s4.283502s
Success
udp_send_recv.cSuccessNone0.157739s4.483569s
Success
uds-getsockname.cSuccessNone0.050689s4.316475s
Success
uds-nb-select.cSuccessNone2.058642s6.543559s
Success
uds-serverclient.cSuccessNone0.055467s4.371493s
Success
uds-socketselect.cSuccessNone0.051520s3.922535s
Success
writev_socket.cSuccessNone0.054788s4.690008s
Success
Process Tests
barrier_test.cSuccessNone0.048576s4.488630s
Success
chain_thread.cSuccessNone1.050615s5.452777s
Success
ctor_syscall_test.cSuccessNone0.042905s4.286392s
Success
cxa_atexit_test.cSuccessNone0.050823s3.915879s
Success
execve_shebang.cSuccessNone0.049960s4.316439s
Success
exit.cSuccessNone0.048121s3.912149s
Success
exit_failure.cSuccessNone0.048893s3.976910s
Success
exit_group_thread.cSuccessNone0.053120s4.546807s
Success
flockfile_test.cSuccessNone0.050333s4.497710s
Success
fork2malloc.cSuccessNone0.053326s4.357512s
Success
fork_select.cSuccessNone0.049426s4.348876s
Success
fork_simple.cSuccessNone0.048102s4.328480s
Success
fork_syscall.cSuccessNone0.054961s4.416592s
Success
fork_tls_ctype.cSuccessNone0.052665s4.401057s
Success
forkandopen.cSuccessNone0.051808s4.336968s
Success
forkdup.cSuccessNone0.051968s4.001128s
Success
forkexecuid.cSuccessNone0.049895s4.407983s
Success
forkexecv-arg.cSuccessNone0.049525s4.410474s
Success
forkexecv.cSuccessNone0.048218s4.390869s
Success
forkfiles.cSuccessNone0.050844s4.331015s
Success
forkmalloc.cSuccessNone0.050057s4.342229s
Success
forknodup.cSuccessNone0.052281s4.339568s
Success
function-ptr.cSuccessNone0.045004s4.275907s
Success
getegid_syscall.cSuccessNone0.051343s4.383418s
Success
getgid_syscall.cSuccessNone0.051598s4.387262s
Success
getpid.cSuccessNone0.043576s4.287787s
Success
getpid_syscall.cSuccessNone0.052189s4.380751s
Success
getppid.cSuccessNone0.050744s4.370760s
Success
getppid_syscall.cSuccessNone0.053241s4.362540s
Success
getuid.cSuccessNone0.054828s4.321387s
Success
getuid_syscall.cSuccessNone0.049758s4.356888s
Success
hello-arg.cSuccessNone0.041262s3.925327s
Success
hello.cSuccessNone0.041270s3.907669s
Success
longjmp.cSuccessNone0.043350s3.927094s
Success
mutex.cSuccessNone2.052851s6.599405s
Success
printf_deadlock_smoke.cSuccessNone0.059900s4.617805s
Success
printf_thread_test.cSuccessNone0.048821s4.496998s
Success
sem_forks.cSuccessNone0.052748s4.373640s
Success
setsid.cSuccessNone0.043282s3.922169s
Success
template.cSuccessNone0.051169s4.347918s
Success
test_exec_nofork.cSuccessNone0.048781s4.349360s
Success
test_unlink_open_file.cSuccessNone0.044523s3.903754s
Success
thread-test.cSuccessNone0.045147s4.447201s
Success
thread.cSuccessNone0.045749s4.437148s
Success
thread_cageid_race.cSuccessNone0.046896s4.478098s
Success
tls_test.cSuccessNone0.047773s4.459557s
Success
uname.cSuccessNone0.043152s4.269620s
Success
wait.cSuccessNone2.049549s5.967102s
Success
waitpid_anychild.cSuccessNone0.049340s4.341863s
Success
waitpid_syscall.cSuccessNone1.050324s5.359109s
Success
waitpid_wnohang.cSuccessNone0.050453s3.965888s
Success
Signal Tests
alarm.cSuccessNone7.049278s10.968519s
Success
eintr_fork_signal.cSuccessNone1.052060s5.374918s
Success
kill.cSuccessNone1.060428s5.363005s
Success
setitimer.cSuccessNone7.050350s10.941169s
Success
sigalrm.cSuccessNone2.051157s5.954219s
Success
sigchld.cSuccessNone1.052111s4.977846s
Success
signal-fork.cSuccessNone4.051117s7.989818s
Success
signal-simple.cSuccessNone0.052037s3.936352s
Success
signal_SIGCHLD.cSuccessNone0.049364s4.371248s
Success
signal_fork.cSuccessNone0.046235s4.375868s
Success
signal_int_ignored.cSuccessNone2.050202s6.394344s
Success
signal_kill_cleanup.cSuccessNone1.048121s5.357692s
Success
signal_procmask.cSuccessNone0.044792s4.299985s
Success
signal_recursive.cSuccessNone0.044695s3.895421s
Success
signal_sa_mask.cSuccessNone0.044851s3.914849s
Success
sigpipe.cSuccessNone1.052458s5.409937s
Success
sigprocmask.cSuccessNone1.049151s4.963774s
Success
Fail 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
Memory Tests
mmap-negative1.cSuccessNone0.106232s4.535013s
Success
mmap-negative2.cSuccessNone0.118091s4.239180s
Success
Signal Tests
signal_resethand.cSuccessNone1.051442s4.983950s
Success

@stupendoussuperpowers
Copy link
Copy Markdown
Contributor Author

Updated the test. All tests pass now. @rennergade @Yaxuan-w

Yaxuan-w
Yaxuan-w previously approved these changes Mar 25, 2026
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
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:

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
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:

race-test_grate.cSuccess
STDOUT:
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/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:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases197
Number of Successes196
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.049405s4.282370s
Success
chdir_getcwd.cSuccessNone0.049298s4.283178s
Success
chmod.cSuccessNone0.055665s4.310264s
Success
clock_gettime_highlevel.cSuccessNone0.120556s4.469419s
Success
clock_gettime_simple.cSuccessNone0.044066s4.269262s
Success
cloexec.cSuccessNone0.053883s3.982712s
Success
close.cSuccessNone0.062434s4.328564s
Success
creat_access.cSuccessNone0.053222s4.300497s
Success
doubleclose.cSuccessNone0.044977s3.885151s
Success
dup.cSuccessNone0.046963s4.287364s
Success
dup2.cSuccessNone0.051701s3.897728s
Success
dup3.cSuccessNone0.049274s4.287255s
Success
dupwrite.cSuccessNone0.053357s3.914077s
Success
etc_conf.cSuccessNone0.047583s4.250414s
Success
fchdir.cSuccessNone0.055319s4.303838s
Success
fchmod.cSuccessNone0.057507s4.323445s
Success
fcntl.cSuccessNone0.052626s4.323715s
Success
fdatasync.cSuccessNone0.051955s4.254730s
Success
filetest.cSuccessNone0.051925s3.898069s
Success
filetest1000.cSuccessNone0.061461s3.933986s
Success
flock.cSuccessNone0.059755s4.386895s
Success
fstat.cSuccessNone0.054464s4.286762s
Success
fstatfs.cSuccessNone0.047242s4.261479s
Success
fsync.cSuccessNone0.051457s4.252479s
Success
ftruncate.cSuccessNone0.058100s4.324294s
Success
getcwd.cSuccessNone0.049078s4.297731s
Success
getrandom.cSuccessNone0.052265s4.314189s
Success
ioctl.cSuccessNone0.056409s4.269372s
Success
link.cSuccessNone0.058086s4.344798s
Success
locale_test.cSuccessNone0.066975s6.083008s
Success
lseek.cSuccessNone0.056996s4.335991s
Success
mkdir_rmdir.cSuccessNone0.053358s4.288269s
Success
mkfifo_test.cSuccessNone0.058163s4.357214s
Success
mknod.cSuccessNone0.052082s4.294445s
Success
nocancel_io.cSuccessNone0.056264s5.488074s
Success
open.cSuccessNone0.047309s4.295291s
Success
openat.cSuccessNone0.049239s4.297612s
Success
path_conversion_safety.cSuccessNone0.057983s4.312392s
Success
pread_pwrite.cSuccessNone0.049945s4.268634s
Success
printf.cSuccessNone0.044600s3.914785s
Success
prlimit64.cSuccessNone0.045749s3.904320s
Success
read.cSuccessNone0.053018s4.262463s
Success
readbytes.cSuccessNone0.049462s3.887357s
Success
readlink.cSuccessNone0.053907s4.302827s
Success
readlinkat.cSuccessNone0.054375s4.281593s
Success
readv_writev_test.cSuccessNone0.055002s4.298379s
Success
rename.cSuccessNone0.056082s4.314453s
Success
sc-writev.cSuccessNone0.051787s4.280277s
Success
stat.cSuccessNone0.053911s4.293409s
Success
statfs.cSuccessNone0.047541s4.263004s
Success
sync_file_range.cSuccessNone0.050221s4.270959s
Success
timespec_time_t_compat.cSuccessNone0.049971s5.543576s
Success
truncate.cSuccessNone0.054257s4.297825s
Success
unlink.cSuccessNone0.056101s4.336689s
Success
unlinkat.cSuccessNone0.055368s4.352455s
Success
write.cSuccessNone0.045951s3.881927s
Success
writeloop.cSuccessNone0.055887s3.881132s
Success
writepartial.cSuccessNone0.053687s3.897597s
Success
writev.cSuccessNone0.053668s4.280157s
Success
Math Tests
math_link_smoke.cSuccessNone0.056803s3.924046s
Success
math_tests.cSuccessNone0.061223s4.073147s
Success
Memory Tests
brk.cSuccessNone0.051676s4.308709s
Success
fork_large_memory.cSuccessNone0.086782s4.897391s
Success
malloc.cSuccessNone0.049636s3.911361s
Success
malloc_large.cSuccessNone0.049586s4.278326s
Success
memcpy.cSuccessNone0.049150s3.899999s
Success
memory_error_test.cSuccessNone0.055085s4.331992s
Success
mmap.cSuccessNone0.046301s4.286862s
Success
mmap_aligned.cSuccessNone0.048093s4.324936s
Success
mmap_complicated.cSuccessNone0.052834s4.350778s
Success
mmap_file.cSuccessNone0.053842s4.284000s
Success
mmap_shared.cSuccessNone0.052729s4.349900s
Success
mmaptest.cSuccessNone0.049418s4.315265s
Success
mprotect.cSuccessNone0.047804s4.326339s
Success
mprotect_boundary.cSuccessNone0.046985s4.286032s
Success
mprotect_end_region.cSuccessNone0.046943s4.306310s
Success
mprotect_middle_region.cSuccessNone0.047031s4.290777s
Success
mprotect_multiple_times.cSuccessNone0.046756s4.272549s
Success
mprotect_same_value.cSuccessNone0.045841s4.285470s
Success
mprotect_spanning_regions.cSuccessNone0.047426s4.303234s
Success
sbrk.cSuccessNone0.048779s4.285419s
Success
segfault.cSuccessNone0.055526s4.340947s
Success
shm.cSuccessNone0.056221s4.395370s
Success
shmtest.cSuccessNone0.047435s4.276421s
Success
tcache_test.cFailureUnknown_Failure0.057124s4.500669s
tcache reuse: yes
failed to run main module

Caused by:
0: failed to invoke command default
1: memory fault at wasm address 0xffdfeda8 in linear memory of size 0x100000000
2: wasm trap: out of bounds memory access

thread_malloc_sequential.cSuccessNone0.055590s4.454739s
Success
vtable.cSuccessNone0.059892s3.939976s
Success
Networking Tests
accept4.cSuccessNone0.058677s4.314471s
Success
dns_resolve_test.cSuccessNone0.051656s5.952107s
Success
dnstest.cSuccessNone0.053521s4.300244s
Success
epoll_edge_triggered.cSuccessNone0.210810s4.484214s
Success
epollcreate1.cSuccessNone0.053856s4.283242s
Success
error_handling_net.cSuccessNone0.060900s4.329110s
Success
getaddrinfo_test.cSuccessNone0.058053s5.991026s
Success
getaddrinfo_unspec.cSuccessNone0.062107s5.967112s
Success
gethostname.cSuccessNone0.046912s3.898613s
Success
getifaddrs.cSuccessNone0.054780s4.384740s
Success
getsockname.cSuccessNone0.054792s4.291788s
Success
getsockopt.cSuccessNone0.056740s4.295501s
Success
ipv6_basic.cSuccessNone0.057886s4.317699s
Success
makepipe.cSuccessNone0.045944s3.869542s
Success
nonblocking_eagain.cSuccessNone0.057979s4.315816s
Success
pipe.cSuccessNone0.055442s4.301804s
Success
pipe2.cSuccessNone0.054920s4.259231s
Success
pipeinput.cSuccessNone0.056672s4.341817s
Success
pipeinput2.cSuccessNone0.056825s4.324193s
Success
pipeonestring.cSuccessNone0.057301s4.333677s
Success
pipepong.cSuccessNone0.055391s4.372257s
Success
pipewrite.cSuccessNone0.049474s4.260530s
Success
poll.cSuccessNone0.055344s4.301283s
Success
recvfrom-sendto.cSuccessNone0.055665s4.305943s
Success
sendmsg_recvmsg_test.cSuccessNone0.054622s4.288470s
Success
serverclient.cSuccessNone0.054380s3.892622s
Success
shutdown.cSuccessNone0.055678s3.938089s
Success
shutdown_fork.cSuccessNone0.054420s4.337521s
Success
simple-select.cSuccessNone0.055987s4.341610s
Success
simple_epoll.cSuccessNone0.053529s4.322314s
Success
socket.cSuccessNone0.052617s3.901306s
Success
socket_cloexec.cSuccessNone0.052671s4.261507s
Success
socket_options_advanced.cSuccessNone0.059039s4.311981s
Success
socketepoll.cSuccessNone0.055131s3.897646s
Success
socketpair.cSuccessNone0.052055s4.325628s
Success
socketselect.cSuccessNone0.052794s4.289227s
Success
udp_send_recv.cSuccessNone0.161235s4.474939s
Success
uds-getsockname.cSuccessNone0.054759s4.314542s
Success
uds-nb-select.cSuccessNone2.061951s6.502269s
Success
uds-serverclient.cSuccessNone0.059225s4.362763s
Success
uds-socketselect.cSuccessNone0.054427s3.911976s
Success
writev_socket.cSuccessNone0.056690s4.282294s
Success
Process Tests
barrier_test.cSuccessNone0.052148s4.443336s
Success
chain_thread.cSuccessNone1.054270s5.440386s
Success
ctor_syscall_test.cSuccessNone0.043664s4.260371s
Success
cxa_atexit_test.cSuccessNone0.049527s3.911814s
Success
execve_shebang.cSuccessNone0.053692s4.287700s
Success
exit.cSuccessNone0.050515s3.888710s
Success
exit_failure.cSuccessNone0.052366s3.941088s
Success
exit_group_thread.cSuccessNone0.054730s4.500228s
Success
flockfile_test.cSuccessNone0.053143s4.450555s
Success
fork2malloc.cSuccessNone0.054429s4.322016s
Success
fork_select.cSuccessNone0.052826s4.336116s
Success
fork_simple.cSuccessNone0.052607s4.303578s
Success
fork_syscall.cSuccessNone0.057559s4.391281s
Success
fork_tls_ctype.cSuccessNone0.056593s4.346873s
Success
forkandopen.cSuccessNone0.054777s4.311683s
Success
forkdup.cSuccessNone0.055489s3.949822s
Success
forkexecuid.cSuccessNone0.051789s4.391104s
Success
forkexecv-arg.cSuccessNone0.052557s4.424237s
Success
forkexecv.cSuccessNone0.050209s4.378308s
Success
forkfiles.cSuccessNone0.054041s4.307908s
Success
forkmalloc.cSuccessNone0.071014s4.306974s
Success
forknodup.cSuccessNone0.055700s4.341177s
Success
function-ptr.cSuccessNone0.050783s4.257138s
Success
getegid_syscall.cSuccessNone0.053896s4.342867s
Success
getgid_syscall.cSuccessNone0.054916s4.354040s
Success
getpid.cSuccessNone0.046262s4.233755s
Success
getpid_syscall.cSuccessNone0.056059s4.355391s
Success
getppid.cSuccessNone0.053770s4.353498s
Success
getppid_syscall.cSuccessNone0.081969s4.359457s
Success
getuid.cSuccessNone0.054488s4.269405s
Success
getuid_syscall.cSuccessNone0.053806s4.319391s
Success
hello-arg.cSuccessNone0.043850s3.872161s
Success
hello.cSuccessNone0.044516s3.904304s
Success
longjmp.cSuccessNone0.045524s3.909320s
Success
mutex.cSuccessNone2.060253s6.562061s
Success
printf_deadlock_smoke.cSuccessNone0.062033s4.586589s
Success
printf_thread_test.cSuccessNone0.051522s4.449815s
Success
sem_forks.cSuccessNone0.056365s4.368455s
Success
setsid.cSuccessNone0.046171s3.887342s
Success
template.cSuccessNone0.053083s4.313832s
Success
test_exec_nofork.cSuccessNone0.051665s4.332071s
Success
test_unlink_open_file.cSuccessNone0.048526s3.876764s
Success
thread-test.cSuccessNone0.048239s4.409312s
Success
thread.cSuccessNone0.047609s4.419797s
Success
thread_cageid_race.cSuccessNone0.048760s4.442057s
Success
tls_test.cSuccessNone0.051420s4.432900s
Success
uname.cSuccessNone0.046612s4.264893s
Success
wait.cSuccessNone2.050496s5.961990s
Success
waitpid_anychild.cSuccessNone0.052893s4.344866s
Success
waitpid_syscall.cSuccessNone1.056180s5.336839s
Success
waitpid_wnohang.cSuccessNone0.053931s3.986749s
Success
Signal Tests
alarm.cSuccessNone7.053132s10.930165s
Success
eintr_fork_signal.cSuccessNone1.055274s5.343613s
Success
kill.cSuccessNone1.053624s5.341525s
Success
setitimer.cSuccessNone7.054135s10.928280s
Success
sigalrm.cSuccessNone2.053435s5.927163s
Success
sigchld.cSuccessNone1.055749s4.979355s
Success
signal-fork.cSuccessNone4.054775s7.973270s
Success
signal-simple.cSuccessNone0.055277s3.937330s
Success
signal_SIGCHLD.cSuccessNone0.051710s4.336861s
Success
signal_fork.cSuccessNone0.050113s4.350565s
Success
signal_int_ignored.cSuccessNone2.053896s6.366471s
Success
signal_kill_cleanup.cSuccessNone1.052260s5.356595s
Success
signal_procmask.cSuccessNone0.048458s4.289354s
Success
signal_recursive.cSuccessNone0.048770s3.902443s
Success
signal_sa_mask.cSuccessNone0.047971s3.888260s
Success
sigpipe.cSuccessNone1.055437s5.360644s
Success
sigprocmask.cSuccessNone1.053558s4.928297s
Success
Fail 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
Memory Tests
mmap-negative1.cSuccessNone0.114548s4.761356s
Success
mmap-negative2.cSuccessNone0.141829s4.128886s
Success
Signal Tests
signal_resethand.cSuccessNone1.053054s4.996806s
Success

@Yaxuan-w Yaxuan-w merged commit 2793f29 into main Mar 26, 2026
2 of 3 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.

3 participants