Skip to content

docs: add pipeline documentation#1193

Merged
Uk-jake merged 4 commits into
mainfrom
docs/pipeline-document
Jun 29, 2026
Merged

docs: add pipeline documentation#1193
Uk-jake merged 4 commits into
mainfrom
docs/pipeline-document

Conversation

@Uk-jake

@Uk-jake Uk-jake commented May 13, 2026

Copy link
Copy Markdown
Contributor

This PR adds pipeline documentation for the three core Lind repositories under the Contributing section.

This documentation is based on our existing pipeline settings. I would appreciate your feedback on any parts that might be incorrect or need further clarification. I'll revise it as soon as I hear back from you.

Related Issue

Closes #1111

@github-actions

Copy link
Copy Markdown
Contributor

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.057510s4.404456s
Success
thread.cSuccessNone0.050562s4.454616s
Success
tls_test.cSuccessNone0.061181s4.482111s
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 Cases220
Number of Successes220
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.049341s0.142473s
Success
chdir_getcwd.cSuccessNone0.051936s0.117221s
Success
chmod.cSuccessNone0.056812s0.123462s
Success
clock_gettime_highlevel.cSuccessNone0.123127s0.172249s
Success
clock_gettime_simple.cSuccessNone0.047665s0.105256s
Success
cloexec.cSuccessNone0.056389s0.131053s
Success
close.cSuccessNone0.065510s0.139587s
Success
creat_access.cSuccessNone0.054070s0.115761s
Success
doubleclose.cSuccessNone0.047484s0.099034s
Success
dup.cSuccessNone0.047998s0.117985s
Success
dup2.cSuccessNone0.052613s0.112606s
Success
dup3.cSuccessNone0.052107s0.117750s
Success
dupwrite.cSuccessNone0.053448s0.111869s
Success
etc_conf.cSuccessNone0.049751s0.118338s
Success
faccessat.cSuccessNone0.050108s0.116639s
Success
fchdir.cSuccessNone0.055622s0.125969s
Success
fchmod.cSuccessNone0.056495s0.125507s
Success
fchmodat.cSuccessNone0.050545s0.113325s
Success
fcntl.cSuccessNone0.055488s0.132056s
Success
fcntl_dupfd.cSuccessNone0.048326s0.110039s
Success
fdatasync.cSuccessNone0.053938s0.112953s
Success
filetest.cSuccessNone0.054610s0.111114s
Success
filetest1000.cSuccessNone0.063500s0.126538s
Success
flock.cSuccessNone0.060977s0.148227s
Success
fstat.cSuccessNone0.057899s0.129102s
Success
fstatfs.cSuccessNone0.048780s0.106576s
Success
fsync.cSuccessNone0.054407s0.112005s
Success
ftruncate.cSuccessNone0.058739s0.209905s
Success
getcwd.cSuccessNone0.053114s0.107671s
Success
getcwd_null.cSuccessNone0.055973s0.120413s
Success
getpgid.cSuccessNone0.049126s0.105838s
Success
getrandom.cSuccessNone0.055021s0.128969s
Success
ioctl.cSuccessNone0.055814s0.119894s
Success
link.cSuccessNone0.056931s0.155234s
Success
locale_test.cSuccessNone0.064980s0.318228s
Success
lseek.cSuccessNone0.057418s0.190043s
Success
lstat.cSuccessNone0.056813s0.133354s
Success
mkdir_rmdir.cSuccessNone0.055804s0.119724s
Success
mkfifo_test.cSuccessNone0.060119s0.159048s
Success
mknod.cSuccessNone0.052423s0.122969s
Success
nocancel_io.cSuccessNone0.057724s0.139987s
Success
open.cSuccessNone0.048724s0.103341s
Success
openat.cSuccessNone0.054790s0.113043s
Success
path_conversion_safety.cSuccessNone0.057689s0.134454s
Success
ppoll.cSuccessNone0.058374s0.126841s
Success
pread_pwrite.cSuccessNone0.051842s0.121224s
Success
preadv_pwritev.cSuccessNone0.055811s0.130557s
Success
printf.cSuccessNone0.047770s0.102528s
Success
prlimit64.cSuccessNone0.048486s0.107771s
Success
read.cSuccessNone0.054467s0.125495s
Success
readbytes.cSuccessNone0.052452s0.111082s
Success
readdir_basic.cSuccessNone0.057308s0.145950s
Success
readlink.cSuccessNone0.054549s0.123874s
Success
readlinkat.cSuccessNone0.056373s0.127640s
Success
readv_writev_test.cSuccessNone0.055318s0.126387s
Success
rename.cSuccessNone0.055595s0.116608s
Success
renameat.cSuccessNone0.057865s0.133652s
Success
sc-writev.cSuccessNone0.052208s0.113440s
Success
stat.cSuccessNone0.055572s0.127547s
Success
statfs.cSuccessNone0.050816s0.109026s
Success
symlink.cSuccessNone0.056433s0.146626s
Success
sync_file_range.cSuccessNone0.054173s0.113810s
Success
timespec_time_t_compat.cSuccessNone0.051023s0.108720s
Success
trailing_slash.cSuccessNone0.054163s0.121804s
Success
truncate.cSuccessNone0.055080s0.132700s
Success
unlink.cSuccessNone0.058928s0.154406s
Success
unlinkat.cSuccessNone0.057413s0.136785s
Success
utimensat.cSuccessNone0.057265s0.137379s
Success
write.cSuccessNone0.048752s0.101188s
Success
writeloop.cSuccessNone0.055660s0.115767s
Success
writepartial.cSuccessNone0.055599s0.108493s
Success
writev.cSuccessNone0.055321s0.122862s
Success
Math Tests
math_link_smoke.cSuccessNone0.058976s0.108441s
Success
math_tests.cSuccessNone0.073401s0.136436s
Success
printf_float.cSuccessNone0.059532s0.138903s
Success
Memory Tests
brk.cSuccessNone0.053416s0.113841s
Success
fork_large_memory.cSuccessNone0.084461s0.368646s
Success
malloc.cSuccessNone0.051233s0.102199s
Success
malloc_large.cSuccessNone0.052332s0.103416s
Success
memcpy.cSuccessNone0.050481s0.106205s
Success
memory_error_test.cSuccessNone0.055250s0.132902s
Success
mmap.cSuccessNone0.048007s0.105005s
Success
mmap_aligned.cSuccessNone0.048623s0.117126s
Success
mmap_complicated.cSuccessNone0.055168s0.127977s
Success
mmap_file.cSuccessNone0.055969s0.117803s
Success
mmap_shared.cSuccessNone0.054630s0.124304s
Success
mmaptest.cSuccessNone0.051169s0.111099s
Success
mprotect.cSuccessNone0.049601s0.106814s
Success
mprotect_boundary.cSuccessNone0.048304s0.115158s
Success
mprotect_end_region.cSuccessNone0.048992s0.109952s
Success
mprotect_middle_region.cSuccessNone0.048559s0.112872s
Success
mprotect_multiple_times.cSuccessNone0.049638s0.113367s
Success
mprotect_same_value.cSuccessNone0.049362s0.110690s
Success
mprotect_spanning_regions.cSuccessNone0.050042s0.125671s
Success
munmap_adjacent_shm.cSuccessNone0.051379s0.126247s
Success
sbrk.cSuccessNone0.050257s0.106071s
Success
segfault.cSuccessNone0.056534s0.138832s
Success
shm.cSuccessNone0.054251s0.132067s
Success
shmtest.cSuccessNone0.048201s0.110355s
Success
thread_malloc_sequential.cSuccessNone0.056319s0.155515s
Success
vtable.cSuccessNone0.059482s0.123219s
Success
Networking Tests
accept4.cSuccessNone0.057994s0.129536s
Success
dns_resolve_test.cSuccessNone0.053312s0.116833s
Success
dnstest.cSuccessNone0.053215s0.114227s
Success
epoll_badfd.cSuccessNone0.049451s0.104496s
Success
epoll_edge_triggered.cSuccessNone0.211867s0.379095s
Success
epollcreate1.cSuccessNone0.055418s0.126730s
Success
error_handling_net.cSuccessNone0.061414s0.189274s
Success
getaddrinfo_test.cSuccessNone0.057935s0.150896s
Success
getaddrinfo_unspec.cSuccessNone0.057238s0.130418s
Success
gethostname.cSuccessNone0.048443s0.101497s
Success
getifaddrs.cSuccessNone0.055870s0.116858s
Success
getsockname.cSuccessNone0.059297s0.120310s
Success
getsockopt.cSuccessNone0.056952s0.151736s
Success
ipv6_basic.cSuccessNone0.057792s0.153262s
Success
makepipe.cSuccessNone0.048091s0.100551s
Success
nonblocking_eagain.cSuccessNone0.058745s0.161631s
Success
pipe.cSuccessNone0.055955s0.125614s
Success
pipe2.cSuccessNone0.055095s0.116651s
Success
pipeinput.cSuccessNone0.057096s0.139254s
Success
pipeinput2.cSuccessNone0.057411s0.144810s
Success
pipeonestring.cSuccessNone0.057478s0.140008s
Success
pipepong.cSuccessNone0.056782s0.143863s
Success
pipewrite.cSuccessNone0.050650s0.112843s
Success
poll.cSuccessNone0.054713s0.113055s
Success
recvfrom-sendto.cSuccessNone0.055188s0.122893s
Success
sendmsg_recvmsg_test.cSuccessNone0.056348s0.126692s
Success
serverclient.cSuccessNone0.054834s0.129489s
Success
shutdown.cSuccessNone0.056154s0.126226s
Success
shutdown_fork.cSuccessNone0.054677s0.126499s
Success
simple-select.cSuccessNone0.056150s0.140035s
Success
simple_epoll.cSuccessNone0.055206s0.120143s
Success
socket.cSuccessNone0.052942s0.111426s
Success
socket_cloexec.cSuccessNone0.053529s0.110747s
Success
socket_options_advanced.cSuccessNone0.060302s0.170802s
Success
socketepoll.cSuccessNone0.053438s0.111576s
Success
socketpair.cSuccessNone0.053315s0.126513s
Success
socketselect.cSuccessNone0.054001s0.120238s
Success
udp_send_recv.cSuccessNone0.161805s0.263677s
Success
uds-getsockname.cSuccessNone0.056460s0.114692s
Success
uds-nb-select.cSuccessNone2.063365s2.175369s
Success
uds-serverclient.cSuccessNone0.059316s0.146552s
Success
uds-socketselect.cSuccessNone0.054523s0.123141s
Success
uds_listen_poll.cSuccessNone1.060576s1.156956s
Success
writev_socket.cSuccessNone0.057468s0.150835s
Success
Process Tests
barrier_test.cSuccessNone0.053521s0.121528s
Success
chain_thread.cSuccessNone1.055601s1.129389s
Success
ctor_syscall_test.cSuccessNone0.047388s0.104868s
Success
cxa_atexit_test.cSuccessNone0.051387s0.109567s
Success
exec_non_utf8.cSuccessNone0.053246s0.113638s
Success
execve_shebang.cSuccessNone0.055026s0.113375s
Success
exit.cSuccessNone0.052786s0.107005s
Success
exit_failure.cSuccessNone0.053688s0.116866s
Success
exit_group_thread.cSuccessNone0.058626s0.131346s
Success
exit_status_first_wins.cSuccessNone0.057289s0.134556s
Success
flockfile_test.cSuccessNone0.054397s0.130444s
Success
fork2malloc.cSuccessNone0.056264s0.125273s
Success
fork_select.cSuccessNone0.053254s0.129482s
Success
fork_simple.cSuccessNone0.052548s0.118084s
Success
fork_syscall.cSuccessNone0.060067s0.343147s
Success
fork_tls_ctype.cSuccessNone0.057026s0.142570s
Success
forkandopen.cSuccessNone0.057171s0.135655s
Success
forkdup.cSuccessNone0.058548s0.128712s
Success
forkexecuid.cSuccessNone0.053594s0.133743s
Success
forkexecv-arg.cSuccessNone0.053537s0.124540s
Success
forkexecv.cSuccessNone0.051104s0.121346s
Success
forkfiles.cSuccessNone0.055141s0.130226s
Success
forkmalloc.cSuccessNone0.056250s0.122115s
Success
forknodup.cSuccessNone0.055849s0.132416s
Success
function-ptr.cSuccessNone0.050427s0.106031s
Success
getegid_syscall.cSuccessNone0.055096s0.273228s
Success
getgid_syscall.cSuccessNone0.056178s0.274773s
Success
getpid.cSuccessNone0.048651s0.101461s
Success
getpid_syscall.cSuccessNone0.057148s0.288533s
Success
getppid.cSuccessNone0.055723s0.121588s
Success
getppid_syscall.cSuccessNone0.057837s0.241417s
Success
getuid.cSuccessNone0.055191s0.111009s
Success
getuid_syscall.cSuccessNone0.053945s0.176696s
Success
hello-arg.cSuccessNone0.046919s0.104984s
Success
hello.cSuccessNone0.046176s0.098840s
Success
longjmp.cSuccessNone0.046752s0.104987s
Success
mutex.cSuccessNone2.056836s2.129783s
Success
printf_deadlock_smoke.cSuccessNone0.061749s0.149647s
Success
printf_thread_test.cSuccessNone0.052993s0.127667s
Success
sem_forks.cSuccessNone0.057228s0.140790s
Success
setsid.cSuccessNone0.048170s0.101707s
Success
template.cSuccessNone0.054423s0.146276s
Success
test_exec_nofork.cSuccessNone0.053031s0.120132s
Success
test_unlink_open_file.cSuccessNone0.050543s0.105166s
Success
thread-guard.cSuccessNone0.052812s0.122608s
Success
thread-test.cSuccessNone0.051009s0.110303s
Success
thread.cSuccessNone0.050354s0.110585s
Success
thread_cageid_race.cSuccessNone0.051776s0.164717s
Success
tls_test.cSuccessNone0.053517s0.126619s
Success
uname.cSuccessNone0.048930s0.102519s
Success
wait.cSuccessNone0.052433s0.127020s
Success
waitpid_anychild.cSuccessNone0.055303s0.123911s
Success
waitpid_syscall.cSuccessNone1.056167s1.171645s
Success
waitpid_wnohang.cSuccessNone0.055703s0.126124s
Success
Signal Tests
alarm.cSuccessNone7.053987s7.146640s
Success
eintr_fork_signal.cSuccessNone1.057005s1.139431s
Success
kill.cSuccessNone1.055994s1.127150s
Success
setitimer.cSuccessNone7.056005s7.148678s
Success
sigalrm.cSuccessNone2.055698s2.134692s
Success
sigaltstack.cSuccessNone0.058071s0.126386s
Success
sigchld.cSuccessNone1.056057s1.125471s
Success
signal-fork.cSuccessNone4.056846s4.131207s
Success
signal-simple.cSuccessNone0.055887s0.116124s
Success
signal_SIGCHLD.cSuccessNone0.053671s0.127528s
Success
signal_fork.cSuccessNone0.052932s0.130344s
Success
signal_int_ignored.cSuccessNone2.058069s2.124547s
Success
signal_kill_cleanup.cSuccessNone1.056946s1.121480s
Success
signal_procmask.cSuccessNone0.052570s0.117905s
Success
signal_read_interrupt.cSuccessNone0.564531s0.633489s
Success
signal_recursive.cSuccessNone0.050928s0.119807s
Success
signal_sa_mask.cSuccessNone0.050160s0.112459s
Success
signal_select_interrupt.cSuccessNone0.560594s0.637226s
Success
signal_write_interrupt.cSuccessNone1.057951s1.135684s
Success
sigpipe.cSuccessNone1.058306s1.133480s
Success
sigprocmask.cSuccessNone1.056312s1.121003s
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.046852s0.105196s
Success
Memory Tests
mmap-negative1.cSuccessNone0.132297s0.110360s
Success
mmap-negative2.cSuccessNone0.120313s0.130520s
Success
Signal Tests
signal_resethand.cSuccessNone1.055254s1.122519s
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.553950s9.771106s
LIBCPP_SORT_OK 1 2 3

@rennergade rennergade requested a review from Yaxuan-w May 19, 2026 18:29

@vidyalakshmir vidyalakshmir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great @Uk-jake. This clearly describes the CI/CD pipeline we have for lind.

  • One additional point you could add is what differences exist (in terms of code, functionalities) between the release and the debug build.
  • How could we configure lind-wasm GHA to skip tests?

@vidyalakshmir

Copy link
Copy Markdown
Contributor

@Uk-jake

  • Also, just for my understanding, does lind-wasm GHA pickup tests from the lind-wasm/tests folder? When we add new tests through PR's, once the PR is merged, would GHA automatically pickup those tests?
  • Can we configure GCP to run tests?

@Uk-jake

Uk-jake commented May 31, 2026

Copy link
Copy Markdown
Contributor Author

@vidyalakshmir

  1. difference between the dev image and the release image:
  • The dev image includes the full source code, a debug build, and debugging tools so developers can debug directly inside the container. It also serves as the base image for apps and grates.
  • The release image contains only the toolchain without source code, and is intended for running tests.
  1. I'm not sure about how to skip tests in GHA yet — I'll look into it and follow up.

  2. Yes, the e2e pipeline picks up tests from the "lind-wasm/tests" folder. The test stage in Dockerfile.e2e copies the tests folder directly into the container and runs them via make test. However, I'll need to look further into exactly which tests are covered.

@qianxichen233, @tashabits
Could you help me understand the difference between what the e2e pipeline tests and what the harness-based tests cover? It looks like you're working on a test CI using a harness.

@Yaxuan-w Yaxuan-w left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General lgtm. I'd suggest to remove apps and example-grates documentations until we've set them up

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
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/copy-handler-table_grate.cSuccess
STDOUT:
[Grate|copy-handler-table] Registering geteuid handler for cage 2 in grate 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Cage|copy-handler-table] PASS: child inherited handler, then overwrite changed geteuid to 0
[Cage|copy-handler-table] PASS: parent=123 child_exit=0
[Grate|copy-handler-table] 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.054451s4.102624s
Success
thread.cSuccessNone0.046459s4.165056s
Success
tls_test.cSuccessNone0.050588s4.173931s
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 Cases233
Number of Successes233
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
basic.cSuccessNone0.050419s0.120917s
Success
dlopen_fork.cSuccessNone0.052568s0.144760s
Success
dlopen_thread.cSuccessNone0.051421s0.141943s
Success
double_fork_dlopen.cSuccessNone0.054763s0.194027s
Success
fork_dlopen.cSuccessNone0.051117s0.146156s
Success
longjmp_dlopen.cSuccessNone0.049903s0.137952s
Success
rdynamic_main.cSuccessNone0.050465s0.139213s
Success
File Tests
chartests.cSuccessNone0.047944s0.154229s
Success
chdir_getcwd.cSuccessNone0.047699s0.120413s
Success
chmod.cSuccessNone0.054117s0.135406s
Success
clock_gettime_highlevel.cSuccessNone0.118210s0.167134s
Success
clock_gettime_simple.cSuccessNone0.042314s0.109196s
Success
cloexec.cSuccessNone0.052951s0.148325s
Success
close.cSuccessNone0.062352s0.142242s
Success
creat_access.cSuccessNone0.054285s0.123640s
Success
doubleclose.cSuccessNone0.044104s0.101321s
Success
dup.cSuccessNone0.045143s0.119043s
Success
dup2.cSuccessNone0.050319s0.118818s
Success
dup3.cSuccessNone0.049436s0.121309s
Success
dupwrite.cSuccessNone0.052213s0.123498s
Success
etc_conf.cSuccessNone0.051349s0.130922s
Success
faccessat.cSuccessNone0.046499s0.122626s
Success
fchdir.cSuccessNone0.055139s0.133629s
Success
fchmod.cSuccessNone0.053865s0.133487s
Success
fchmodat.cSuccessNone0.046349s0.116802s
Success
fcntl.cSuccessNone0.050320s0.134232s
Success
fcntl_dupfd.cSuccessNone0.045099s0.111313s
Success
fdatasync.cSuccessNone0.057409s0.130130s
Success
filetest.cSuccessNone0.051189s0.116478s
Success
filetest1000.cSuccessNone0.060650s0.130675s
Success
flock.cSuccessNone0.059090s0.174339s
Success
fstat.cSuccessNone0.054934s0.137448s
Success
fstatfs.cSuccessNone0.045739s0.115502s
Success
fsync.cSuccessNone0.049565s0.113945s
Success
ftruncate.cSuccessNone0.054321s0.216647s
Success
getcwd.cSuccessNone0.049667s0.111356s
Success
getcwd_null.cSuccessNone0.054421s0.128537s
Success
getpgid.cSuccessNone0.044151s0.105229s
Success
getrandom.cSuccessNone0.052299s0.133930s
Success
ioctl.cSuccessNone0.058483s0.125464s
Success
link.cSuccessNone0.056177s0.160224s
Success
locale_test.cSuccessNone0.064725s0.318716s
Success
lseek.cSuccessNone0.056610s0.197956s
Success
lstat.cSuccessNone0.056855s0.143765s
Success
mkdir_rmdir.cSuccessNone0.051014s0.122221s
Success
mkfifo_test.cSuccessNone0.056734s0.174008s
Success
mknod.cSuccessNone0.052283s0.132261s
Success
nocancel_io.cSuccessNone0.055371s0.144670s
Success
open.cSuccessNone0.047582s0.114857s
Success
openat.cSuccessNone0.045554s0.118203s
Success
path_conversion_safety.cSuccessNone0.054731s0.137975s
Success
ppoll.cSuccessNone0.055863s0.132558s
Success
pread_pwrite.cSuccessNone0.050715s0.120846s
Success
preadv_pwritev.cSuccessNone0.054188s0.137922s
Success
printf.cSuccessNone0.044651s0.107054s
Success
prlimit64.cSuccessNone0.045480s0.112584s
Success
read.cSuccessNone0.053439s0.131324s
Success
readbytes.cSuccessNone0.047255s0.113898s
Success
readdir_basic.cSuccessNone0.055288s0.151910s
Success
readlink.cSuccessNone0.052004s0.126455s
Success
readlinkat.cSuccessNone0.054818s0.146013s
Success
readv_writev_test.cSuccessNone0.053514s0.132178s
Success
rename.cSuccessNone0.056731s0.125259s
Success
renameat.cSuccessNone0.054704s0.138701s
Success
sc-writev.cSuccessNone0.049032s0.119138s
Success
stat.cSuccessNone0.051548s0.132273s
Success
statfs.cSuccessNone0.047125s0.110621s
Success
symlink.cSuccessNone0.056415s0.154402s
Success
sync_file_range.cSuccessNone0.048522s0.115876s
Success
timespec_time_t_compat.cSuccessNone0.051185s0.113480s
Success
trailing_slash.cSuccessNone0.051137s0.127486s
Success
truncate.cSuccessNone0.051876s0.140757s
Success
unlink.cSuccessNone0.056303s0.157434s
Success
unlinkat.cSuccessNone0.053451s0.138511s
Success
utimensat.cSuccessNone0.059926s0.154412s
Success
write.cSuccessNone0.046225s0.104809s
Success
writeloop.cSuccessNone0.053837s0.122528s
Success
writepartial.cSuccessNone0.053858s0.115093s
Success
writev.cSuccessNone0.052448s0.126187s
Success
Math Tests
math_link_smoke.cSuccessNone0.054595s0.110801s
Success
math_tests.cSuccessNone0.058366s0.138715s
Success
printf_float.cSuccessNone0.055515s0.135901s
Success
Memory Tests
brk.cSuccessNone0.066462s0.157227s
Success
fork_large_memory.cSuccessNone0.090604s0.489366s
Success
malloc.cSuccessNone0.048186s0.113039s
Success
malloc_large.cSuccessNone0.071677s0.177381s
Success
memcpy.cSuccessNone0.072489s0.171244s
Success
memory_error_test.cSuccessNone0.055381s0.174997s
Success
mmap.cSuccessNone0.062224s0.158362s
Success
mmap_address_truncation.cSuccessNone0.059851s0.156354s
Success
mmap_aligned.cSuccessNone0.052689s0.130070s
Success
mmap_complicated.cSuccessNone0.066823s0.165107s
Success
mmap_file.cSuccessNone0.068181s0.171974s
Success
mmap_shared.cSuccessNone0.051258s0.149380s
Success
mmaptest.cSuccessNone0.059489s0.168354s
Success
mprotect.cSuccessNone0.046857s0.117439s
Success
mprotect_boundary.cSuccessNone0.048298s0.125643s
Success
mprotect_end_region.cSuccessNone0.048450s0.122068s
Success
mprotect_middle_region.cSuccessNone0.064745s0.168492s
Success
mprotect_multiple_times.cSuccessNone0.074555s0.132302s
Success
mprotect_same_value.cSuccessNone0.062443s0.267200s
Success
mprotect_spanning_regions.cSuccessNone0.052721s0.146622s
Success
munmap_adjacent_shm.cSuccessNone0.055071s0.144886s
Success
sbrk.cSuccessNone0.051640s0.120305s
Success
segfault.cSuccessNone0.054427s0.156814s
Success
shm.cSuccessNone0.091126s0.215592s
Success
shmtest.cSuccessNone0.047072s0.115660s
Success
thread_malloc_sequential.cSuccessNone0.079966s0.317351s
Success
vtable.cSuccessNone0.082671s0.193579s
Success
Networking Tests
accept4.cSuccessNone0.056009s0.136259s
Success
dns_resolve_test.cSuccessNone0.050150s0.121390s
Success
dnstest.cSuccessNone0.049950s0.118359s
Success
epoll_badfd.cSuccessNone0.047490s0.114353s
Success
epoll_edge_triggered.cSuccessNone0.209348s0.383071s
Success
epollcreate1.cSuccessNone0.054721s0.132832s
Success
error_handling_net.cSuccessNone0.059854s0.195345s
Success
getaddrinfo_test.cSuccessNone0.056627s0.157364s
Success
getaddrinfo_unspec.cSuccessNone0.056570s0.134612s
Success
gethostname.cSuccessNone0.044145s0.105345s
Success
getifaddrs.cSuccessNone0.054107s0.127835s
Success
getsockname.cSuccessNone0.052984s0.125278s
Success
getsockopt.cSuccessNone0.055922s0.161974s
Success
ipv6_basic.cSuccessNone0.055807s0.158853s
Success
makepipe.cSuccessNone0.043508s0.103072s
Success
nonblocking_eagain.cSuccessNone0.057354s0.168447s
Success
pipe.cSuccessNone0.054318s0.130964s
Success
pipe2.cSuccessNone0.052925s0.120414s
Success
pipeinput.cSuccessNone0.056679s0.155342s
Success
pipeinput2.cSuccessNone0.056297s0.161184s
Success
pipeonestring.cSuccessNone0.055585s0.155818s
Success
pipepong.cSuccessNone0.052433s0.160050s
Success
pipewrite.cSuccessNone0.049936s0.120602s
Success
poll.cSuccessNone0.052125s0.117328s
Success
recvfrom-sendto.cSuccessNone0.053657s0.133757s
Success
sendmsg_recvmsg_test.cSuccessNone0.053010s0.134140s
Success
serverclient.cSuccessNone0.053068s0.133757s
Success
shutdown.cSuccessNone0.055571s0.133361s
Success
shutdown_fork.cSuccessNone0.053752s0.146683s
Success
simple-select.cSuccessNone0.056521s0.161188s
Success
simple_epoll.cSuccessNone0.053685s0.128136s
Success
socket.cSuccessNone0.053384s0.124222s
Success
socket_cloexec.cSuccessNone0.051148s0.114880s
Success
socket_options_advanced.cSuccessNone0.057309s0.178715s
Success
socketepoll.cSuccessNone0.052552s0.120561s
Success
socketpair.cSuccessNone0.052078s0.143892s
Success
socketselect.cSuccessNone0.051204s0.125708s
Success
udp_send_recv.cSuccessNone0.159869s0.279950s
Success
uds-getsockname.cSuccessNone0.053120s0.123287s
Success
uds-nb-select.cSuccessNone2.061284s2.192879s
Success
uds-serverclient.cSuccessNone0.057766s0.160941s
Success
uds-socketselect.cSuccessNone0.053520s0.150835s
Success
uds_listen_poll.cSuccessNone1.059892s1.170214s
Success
writev_socket.cSuccessNone0.055848s0.160572s
Success
Process Tests
barrier_test.cSuccessNone0.050247s0.137080s
Success
chain_thread.cSuccessNone1.052559s1.148347s
Success
ctor_syscall_test.cSuccessNone0.044824s0.111113s
Success
cxa_atexit_test.cSuccessNone0.049503s0.114156s
Success
exec_non_utf8.cSuccessNone0.051586s0.121448s
Success
execve_shebang.cSuccessNone0.053084s0.120555s
Success
exit.cSuccessNone0.049763s0.111872s
Success
exit_failure.cSuccessNone0.066115s0.159370s
Success
exit_group_thread.cSuccessNone0.055081s0.157430s
Success
exit_status_first_wins.cSuccessNone0.057568s0.157113s
Success
flockfile_test.cSuccessNone0.054486s0.147522s
Success
fork2malloc.cSuccessNone0.054092s0.140573s
Success
fork_select.cSuccessNone0.050799s0.148047s
Success
fork_simple.cSuccessNone0.051998s0.132526s
Success
fork_syscall.cSuccessNone0.058118s0.629642s
Success
fork_tls_ctype.cSuccessNone0.054357s0.163496s
Success
forkandopen.cSuccessNone0.054908s0.151731s
Success
forkdup.cSuccessNone0.053794s0.142697s
Success
forkexecuid.cSuccessNone0.051287s0.155406s
Success
forkexecv-arg.cSuccessNone0.050506s0.144817s
Success
forkexecv.cSuccessNone0.055362s0.161295s
Success
forkfiles.cSuccessNone0.056142s0.163454s
Success
forkmalloc.cSuccessNone0.053142s0.138460s
Success
forknodup.cSuccessNone0.054680s0.150156s
Success
function-ptr.cSuccessNone0.052192s0.121972s
Success
getegid_syscall.cSuccessNone0.055519s0.489572s
Success
getgid_syscall.cSuccessNone0.052253s0.496621s
Success
getpid.cSuccessNone0.047138s0.109563s
Success
getpid_syscall.cSuccessNone0.061529s0.486730s
Success
getppid.cSuccessNone0.057409s0.157599s
Success
getppid_syscall.cSuccessNone0.056439s0.395583s
Success
getuid.cSuccessNone0.053549s0.114561s
Success
getuid_syscall.cSuccessNone0.053550s0.249428s
Success
hello-arg.cSuccessNone0.045964s0.114192s
Success
hello.cSuccessNone0.042596s0.104090s
Success
longjmp.cSuccessNone0.044777s0.115603s
Success
mutex.cSuccessNone2.057822s2.135843s
Success
printf_deadlock_smoke.cSuccessNone0.061432s0.173501s
Success
printf_thread_test.cSuccessNone0.051168s0.143351s
Success
sem_forks.cSuccessNone0.053944s0.179542s
Success
setjmp_edge.cSuccessNone0.060617s0.277136s
Success
setsid.cSuccessNone0.046157s0.106360s
Success
template.cSuccessNone0.051236s0.183002s
Success
test_crossmodule_longjmp.cSuccessNone0.053333s0.151791s
Success
test_exec_nofork.cSuccessNone0.050862s0.133240s
Success
test_unlink_open_file.cSuccessNone0.062794s0.139425s
Success
thread-guard.cSuccessNone0.050593s0.131745s
Success
thread-test.cSuccessNone0.047756s0.124896s
Success
thread.cSuccessNone0.049164s0.124247s
Success
thread_cageid_race.cSuccessNone0.047323s0.295717s
Success
tls_test.cSuccessNone0.053179s0.169458s
Success
uname.cSuccessNone0.047866s0.109285s
Success
wait.cSuccessNone0.050391s0.152807s
Success
waitpid_anychild.cSuccessNone0.052159s0.136105s
Success
waitpid_syscall.cSuccessNone1.054377s1.233610s
Success
waitpid_wnohang.cSuccessNone0.053396s0.141138s
Success
Signal Tests
alarm.cSuccessNone7.051351s7.153737s
Success
eintr_fork_signal.cSuccessNone1.067204s1.153918s
Success
kill.cSuccessNone1.051580s1.140963s
Success
pause_test.cSuccessNone1.053639s1.152754s
Success
setitimer.cSuccessNone7.051889s7.163458s
Success
sigalrm.cSuccessNone2.052158s2.137401s
Success
sigaltstack.cSuccessNone0.055670s0.135823s
Success
sigchld.cSuccessNone1.053363s1.138688s
Success
signal-fork.cSuccessNone4.053996s4.134949s
Success
signal-simple.cSuccessNone0.052623s0.126504s
Success
signal_SIGCHLD.cSuccessNone0.050741s0.147210s
Success
signal_fork.cSuccessNone0.049084s0.141527s
Success
signal_int_ignored.cSuccessNone2.052484s2.138213s
Success
signal_kill_cleanup.cSuccessNone1.051009s1.130392s
Success
signal_procmask.cSuccessNone0.048630s0.122404s
Success
signal_read_interrupt.cSuccessNone0.559519s0.643321s
Success
signal_recursive.cSuccessNone0.050425s0.136180s
Success
signal_sa_mask.cSuccessNone0.047837s0.114410s
Success
signal_select_interrupt.cSuccessNone0.555979s0.645941s
Success
signal_write_interrupt.cSuccessNone1.054095s1.142248s
Success
sigpipe.cSuccessNone1.053788s1.151474s
Success
sigprocmask.cSuccessNone1.051719s1.126582s
Success
sigsuspend_test.cSuccessNone1.050395s1.144769s
Success
test_sigsetjmp.cSuccessNone0.053517s0.158172s
Success
Fail Tests

Summary

MetricCount
Total Test Cases6
Number of Successes6
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.043731s0.107286s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.114367s0.119652s
Success
invalid_access_fork.cSuccessNone0.184678s0.224754s
Success
mmap-negative1.cSuccessNone0.136136s0.152170s
Success
mmap-negative2.cSuccessNone0.155449s0.175924s
Success
Signal Tests
signal_resethand.cSuccessNone1.052023s1.134116s
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.400790s8.762610s
LIBCPP_SORT_OK 1 2 3

Yaxuan-w
Yaxuan-w previously approved these changes Jun 22, 2026
@Yaxuan-w Yaxuan-w requested a review from vidyalakshmir June 22, 2026 00:08
@vidyalakshmir

Copy link
Copy Markdown
Contributor

@Uk-jake @Yaxuan-w Overall looks good to me. One additional thing I would like to clarify is if we want to detail the CI/CD testing framework in this document. This includes - Where are tests located, how are they picked up, how do we add more tests, how testing works etc.

@Yaxuan-w

Copy link
Copy Markdown
Member

This includes - Where are tests located, how are they picked up, how do we add more tests, how testing works etc

We have separate test documentations. For future testing, we can update there / re-org along with code implementations / updates

@vidyalakshmir

Copy link
Copy Markdown
Contributor

@Yaxuan-w Okay great. My only other suggestion is if we need to add the link to the test documentation when we mention about Github Actions and end to end testing in the documentation. Not mandatory, just a thought.

@Yaxuan-w

Copy link
Copy Markdown
Member

@Uk-jake Can you update the PR according to Vidya's comment?

@Uk-jake

Uk-jake commented Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Sure. I will add the test document link.

@Uk-jake

Uk-jake commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

I updated the overview and lind-wasm pipeline docs based on the current code. I also added the test link under the E2E section

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
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/copy-handler-table_grate.cSuccess
STDOUT:
[Grate|copy-handler-table] Registering geteuid handler for cage 2 in grate 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Cage|copy-handler-table] PASS: child inherited handler, then overwrite changed geteuid to 0
[Cage|copy-handler-table] PASS: parent=123 child_exit=0
[Grate|copy-handler-table] 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.057547s4.080173s
Success
thread.cSuccessNone0.042332s4.143921s
Success
tls_test.cSuccessNone0.047171s4.166055s
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 Cases234
Number of Successes234
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
basic.cSuccessNone0.041296s0.106908s
Success
dlopen_fork.cSuccessNone0.043640s0.132308s
Success
dlopen_thread.cSuccessNone0.045379s0.129594s
Success
double_fork_dlopen.cSuccessNone0.048391s0.171637s
Success
fork_dlopen.cSuccessNone0.044198s0.131493s
Success
longjmp_dlopen.cSuccessNone0.042209s0.122125s
Success
rdynamic_main.cSuccessNone0.044591s0.125551s
Success
File Tests
chartests.cSuccessNone0.041335s0.135689s
Success
chdir_getcwd.cSuccessNone0.042685s0.110129s
Success
chmod.cSuccessNone0.047150s0.119807s
Success
clock_gettime_highlevel.cSuccessNone0.282803s0.181696s
Success
clock_gettime_simple.cSuccessNone0.037843s0.097979s
Success
cloexec.cSuccessNone0.045817s0.131900s
Success
close.cSuccessNone0.046676s0.121788s
Success
copy_file_range.cSuccessNone0.045723s0.131493s
Success
creat_access.cSuccessNone0.045366s0.106945s
Success
doubleclose.cSuccessNone0.038670s0.092737s
Success
dup.cSuccessNone0.040304s0.108257s
Success
dup2.cSuccessNone0.043918s0.107330s
Success
dup3.cSuccessNone0.041748s0.105067s
Success
dupwrite.cSuccessNone0.043620s0.104725s
Success
etc_conf.cSuccessNone0.040320s0.109329s
Success
faccessat.cSuccessNone0.042092s0.111296s
Success
fchdir.cSuccessNone0.047348s0.117691s
Success
fchmod.cSuccessNone0.046018s0.117372s
Success
fchmodat.cSuccessNone0.040024s0.104129s
Success
fcntl.cSuccessNone0.044196s0.121607s
Success
fcntl_dupfd.cSuccessNone0.039123s0.101028s
Success
fdatasync.cSuccessNone0.044074s0.103929s
Success
filetest.cSuccessNone0.043899s0.104452s
Success
filetest1000.cSuccessNone0.047741s0.109905s
Success
flock.cSuccessNone0.050065s0.150896s
Success
fstat.cSuccessNone0.045691s0.120494s
Success
fstatfs.cSuccessNone0.040029s0.100100s
Success
fsync.cSuccessNone0.043436s0.103083s
Success
ftruncate.cSuccessNone0.047478s0.190442s
Success
getcwd.cSuccessNone0.041829s0.099653s
Success
getcwd_null.cSuccessNone0.044666s0.111054s
Success
getpgid.cSuccessNone0.038821s0.093545s
Success
getrandom.cSuccessNone0.045383s0.118336s
Success
ioctl.cSuccessNone0.047640s0.114764s
Success
link.cSuccessNone0.047939s0.144000s
Success
locale_test.cSuccessNone0.055823s0.288659s
Success
lseek.cSuccessNone0.048004s0.176197s
Success
lstat.cSuccessNone0.051120s0.127163s
Success
mkdir_rmdir.cSuccessNone0.045084s0.110084s
Success
mkfifo_test.cSuccessNone0.049762s0.160276s
Success
mknod.cSuccessNone0.044039s0.116224s
Success
nocancel_io.cSuccessNone0.050331s0.132585s
Success
open.cSuccessNone0.040598s0.096417s
Success
openat.cSuccessNone0.041109s0.104732s
Success
path_conversion_safety.cSuccessNone0.049897s0.128631s
Success
ppoll.cSuccessNone0.048897s0.117299s
Success
pread_pwrite.cSuccessNone0.042855s0.110083s
Success
preadv_pwritev.cSuccessNone0.047786s0.124044s
Success
printf.cSuccessNone0.040574s0.094976s
Success
prlimit64.cSuccessNone0.039458s0.099636s
Success
read.cSuccessNone0.044587s0.118936s
Success
readbytes.cSuccessNone0.041955s0.099503s
Success
readdir_basic.cSuccessNone0.049024s0.141748s
Success
readlink.cSuccessNone0.044023s0.112726s
Success
readlinkat.cSuccessNone0.045867s0.118544s
Success
readv_writev_test.cSuccessNone0.046183s0.119384s
Success
rename.cSuccessNone0.047041s0.109337s
Success
renameat.cSuccessNone0.046530s0.120849s
Success
sc-writev.cSuccessNone0.043904s0.106288s
Success
stat.cSuccessNone0.046132s0.118554s
Success
statfs.cSuccessNone0.040884s0.103598s
Success
symlink.cSuccessNone0.048163s0.137857s
Success
sync_file_range.cSuccessNone0.041912s0.102736s
Success
timespec_time_t_compat.cSuccessNone0.043086s0.100987s
Success
trailing_slash.cSuccessNone0.044705s0.121457s
Success
truncate.cSuccessNone0.046175s0.129053s
Success
unlink.cSuccessNone0.047458s0.140307s
Success
unlinkat.cSuccessNone0.047913s0.128009s
Success
utimensat.cSuccessNone0.042730s0.123977s
Success
write.cSuccessNone0.039553s0.093725s
Success
writeloop.cSuccessNone0.046645s0.108477s
Success
writepartial.cSuccessNone0.044728s0.101033s
Success
writev.cSuccessNone0.045241s0.114535s
Success
Math Tests
math_link_smoke.cSuccessNone0.052449s0.103009s
Success
math_tests.cSuccessNone0.053082s0.128875s
Success
printf_float.cSuccessNone0.048417s0.121692s
Success
Memory Tests
brk.cSuccessNone0.043409s0.104784s
Success
fork_large_memory.cSuccessNone0.072651s0.441744s
Success
malloc.cSuccessNone0.041105s0.095023s
Success
malloc_large.cSuccessNone0.041610s0.095031s
Success
memcpy.cSuccessNone0.042664s0.095954s
Success
memory_error_test.cSuccessNone0.046649s0.124434s
Success
mmap.cSuccessNone0.038745s0.108098s
Success
mmap_address_truncation.cSuccessNone0.039786s0.100546s
Success
mmap_aligned.cSuccessNone0.041147s0.113303s
Success
mmap_complicated.cSuccessNone0.044546s0.127550s
Success
mmap_file.cSuccessNone0.045219s0.108715s
Success
mmap_shared.cSuccessNone0.060089s0.136154s
Success
mmaptest.cSuccessNone0.042977s0.101220s
Success
mprotect.cSuccessNone0.039830s0.099822s
Success
mprotect_boundary.cSuccessNone0.038983s0.106088s
Success
mprotect_end_region.cSuccessNone0.038815s0.099863s
Success
mprotect_middle_region.cSuccessNone0.039792s0.103604s
Success
mprotect_multiple_times.cSuccessNone0.039877s0.103885s
Success
mprotect_same_value.cSuccessNone0.039193s0.100659s
Success
mprotect_spanning_regions.cSuccessNone0.041141s0.119508s
Success
munmap_adjacent_shm.cSuccessNone0.040752s0.114665s
Success
sbrk.cSuccessNone0.041679s0.099829s
Success
segfault.cSuccessNone0.045914s0.139021s
Success
shm.cSuccessNone0.044007s0.130291s
Success
shmtest.cSuccessNone0.039925s0.103157s
Success
thread_malloc_sequential.cSuccessNone0.047003s0.169488s
Success
vtable.cSuccessNone0.049486s0.111936s
Success
Networking Tests
accept4.cSuccessNone0.049075s0.119587s
Success
dns_resolve_test.cSuccessNone0.072441s0.212783s
Success
dnstest.cSuccessNone0.046552s0.115436s
Success
epoll_badfd.cSuccessNone0.039380s0.098071s
Success
epoll_edge_triggered.cSuccessNone0.212362s0.366038s
Success
epollcreate1.cSuccessNone0.051037s0.124934s
Success
error_handling_net.cSuccessNone0.063824s0.186042s
Success
getaddrinfo_test.cSuccessNone0.053795s0.152835s
Success
getaddrinfo_unspec.cSuccessNone0.049205s0.135096s
Success
gethostname.cSuccessNone0.040259s0.097623s
Success
getifaddrs.cSuccessNone0.048961s0.121074s
Success
getsockname.cSuccessNone0.052522s0.126438s
Success
getsockopt.cSuccessNone0.055725s0.184570s
Success
ipv6_basic.cSuccessNone0.053331s0.152513s
Success
makepipe.cSuccessNone0.097412s0.197953s
Success
nonblocking_eagain.cSuccessNone0.050557s0.166336s
Success
pipe.cSuccessNone0.049090s0.122373s
Success
pipe2.cSuccessNone0.049591s0.121060s
Success
pipeinput.cSuccessNone0.052498s0.155900s
Success
pipeinput2.cSuccessNone0.093585s0.223911s
Success
pipeonestring.cSuccessNone0.048004s0.143090s
Success
pipepong.cSuccessNone0.048795s0.165747s
Success
pipewrite.cSuccessNone0.042344s0.106207s
Success
poll.cSuccessNone0.044106s0.103004s
Success
recvfrom-sendto.cSuccessNone0.062798s0.149576s
Success
sendmsg_recvmsg_test.cSuccessNone0.045852s0.231125s
Success
serverclient.cSuccessNone0.046425s0.209066s
Success
shutdown.cSuccessNone0.048462s0.123318s
Success
shutdown_fork.cSuccessNone0.046481s0.129813s
Success
simple-select.cSuccessNone0.051844s0.151320s
Success
simple_epoll.cSuccessNone0.045029s0.113781s
Success
socket.cSuccessNone0.047625s0.114437s
Success
socket_cloexec.cSuccessNone0.045907s0.105900s
Success
socket_options_advanced.cSuccessNone0.096386s0.296266s
Success
socketepoll.cSuccessNone0.074724s0.102089s
Success
socketpair.cSuccessNone0.068943s0.165468s
Success
socketselect.cSuccessNone0.047488s0.137432s
Success
udp_send_recv.cSuccessNone0.153250s0.272028s
Success
uds-getsockname.cSuccessNone0.046737s0.107207s
Success
uds-nb-select.cSuccessNone2.069564s2.172722s
Success
uds-serverclient.cSuccessNone0.049808s0.153119s
Success
uds-socketselect.cSuccessNone0.058404s0.156205s
Success
uds_listen_poll.cSuccessNone1.053425s1.190331s
Success
writev_socket.cSuccessNone0.050958s0.184323s
Success
Process Tests
barrier_test.cSuccessNone0.044955s0.123481s
Success
chain_thread.cSuccessNone1.047113s1.132055s
Success
ctor_syscall_test.cSuccessNone0.037533s0.093687s
Success
cxa_atexit_test.cSuccessNone0.042390s0.101072s
Success
exec_non_utf8.cSuccessNone0.044369s0.105825s
Success
execve_shebang.cSuccessNone0.045191s0.107325s
Success
exit.cSuccessNone0.043588s0.101457s
Success
exit_failure.cSuccessNone0.044722s0.120659s
Success
exit_group_thread.cSuccessNone0.045730s0.138013s
Success
exit_status_first_wins.cSuccessNone0.047614s0.141945s
Success
flockfile_test.cSuccessNone0.045592s0.133181s
Success
fork2malloc.cSuccessNone0.046952s0.124114s
Success
fork_select.cSuccessNone0.044041s0.130918s
Success
fork_simple.cSuccessNone0.043011s0.118403s
Success
fork_syscall.cSuccessNone0.048631s0.638193s
Success
fork_tls_ctype.cSuccessNone0.046593s0.144134s
Success
forkandopen.cSuccessNone0.045833s0.134721s
Success
forkdup.cSuccessNone0.047569s0.129380s
Success
forkexecuid.cSuccessNone0.044712s0.141087s
Success
forkexecv-arg.cSuccessNone0.044918s0.133667s
Success
forkexecv.cSuccessNone0.042351s0.125063s
Success
forkfiles.cSuccessNone0.045356s0.131119s
Success
forkmalloc.cSuccessNone0.047107s0.117986s
Success
forknodup.cSuccessNone0.045287s0.133174s
Success
function-ptr.cSuccessNone0.041799s0.096653s
Success
getegid_syscall.cSuccessNone0.045342s0.451776s
Success
getgid_syscall.cSuccessNone0.045076s0.486185s
Success
getpid.cSuccessNone0.039308s0.093436s
Success
getpid_syscall.cSuccessNone0.045847s0.474209s
Success
getppid.cSuccessNone0.045548s0.120059s
Success
getppid_syscall.cSuccessNone0.046727s0.390861s
Success
getuid.cSuccessNone0.045742s0.104324s
Success
getuid_syscall.cSuccessNone0.044021s0.229393s
Success
hello-arg.cSuccessNone0.037538s0.096896s
Success
hello.cSuccessNone0.037058s0.088871s
Success
longjmp.cSuccessNone0.045111s0.101012s
Success
mutex.cSuccessNone2.047731s2.125330s
Success
printf_deadlock_smoke.cSuccessNone0.051680s0.148529s
Success
printf_thread_test.cSuccessNone0.043691s0.130950s
Success
sem_forks.cSuccessNone0.048320s0.166994s
Success
setjmp_edge.cSuccessNone0.041555s0.169665s
Success
setsid.cSuccessNone0.039493s0.095369s
Success
template.cSuccessNone0.046194s0.169972s
Success
test_crossmodule_longjmp.cSuccessNone0.046365s0.134770s
Success
test_exec_nofork.cSuccessNone0.043712s0.122005s
Success
test_unlink_open_file.cSuccessNone0.040779s0.094927s
Success
thread-guard.cSuccessNone0.043718s0.118012s
Success
thread-test.cSuccessNone0.040459s0.108847s
Success
thread.cSuccessNone0.040366s0.105324s
Success
thread_cageid_race.cSuccessNone0.042470s0.278694s
Success
tls_test.cSuccessNone0.044725s0.149312s
Success
uname.cSuccessNone0.040102s0.096154s
Success
wait.cSuccessNone0.042345s0.134795s
Success
waitpid_anychild.cSuccessNone0.045576s0.124708s
Success
waitpid_syscall.cSuccessNone1.047122s1.216431s
Success
waitpid_wnohang.cSuccessNone0.046846s0.125438s
Success
Signal Tests
alarm.cSuccessNone7.074743s7.142860s
Success
eintr_fork_signal.cSuccessNone1.046986s1.141080s
Success
kill.cSuccessNone1.044614s1.122750s
Success
pause_test.cSuccessNone1.047026s1.135911s
Success
setitimer.cSuccessNone7.044737s7.138189s
Success
sigalrm.cSuccessNone2.044949s2.123851s
Success
sigaltstack.cSuccessNone0.049605s0.119114s
Success
sigchld.cSuccessNone1.046834s1.128120s
Success
signal-fork.cSuccessNone4.047012s4.120357s
Success
signal-simple.cSuccessNone0.045593s0.110114s
Success
signal_SIGCHLD.cSuccessNone0.044149s0.131939s
Success
signal_fork.cSuccessNone0.041556s0.132119s
Success
signal_int_ignored.cSuccessNone2.046045s2.130212s
Success
signal_kill_cleanup.cSuccessNone1.044293s1.120247s
Success
signal_procmask.cSuccessNone0.042704s0.111507s
Success
signal_read_interrupt.cSuccessNone0.548330s0.634046s
Success
signal_recursive.cSuccessNone0.041970s0.118387s
Success
signal_sa_mask.cSuccessNone0.040738s0.104989s
Success
signal_select_interrupt.cSuccessNone0.548346s0.632905s
Success
signal_write_interrupt.cSuccessNone1.048135s1.128083s
Success
sigpipe.cSuccessNone1.046269s1.133071s
Success
sigprocmask.cSuccessNone1.045357s1.112553s
Success
sigsuspend_test.cSuccessNone1.042983s1.129066s
Success
test_sigsetjmp.cSuccessNone0.046054s0.138253s
Success
Fail Tests

Summary

MetricCount
Total Test Cases6
Number of Successes6
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.038694s0.099179s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.083945s0.097563s
Success
invalid_access_fork.cSuccessNone0.103327s0.152531s
Success
mmap-negative1.cSuccessNone0.120134s0.104356s
Success
mmap-negative2.cSuccessNone0.128356s0.234952s
Success
Signal Tests
signal_resethand.cSuccessNone1.045301s1.121757s
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.466499s8.506237s
LIBCPP_SORT_OK 1 2 3

@rennergade rennergade left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a good start. Approved.

@Uk-jake Uk-jake force-pushed the docs/pipeline-document branch from 08c448f to 6a09d6c Compare June 29, 2026 15:39
@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
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/copy-handler-table_grate.cSuccess
STDOUT:
[Grate|copy-handler-table] Registering geteuid handler for cage 2 in grate 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Cage|copy-handler-table] PASS: child inherited handler, then overwrite changed geteuid to 0
[Cage|copy-handler-table] PASS: parent=123 child_exit=0
[Grate|copy-handler-table] 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.057547s4.080173s
Success
thread.cSuccessNone0.042332s4.143921s
Success
tls_test.cSuccessNone0.047171s4.166055s
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 Cases234
Number of Successes234
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
basic.cSuccessNone0.041296s0.106908s
Success
dlopen_fork.cSuccessNone0.043640s0.132308s
Success
dlopen_thread.cSuccessNone0.045379s0.129594s
Success
double_fork_dlopen.cSuccessNone0.048391s0.171637s
Success
fork_dlopen.cSuccessNone0.044198s0.131493s
Success
longjmp_dlopen.cSuccessNone0.042209s0.122125s
Success
rdynamic_main.cSuccessNone0.044591s0.125551s
Success
File Tests
chartests.cSuccessNone0.041335s0.135689s
Success
chdir_getcwd.cSuccessNone0.042685s0.110129s
Success
chmod.cSuccessNone0.047150s0.119807s
Success
clock_gettime_highlevel.cSuccessNone0.282803s0.181696s
Success
clock_gettime_simple.cSuccessNone0.037843s0.097979s
Success
cloexec.cSuccessNone0.045817s0.131900s
Success
close.cSuccessNone0.046676s0.121788s
Success
copy_file_range.cSuccessNone0.045723s0.131493s
Success
creat_access.cSuccessNone0.045366s0.106945s
Success
doubleclose.cSuccessNone0.038670s0.092737s
Success
dup.cSuccessNone0.040304s0.108257s
Success
dup2.cSuccessNone0.043918s0.107330s
Success
dup3.cSuccessNone0.041748s0.105067s
Success
dupwrite.cSuccessNone0.043620s0.104725s
Success
etc_conf.cSuccessNone0.040320s0.109329s
Success
faccessat.cSuccessNone0.042092s0.111296s
Success
fchdir.cSuccessNone0.047348s0.117691s
Success
fchmod.cSuccessNone0.046018s0.117372s
Success
fchmodat.cSuccessNone0.040024s0.104129s
Success
fcntl.cSuccessNone0.044196s0.121607s
Success
fcntl_dupfd.cSuccessNone0.039123s0.101028s
Success
fdatasync.cSuccessNone0.044074s0.103929s
Success
filetest.cSuccessNone0.043899s0.104452s
Success
filetest1000.cSuccessNone0.047741s0.109905s
Success
flock.cSuccessNone0.050065s0.150896s
Success
fstat.cSuccessNone0.045691s0.120494s
Success
fstatfs.cSuccessNone0.040029s0.100100s
Success
fsync.cSuccessNone0.043436s0.103083s
Success
ftruncate.cSuccessNone0.047478s0.190442s
Success
getcwd.cSuccessNone0.041829s0.099653s
Success
getcwd_null.cSuccessNone0.044666s0.111054s
Success
getpgid.cSuccessNone0.038821s0.093545s
Success
getrandom.cSuccessNone0.045383s0.118336s
Success
ioctl.cSuccessNone0.047640s0.114764s
Success
link.cSuccessNone0.047939s0.144000s
Success
locale_test.cSuccessNone0.055823s0.288659s
Success
lseek.cSuccessNone0.048004s0.176197s
Success
lstat.cSuccessNone0.051120s0.127163s
Success
mkdir_rmdir.cSuccessNone0.045084s0.110084s
Success
mkfifo_test.cSuccessNone0.049762s0.160276s
Success
mknod.cSuccessNone0.044039s0.116224s
Success
nocancel_io.cSuccessNone0.050331s0.132585s
Success
open.cSuccessNone0.040598s0.096417s
Success
openat.cSuccessNone0.041109s0.104732s
Success
path_conversion_safety.cSuccessNone0.049897s0.128631s
Success
ppoll.cSuccessNone0.048897s0.117299s
Success
pread_pwrite.cSuccessNone0.042855s0.110083s
Success
preadv_pwritev.cSuccessNone0.047786s0.124044s
Success
printf.cSuccessNone0.040574s0.094976s
Success
prlimit64.cSuccessNone0.039458s0.099636s
Success
read.cSuccessNone0.044587s0.118936s
Success
readbytes.cSuccessNone0.041955s0.099503s
Success
readdir_basic.cSuccessNone0.049024s0.141748s
Success
readlink.cSuccessNone0.044023s0.112726s
Success
readlinkat.cSuccessNone0.045867s0.118544s
Success
readv_writev_test.cSuccessNone0.046183s0.119384s
Success
rename.cSuccessNone0.047041s0.109337s
Success
renameat.cSuccessNone0.046530s0.120849s
Success
sc-writev.cSuccessNone0.043904s0.106288s
Success
stat.cSuccessNone0.046132s0.118554s
Success
statfs.cSuccessNone0.040884s0.103598s
Success
symlink.cSuccessNone0.048163s0.137857s
Success
sync_file_range.cSuccessNone0.041912s0.102736s
Success
timespec_time_t_compat.cSuccessNone0.043086s0.100987s
Success
trailing_slash.cSuccessNone0.044705s0.121457s
Success
truncate.cSuccessNone0.046175s0.129053s
Success
unlink.cSuccessNone0.047458s0.140307s
Success
unlinkat.cSuccessNone0.047913s0.128009s
Success
utimensat.cSuccessNone0.042730s0.123977s
Success
write.cSuccessNone0.039553s0.093725s
Success
writeloop.cSuccessNone0.046645s0.108477s
Success
writepartial.cSuccessNone0.044728s0.101033s
Success
writev.cSuccessNone0.045241s0.114535s
Success
Math Tests
math_link_smoke.cSuccessNone0.052449s0.103009s
Success
math_tests.cSuccessNone0.053082s0.128875s
Success
printf_float.cSuccessNone0.048417s0.121692s
Success
Memory Tests
brk.cSuccessNone0.043409s0.104784s
Success
fork_large_memory.cSuccessNone0.072651s0.441744s
Success
malloc.cSuccessNone0.041105s0.095023s
Success
malloc_large.cSuccessNone0.041610s0.095031s
Success
memcpy.cSuccessNone0.042664s0.095954s
Success
memory_error_test.cSuccessNone0.046649s0.124434s
Success
mmap.cSuccessNone0.038745s0.108098s
Success
mmap_address_truncation.cSuccessNone0.039786s0.100546s
Success
mmap_aligned.cSuccessNone0.041147s0.113303s
Success
mmap_complicated.cSuccessNone0.044546s0.127550s
Success
mmap_file.cSuccessNone0.045219s0.108715s
Success
mmap_shared.cSuccessNone0.060089s0.136154s
Success
mmaptest.cSuccessNone0.042977s0.101220s
Success
mprotect.cSuccessNone0.039830s0.099822s
Success
mprotect_boundary.cSuccessNone0.038983s0.106088s
Success
mprotect_end_region.cSuccessNone0.038815s0.099863s
Success
mprotect_middle_region.cSuccessNone0.039792s0.103604s
Success
mprotect_multiple_times.cSuccessNone0.039877s0.103885s
Success
mprotect_same_value.cSuccessNone0.039193s0.100659s
Success
mprotect_spanning_regions.cSuccessNone0.041141s0.119508s
Success
munmap_adjacent_shm.cSuccessNone0.040752s0.114665s
Success
sbrk.cSuccessNone0.041679s0.099829s
Success
segfault.cSuccessNone0.045914s0.139021s
Success
shm.cSuccessNone0.044007s0.130291s
Success
shmtest.cSuccessNone0.039925s0.103157s
Success
thread_malloc_sequential.cSuccessNone0.047003s0.169488s
Success
vtable.cSuccessNone0.049486s0.111936s
Success
Networking Tests
accept4.cSuccessNone0.049075s0.119587s
Success
dns_resolve_test.cSuccessNone0.072441s0.212783s
Success
dnstest.cSuccessNone0.046552s0.115436s
Success
epoll_badfd.cSuccessNone0.039380s0.098071s
Success
epoll_edge_triggered.cSuccessNone0.212362s0.366038s
Success
epollcreate1.cSuccessNone0.051037s0.124934s
Success
error_handling_net.cSuccessNone0.063824s0.186042s
Success
getaddrinfo_test.cSuccessNone0.053795s0.152835s
Success
getaddrinfo_unspec.cSuccessNone0.049205s0.135096s
Success
gethostname.cSuccessNone0.040259s0.097623s
Success
getifaddrs.cSuccessNone0.048961s0.121074s
Success
getsockname.cSuccessNone0.052522s0.126438s
Success
getsockopt.cSuccessNone0.055725s0.184570s
Success
ipv6_basic.cSuccessNone0.053331s0.152513s
Success
makepipe.cSuccessNone0.097412s0.197953s
Success
nonblocking_eagain.cSuccessNone0.050557s0.166336s
Success
pipe.cSuccessNone0.049090s0.122373s
Success
pipe2.cSuccessNone0.049591s0.121060s
Success
pipeinput.cSuccessNone0.052498s0.155900s
Success
pipeinput2.cSuccessNone0.093585s0.223911s
Success
pipeonestring.cSuccessNone0.048004s0.143090s
Success
pipepong.cSuccessNone0.048795s0.165747s
Success
pipewrite.cSuccessNone0.042344s0.106207s
Success
poll.cSuccessNone0.044106s0.103004s
Success
recvfrom-sendto.cSuccessNone0.062798s0.149576s
Success
sendmsg_recvmsg_test.cSuccessNone0.045852s0.231125s
Success
serverclient.cSuccessNone0.046425s0.209066s
Success
shutdown.cSuccessNone0.048462s0.123318s
Success
shutdown_fork.cSuccessNone0.046481s0.129813s
Success
simple-select.cSuccessNone0.051844s0.151320s
Success
simple_epoll.cSuccessNone0.045029s0.113781s
Success
socket.cSuccessNone0.047625s0.114437s
Success
socket_cloexec.cSuccessNone0.045907s0.105900s
Success
socket_options_advanced.cSuccessNone0.096386s0.296266s
Success
socketepoll.cSuccessNone0.074724s0.102089s
Success
socketpair.cSuccessNone0.068943s0.165468s
Success
socketselect.cSuccessNone0.047488s0.137432s
Success
udp_send_recv.cSuccessNone0.153250s0.272028s
Success
uds-getsockname.cSuccessNone0.046737s0.107207s
Success
uds-nb-select.cSuccessNone2.069564s2.172722s
Success
uds-serverclient.cSuccessNone0.049808s0.153119s
Success
uds-socketselect.cSuccessNone0.058404s0.156205s
Success
uds_listen_poll.cSuccessNone1.053425s1.190331s
Success
writev_socket.cSuccessNone0.050958s0.184323s
Success
Process Tests
barrier_test.cSuccessNone0.044955s0.123481s
Success
chain_thread.cSuccessNone1.047113s1.132055s
Success
ctor_syscall_test.cSuccessNone0.037533s0.093687s
Success
cxa_atexit_test.cSuccessNone0.042390s0.101072s
Success
exec_non_utf8.cSuccessNone0.044369s0.105825s
Success
execve_shebang.cSuccessNone0.045191s0.107325s
Success
exit.cSuccessNone0.043588s0.101457s
Success
exit_failure.cSuccessNone0.044722s0.120659s
Success
exit_group_thread.cSuccessNone0.045730s0.138013s
Success
exit_status_first_wins.cSuccessNone0.047614s0.141945s
Success
flockfile_test.cSuccessNone0.045592s0.133181s
Success
fork2malloc.cSuccessNone0.046952s0.124114s
Success
fork_select.cSuccessNone0.044041s0.130918s
Success
fork_simple.cSuccessNone0.043011s0.118403s
Success
fork_syscall.cSuccessNone0.048631s0.638193s
Success
fork_tls_ctype.cSuccessNone0.046593s0.144134s
Success
forkandopen.cSuccessNone0.045833s0.134721s
Success
forkdup.cSuccessNone0.047569s0.129380s
Success
forkexecuid.cSuccessNone0.044712s0.141087s
Success
forkexecv-arg.cSuccessNone0.044918s0.133667s
Success
forkexecv.cSuccessNone0.042351s0.125063s
Success
forkfiles.cSuccessNone0.045356s0.131119s
Success
forkmalloc.cSuccessNone0.047107s0.117986s
Success
forknodup.cSuccessNone0.045287s0.133174s
Success
function-ptr.cSuccessNone0.041799s0.096653s
Success
getegid_syscall.cSuccessNone0.045342s0.451776s
Success
getgid_syscall.cSuccessNone0.045076s0.486185s
Success
getpid.cSuccessNone0.039308s0.093436s
Success
getpid_syscall.cSuccessNone0.045847s0.474209s
Success
getppid.cSuccessNone0.045548s0.120059s
Success
getppid_syscall.cSuccessNone0.046727s0.390861s
Success
getuid.cSuccessNone0.045742s0.104324s
Success
getuid_syscall.cSuccessNone0.044021s0.229393s
Success
hello-arg.cSuccessNone0.037538s0.096896s
Success
hello.cSuccessNone0.037058s0.088871s
Success
longjmp.cSuccessNone0.045111s0.101012s
Success
mutex.cSuccessNone2.047731s2.125330s
Success
printf_deadlock_smoke.cSuccessNone0.051680s0.148529s
Success
printf_thread_test.cSuccessNone0.043691s0.130950s
Success
sem_forks.cSuccessNone0.048320s0.166994s
Success
setjmp_edge.cSuccessNone0.041555s0.169665s
Success
setsid.cSuccessNone0.039493s0.095369s
Success
template.cSuccessNone0.046194s0.169972s
Success
test_crossmodule_longjmp.cSuccessNone0.046365s0.134770s
Success
test_exec_nofork.cSuccessNone0.043712s0.122005s
Success
test_unlink_open_file.cSuccessNone0.040779s0.094927s
Success
thread-guard.cSuccessNone0.043718s0.118012s
Success
thread-test.cSuccessNone0.040459s0.108847s
Success
thread.cSuccessNone0.040366s0.105324s
Success
thread_cageid_race.cSuccessNone0.042470s0.278694s
Success
tls_test.cSuccessNone0.044725s0.149312s
Success
uname.cSuccessNone0.040102s0.096154s
Success
wait.cSuccessNone0.042345s0.134795s
Success
waitpid_anychild.cSuccessNone0.045576s0.124708s
Success
waitpid_syscall.cSuccessNone1.047122s1.216431s
Success
waitpid_wnohang.cSuccessNone0.046846s0.125438s
Success
Signal Tests
alarm.cSuccessNone7.074743s7.142860s
Success
eintr_fork_signal.cSuccessNone1.046986s1.141080s
Success
kill.cSuccessNone1.044614s1.122750s
Success
pause_test.cSuccessNone1.047026s1.135911s
Success
setitimer.cSuccessNone7.044737s7.138189s
Success
sigalrm.cSuccessNone2.044949s2.123851s
Success
sigaltstack.cSuccessNone0.049605s0.119114s
Success
sigchld.cSuccessNone1.046834s1.128120s
Success
signal-fork.cSuccessNone4.047012s4.120357s
Success
signal-simple.cSuccessNone0.045593s0.110114s
Success
signal_SIGCHLD.cSuccessNone0.044149s0.131939s
Success
signal_fork.cSuccessNone0.041556s0.132119s
Success
signal_int_ignored.cSuccessNone2.046045s2.130212s
Success
signal_kill_cleanup.cSuccessNone1.044293s1.120247s
Success
signal_procmask.cSuccessNone0.042704s0.111507s
Success
signal_read_interrupt.cSuccessNone0.548330s0.634046s
Success
signal_recursive.cSuccessNone0.041970s0.118387s
Success
signal_sa_mask.cSuccessNone0.040738s0.104989s
Success
signal_select_interrupt.cSuccessNone0.548346s0.632905s
Success
signal_write_interrupt.cSuccessNone1.048135s1.128083s
Success
sigpipe.cSuccessNone1.046269s1.133071s
Success
sigprocmask.cSuccessNone1.045357s1.112553s
Success
sigsuspend_test.cSuccessNone1.042983s1.129066s
Success
test_sigsetjmp.cSuccessNone0.046054s0.138253s
Success
Fail Tests

Summary

MetricCount
Total Test Cases6
Number of Successes6
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.038694s0.099179s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.083945s0.097563s
Success
invalid_access_fork.cSuccessNone0.103327s0.152531s
Success
mmap-negative1.cSuccessNone0.120134s0.104356s
Success
mmap-negative2.cSuccessNone0.128356s0.234952s
Success
Signal Tests
signal_resethand.cSuccessNone1.045301s1.121757s
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.466499s8.506237s
LIBCPP_SORT_OK 1 2 3

@Uk-jake Uk-jake merged commit d3cce03 into main Jun 29, 2026
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.

Add a scheduled trigger to 'release.yml'

4 participants