Skip to content

Dynamic loading documentation#747

Open
vidyalakshmir wants to merge 9 commits into
mainfrom
dynamic-loading-doc
Open

Dynamic loading documentation#747
vidyalakshmir wants to merge 9 commits into
mainfrom
dynamic-loading-doc

Conversation

@vidyalakshmir

Copy link
Copy Markdown
Contributor

Describes how dynamic loading is implemented in wasmtime

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases148
Number of Successes147
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 Failure1
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.051066s4.569538s
Success
chdir_getcwd.cSuccessNone0.050620s4.530107s
Success
chmod.cSuccessNone0.056609s4.568242s
Success
clock_gettime_highlevel.cSuccessNone0.123106s4.747309s
Success
clock_gettime_simple.cSuccessNone0.048242s4.495210s
Success
cloexec.cSuccessNone0.054124s6.187897s
Success
close.cSuccessNone0.063250s4.564986s
Success
creat_access.cSuccessNone0.054185s4.570130s
Success
doubleclose.cSuccessNone0.046680s4.509919s
Success
dup.cSuccessNone0.046590s4.573306s
Success
dup2.cSuccessNone0.052162s4.594357s
Success
dup3.cSuccessNone0.049448s4.549739s
Success
dupwrite.cSuccessNone0.053776s4.509560s
Success
fchdir.cSuccessNone0.056686s4.543855s
Success
fchmod.cSuccessNone0.058716s4.570568s
Success
fcntl.cSuccessNone0.052188s4.543773s
Success
fdatasync.cSuccessNone0.051256s4.533223s
Success
filetest.cSuccessNone0.054343s4.503077s
Success
filetest1000.cSuccessNone0.062470s4.525719s
Success
flock.cSuccessNone0.061031s4.615748s
Success
fstat.cSuccessNone0.055322s4.555978s
Success
fstatfs.cSuccessNone0.049509s4.533224s
Success
fsync.cSuccessNone0.053285s4.557473s
Success
ftruncate.cSuccessNone0.057101s4.582268s
Success
getcwd.cSuccessNone0.049950s4.554621s
Success
getrandom.cSuccessNone0.051929s4.542743s
Success
ioctl.cSuccessNone0.057166s4.538339s
Success
link.cSuccessNone0.057299s4.561758s
Success
lseek.cSuccessNone0.057605s4.580145s
Success
mkdir_rmdir.cSuccessNone0.054234s4.580093s
Success
open.cSuccessNone0.048374s4.536217s
Success
pread_pwrite.cSuccessNone0.050562s4.540406s
Success
printf.cSuccessNone0.046084s4.484685s
Success
read.cSuccessNone0.055267s4.518214s
Success
readbytes.cSuccessNone0.050031s4.472138s
Success
readlink.cSuccessNone0.053212s4.538026s
Success
readlinkat.cSuccessNone0.055040s4.544805s
Success
rename.cSuccessNone0.056754s4.597922s
Success
sc-writev.cSuccessNone0.054278s4.523358s
Success
stat.cSuccessNone0.056393s4.548216s
Success
statfs.cSuccessNone0.048909s4.514013s
Success
sync_file_range.cSuccessNone0.051474s4.527210s
Success
truncate.cSuccessNone0.056216s4.552035s
Success
unlink.cSuccessNone0.056654s4.599823s
Success
unlinkat.cSuccessNone0.055639s4.565125s
Success
write.cSuccessNone0.047259s4.484117s
Success
writeloop.cSuccessNone0.056213s4.522780s
Success
writepartial.cSuccessNone0.054577s4.497661s
Success
writev.cSuccessNone0.055085s4.545381s
Success
Math Tests
math_link_smoke.cFailureLind_wasm_compiling0.057599s0.110515s
wasm-ld: error: unable to find library -lm
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Memory Tests
brk.cSuccessNone0.051117s4.525663s
Success
malloc.cSuccessNone0.049762s4.490272s
Success
malloc_large.cSuccessNone0.050223s4.511466s
Success
memcpy.cSuccessNone0.048790s4.483666s
Success
memory_error_test.cSuccessNone0.055529s4.532880s
Success
mmap.cSuccessNone0.045501s4.518061s
Success
mmap_aligned.cSuccessNone0.048116s4.496518s
Success
mmap_complicated.cSuccessNone0.054026s4.546606s
Success
mmap_file.cSuccessNone0.054549s4.535107s
Success
mmap_shared.cSuccessNone0.052870s4.532576s
Success
mmaptest.cSuccessNone0.048528s4.517884s
Success
mprotect.cSuccessNone0.047608s4.516021s
Success
mprotect_boundary.cSuccessNone0.047375s4.528516s
Success
mprotect_end_region.cSuccessNone0.048813s4.509626s
Success
mprotect_middle_region.cSuccessNone0.047778s4.522833s
Success
mprotect_multiple_times.cSuccessNone0.047008s4.501460s
Success
mprotect_same_value.cSuccessNone0.046720s4.490584s
Success
mprotect_spanning_regions.cSuccessNone0.048498s4.527937s
Success
sbrk.cSuccessNone0.049880s4.528219s
Success
segfault.cSuccessNone0.055159s4.562326s
Success
shm.cSuccessNone0.053391s4.578998s
Success
shmtest.cSuccessNone0.048905s4.521444s
Success
vtable.cSuccessNone0.061898s4.517219s
Success
Networking Tests
dnstest.cSuccessNone0.054388s4.545365s
Success
epollcreate1.cSuccessNone0.055171s4.549162s
Success
gethostname.cSuccessNone0.047536s4.503563s
Success
getsockname.cSuccessNone0.056517s4.557863s
Success
getsockopt.cSuccessNone0.057519s4.555904s
Success
makepipe.cSuccessNone0.046412s4.486756s
Success
pipe.cSuccessNone0.056647s4.565243s
Success
pipe2.cSuccessNone0.054690s4.511798s
Success
pipeinput.cSuccessNone0.057092s4.581671s
Success
pipeinput2.cSuccessNone0.057580s4.569721s
Success
pipeonestring.cSuccessNone0.056908s4.600615s
Success
pipepong.cSuccessNone0.056181s4.608055s
Success
pipewrite.cSuccessNone0.050940s4.517303s
Success
poll.cSuccessNone0.054426s4.545756s
Success
recvfrom-sendto.cSuccessNone0.058653s4.562419s
Success
serverclient.cSuccessNone0.056099s4.540482s
Success
shutdown.cSuccessNone0.056193s4.500271s
Success
shutdown_fork.cSuccessNone0.054990s4.647578s
Success
simple-select.cSuccessNone0.057221s4.565495s
Success
simple_epoll.cSuccessNone0.054975s4.529151s
Success
socket.cSuccessNone0.053823s4.499936s
Success
socket_cloexec.cSuccessNone0.053587s4.504175s
Success
socketepoll.cSuccessNone0.053014s4.514807s
Success
socketpair.cSuccessNone0.053735s4.544909s
Success
socketselect.cSuccessNone0.053668s4.542775s
Success
tcp_connect_single.cSuccessNone0.056195s4.605561s
Success
uds-getsockname.cSuccessNone0.054940s4.528041s
Success
uds-socketselect.cSuccessNone0.057414s4.541598s
Success
Process Tests
chain_thread.cSuccessNone1.055597s5.697277s
Success
exit.cSuccessNone0.051177s4.505248s
Success
fork2malloc.cSuccessNone0.056415s4.576862s
Success
fork_select.cSuccessNone0.053915s4.566340s
Success
fork_simple.cSuccessNone0.052148s4.551433s
Success
fork_syscall.cSuccessNone0.058852s4.613004s
Success
forkandopen.cSuccessNone0.056623s4.655602s
Success
forkdup.cSuccessNone0.056742s4.524687s
Success
forkexecuid.cSuccessNone0.052904s6.215156s
Success
forkexecv-arg.cSuccessNone0.053542s6.194415s
Success
forkexecv.cSuccessNone0.052056s6.261873s
Success
forkfiles.cSuccessNone0.056466s4.588710s
Success
forkmalloc.cSuccessNone0.068480s4.545530s
Success
forknodup.cSuccessNone0.056323s4.564422s
Success
function-ptr.cSuccessNone0.050494s4.551342s
Success
getegid_syscall.cSuccessNone0.054844s4.572400s
Success
getgid_syscall.cSuccessNone0.055683s4.590433s
Success
getpid.cSuccessNone0.048183s4.524971s
Success
getpid_syscall.cSuccessNone0.056483s4.596169s
Success
getppid.cSuccessNone0.054271s4.575308s
Success
getppid_syscall.cSuccessNone0.058857s4.586469s
Success
getuid.cSuccessNone0.057349s4.528887s
Success
getuid_syscall.cSuccessNone0.054751s4.578285s
Success
hello-arg.cSuccessNone0.044962s4.498075s
Success
hello.cSuccessNone0.045273s4.501620s
Success
longjmp.cSuccessNone0.047468s4.519161s
Success
mutex.cSuccessNone2.059849s6.800296s
Success
sem_forks.cSuccessNone0.058117s4.570439s
Success
setsid.cSuccessNone0.047222s4.494880s
Success
template.cSuccessNone0.054679s4.544945s
Success
test_exec_nofork.cSuccessNone0.054253s6.233941s
Success
test_unlink_open_file.cSuccessNone0.049088s4.504366s
Success
thread.cSuccessNone0.049150s4.659809s
Success
uname.cSuccessNone0.048371s4.558785s
Success
wait.cSuccessNone2.053841s6.547648s
Success
waitpid_anychild.cSuccessNone0.056001s4.555547s
Success
waitpid_syscall.cSuccessNone1.055726s5.573861s
Success
waitpid_wnohang.cSuccessNone0.055122s4.551275s
Success
Signal Tests
alarm.cSuccessNone7.054619s11.561637s
Success
setitimer.cSuccessNone7.054059s11.542503s
Success
sigalrm.cSuccessNone2.053721s6.525021s
Success
sigchld.cSuccessNone1.055813s5.540572s
Success
signal-fork.cSuccessNone4.055820s8.552714s
Success
signal-simple.cSuccessNone0.055078s4.524199s
Success
signal_fork.cSuccessNone0.051947s4.579469s
Success
signal_int_ignored.cSuccessNone2.055184s6.608008s
Success
sigprocmask.cSuccessNone1.054954s5.546456s
Success
Fail Tests

Summary

MetricCount
Total Test Cases2
Number of Successes2
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.123419s4.950487s
Success
mmap-negative2.cSuccessNone0.156190s4.859466s
Success

Comment thread docs/internal/dynamicloading.md Outdated
- Handling dynamic libraries which are loaded via dlopen()
- When dlopen(), dlsym() and dlclose() with glibc invokes their respective implementations within Lind.
- when lind dlopen is invoked, it does the following:
- Gets the full path of the library by prepending LIND_ROOT to the library name

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.

is this still true? we've removed lind root

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Current implementation works this way. This has to be changed to adapt to Lind-boot

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases149
Number of Successes149
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.050947s4.237350s
Success
chdir_getcwd.cSuccessNone0.050938s4.256927s
Success
chmod.cSuccessNone0.056901s4.216431s
Success
clock_gettime_highlevel.cSuccessNone0.121944s4.443830s
Success
clock_gettime_simple.cSuccessNone0.045217s4.202666s
Success
cloexec.cSuccessNone0.056383s5.283706s
Success
close.cSuccessNone0.064642s4.229783s
Success
creat_access.cSuccessNone0.054313s4.228864s
Success
doubleclose.cSuccessNone0.045831s3.795311s
Success
dup.cSuccessNone0.047765s4.218352s
Success
dup2.cSuccessNone0.053153s3.842901s
Success
dup3.cSuccessNone0.050582s4.217182s
Success
dupwrite.cSuccessNone0.054128s3.825793s
Success
fchdir.cSuccessNone0.057268s4.221922s
Success
fchmod.cSuccessNone0.058588s4.208843s
Success
fcntl.cSuccessNone0.053317s4.216539s
Success
fdatasync.cSuccessNone0.052132s4.206933s
Success
filetest.cSuccessNone0.053039s3.818932s
Success
filetest1000.cSuccessNone0.064840s3.858996s
Success
flock.cSuccessNone0.060863s4.283953s
Success
fstat.cSuccessNone0.055513s4.214423s
Success
fstatfs.cSuccessNone0.048315s4.207251s
Success
fsync.cSuccessNone0.052828s4.199325s
Success
ftruncate.cSuccessNone0.058260s4.284920s
Success
getcwd.cSuccessNone0.049125s4.244812s
Success
getrandom.cSuccessNone0.054485s4.209527s
Success
ioctl.cSuccessNone0.058789s4.212693s
Success
link.cSuccessNone0.058308s4.242756s
Success
lseek.cSuccessNone0.058303s4.327459s
Success
mkdir_rmdir.cSuccessNone0.055406s4.218844s
Success
open.cSuccessNone0.049187s4.198506s
Success
pread_pwrite.cSuccessNone0.051574s4.214234s
Success
printf.cSuccessNone0.045901s3.810890s
Success
read.cSuccessNone0.054189s4.210982s
Success
readbytes.cSuccessNone0.049741s3.837410s
Success
readlink.cSuccessNone0.055488s4.214157s
Success
readlinkat.cSuccessNone0.057162s4.223543s
Success
rename.cSuccessNone0.056263s4.227502s
Success
sc-writev.cSuccessNone0.052750s4.189730s
Success
stat.cSuccessNone0.056320s4.225640s
Success
statfs.cSuccessNone0.048811s4.213649s
Success
sync_file_range.cSuccessNone0.053154s4.217609s
Success
truncate.cSuccessNone0.057434s4.241841s
Success
unlink.cSuccessNone0.057783s4.269363s
Success
unlinkat.cSuccessNone0.056819s4.256667s
Success
write.cSuccessNone0.047567s3.800021s
Success
writeloop.cSuccessNone0.057811s3.817945s
Success
writepartial.cSuccessNone0.055391s3.824664s
Success
writev.cSuccessNone0.055905s4.210708s
Success
Math Tests
math_link_smoke.cSuccessNone0.058674s3.855004s
Success
math_tests.cSuccessNone0.062670s4.017084s
Success
Memory Tests
brk.cSuccessNone0.051315s4.201974s
Success
malloc.cSuccessNone0.048907s3.812262s
Success
malloc_large.cSuccessNone0.050799s4.191004s
Success
memcpy.cSuccessNone0.050922s3.800439s
Success
memory_error_test.cSuccessNone0.055303s4.214635s
Success
mmap.cSuccessNone0.047508s4.206667s
Success
mmap_aligned.cSuccessNone0.048414s4.211062s
Success
mmap_complicated.cSuccessNone0.053497s4.238783s
Success
mmap_file.cSuccessNone0.054282s4.216968s
Success
mmap_shared.cSuccessNone0.053298s4.222217s
Success
mmaptest.cSuccessNone0.049611s4.211930s
Success
mprotect.cSuccessNone0.047395s4.196069s
Success
mprotect_boundary.cSuccessNone0.048162s4.203616s
Success
mprotect_end_region.cSuccessNone0.046920s4.188763s
Success
mprotect_middle_region.cSuccessNone0.047839s4.196236s
Success
mprotect_multiple_times.cSuccessNone0.047175s4.197825s
Success
mprotect_same_value.cSuccessNone0.046590s4.193309s
Success
mprotect_spanning_regions.cSuccessNone0.048709s4.190978s
Success
sbrk.cSuccessNone0.050853s4.246515s
Success
segfault.cSuccessNone0.056578s4.224242s
Success
shm.cSuccessNone0.054082s4.244619s
Success
shmtest.cSuccessNone0.047979s4.202859s
Success
vtable.cSuccessNone0.062827s3.863485s
Success
Networking Tests
dnstest.cSuccessNone0.053783s4.235681s
Success
epollcreate1.cSuccessNone0.056035s4.243455s
Success
gethostname.cSuccessNone0.048782s3.800877s
Success
getsockname.cSuccessNone0.056761s4.228135s
Success
getsockopt.cSuccessNone0.058240s4.233776s
Success
makepipe.cSuccessNone0.047129s3.818468s
Success
pipe.cSuccessNone0.059904s4.281011s
Success
pipe2.cSuccessNone0.056095s4.199459s
Success
pipeinput.cSuccessNone0.057999s4.251403s
Success
pipeinput2.cSuccessNone0.058480s4.246513s
Success
pipeonestring.cSuccessNone0.057713s4.246051s
Success
pipepong.cSuccessNone0.057577s4.278361s
Success
pipewrite.cSuccessNone0.051064s4.222636s
Success
poll.cSuccessNone0.058250s4.216055s
Success
recvfrom-sendto.cSuccessNone0.056175s4.240277s
Success
serverclient.cSuccessNone0.054934s3.825764s
Success
shutdown.cSuccessNone0.057879s3.852802s
Success
shutdown_fork.cSuccessNone0.058605s4.235209s
Success
simple-select.cSuccessNone0.057036s4.234597s
Success
simple_epoll.cSuccessNone0.056414s4.211887s
Success
socket.cSuccessNone0.054663s3.851665s
Success
socket_cloexec.cSuccessNone0.054650s4.232269s
Success
socketepoll.cSuccessNone0.053968s3.821755s
Success
socketpair.cSuccessNone0.054023s4.261860s
Success
socketselect.cSuccessNone0.055578s4.230590s
Success
tcp_connect_single.cSuccessNone0.055275s4.249858s
Success
uds-getsockname.cSuccessNone0.055597s4.210667s
Success
uds-socketselect.cSuccessNone0.054962s3.871128s
Success
Process Tests
chain_thread.cSuccessNone1.057120s5.367936s
Success
exit.cSuccessNone0.052740s3.799251s
Success
fork2malloc.cSuccessNone0.056678s4.249529s
Success
fork_select.cSuccessNone0.054001s4.261395s
Success
fork_simple.cSuccessNone0.052893s4.243683s
Success
fork_syscall.cSuccessNone0.060378s4.298466s
Success
forkandopen.cSuccessNone0.056343s4.235769s
Success
forkdup.cSuccessNone0.056770s3.862442s
Success
forkexecuid.cSuccessNone0.053146s5.851874s
Success
forkexecv-arg.cSuccessNone0.053794s5.644752s
Success
forkexecv.cSuccessNone0.052974s5.672575s
Success
forkfiles.cSuccessNone0.055851s4.246784s
Success
forkmalloc.cSuccessNone0.067374s4.225541s
Success
forknodup.cSuccessNone0.056935s4.252520s
Success
function-ptr.cSuccessNone0.052268s4.192512s
Success
getegid_syscall.cSuccessNone0.056794s4.287338s
Success
getgid_syscall.cSuccessNone0.056990s4.256769s
Success
getpid.cSuccessNone0.047924s4.190432s
Success
getpid_syscall.cSuccessNone0.057828s4.283845s
Success
getppid.cSuccessNone0.056483s4.244809s
Success
getppid_syscall.cSuccessNone0.060375s4.284490s
Success
getuid.cSuccessNone0.055325s4.229430s
Success
getuid_syscall.cSuccessNone0.054317s4.258581s
Success
hello-arg.cSuccessNone0.046615s3.811532s
Success
hello.cSuccessNone0.045761s3.817071s
Success
longjmp.cSuccessNone0.047390s3.834743s
Success
mutex.cSuccessNone2.061808s6.489587s
Success
sem_forks.cSuccessNone0.058235s4.267091s
Success
setsid.cSuccessNone0.047222s3.833608s
Success
template.cSuccessNone0.055574s4.237568s
Success
test_exec_nofork.cSuccessNone0.053739s5.826309s
Success
test_unlink_open_file.cSuccessNone0.049431s3.839567s
Success
thread.cSuccessNone0.049748s4.351719s
Success
uname.cSuccessNone0.049067s4.197065s
Success
wait.cSuccessNone2.051618s5.867170s
Success
waitpid_anychild.cSuccessNone0.055852s4.281457s
Success
waitpid_syscall.cSuccessNone1.056669s5.262932s
Success
waitpid_wnohang.cSuccessNone0.056101s3.860608s
Success
Signal Tests
alarm.cSuccessNone7.054214s10.868757s
Success
setitimer.cSuccessNone7.054940s10.880866s
Success
sigalrm.cSuccessNone2.056770s5.852097s
Success
sigchld.cSuccessNone1.056900s4.855257s
Success
signal-fork.cSuccessNone4.056875s7.884673s
Success
signal-simple.cSuccessNone0.056291s3.846242s
Success
signal_fork.cSuccessNone0.051201s4.234681s
Success
signal_int_ignored.cSuccessNone2.055044s6.277576s
Success
sigprocmask.cSuccessNone1.054927s4.854653s
Success
Fail Tests

Summary

MetricCount
Total Test Cases2
Number of Successes2
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.112443s4.447864s
Success
mmap-negative2.cSuccessNone0.185381s4.059447s
Success

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases149
Number of Successes149
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.050101s4.205650s
Success
chdir_getcwd.cSuccessNone0.050726s4.235024s
Success
chmod.cSuccessNone0.057028s4.208954s
Success
clock_gettime_highlevel.cSuccessNone0.120676s4.416180s
Success
clock_gettime_simple.cSuccessNone0.045747s4.194076s
Success
cloexec.cSuccessNone0.055027s5.261629s
Success
close.cSuccessNone0.062690s4.226813s
Success
creat_access.cSuccessNone0.055805s4.230275s
Success
doubleclose.cSuccessNone0.046158s3.779002s
Success
dup.cSuccessNone0.046131s4.200945s
Success
dup2.cSuccessNone0.052442s3.822851s
Success
dup3.cSuccessNone0.050572s4.191748s
Success
dupwrite.cSuccessNone0.054982s3.813638s
Success
fchdir.cSuccessNone0.057629s4.222659s
Success
fchmod.cSuccessNone0.058549s4.208185s
Success
fcntl.cSuccessNone0.053715s4.190188s
Success
fdatasync.cSuccessNone0.052101s4.197069s
Success
filetest.cSuccessNone0.053923s3.815734s
Success
filetest1000.cSuccessNone0.065786s3.869088s
Success
flock.cSuccessNone0.062200s4.276352s
Success
fstat.cSuccessNone0.055506s4.206172s
Success
fstatfs.cSuccessNone0.047228s4.187408s
Success
fsync.cSuccessNone0.052430s4.186821s
Success
ftruncate.cSuccessNone0.058287s4.255184s
Success
getcwd.cSuccessNone0.049404s4.224793s
Success
getrandom.cSuccessNone0.053977s4.195386s
Success
ioctl.cSuccessNone0.059889s4.231878s
Success
link.cSuccessNone0.056911s4.249055s
Success
lseek.cSuccessNone0.058238s4.246046s
Success
mkdir_rmdir.cSuccessNone0.054929s4.201655s
Success
open.cSuccessNone0.047306s4.194097s
Success
pread_pwrite.cSuccessNone0.050370s4.192089s
Success
printf.cSuccessNone0.045319s3.807993s
Success
read.cSuccessNone0.053969s4.193775s
Success
readbytes.cSuccessNone0.049970s3.802356s
Success
readlink.cSuccessNone0.053646s4.202120s
Success
readlinkat.cSuccessNone0.055218s4.204636s
Success
rename.cSuccessNone0.055971s4.213193s
Success
sc-writev.cSuccessNone0.052892s4.193957s
Success
stat.cSuccessNone0.055334s4.194119s
Success
statfs.cSuccessNone0.048319s4.188413s
Success
sync_file_range.cSuccessNone0.054636s4.219537s
Success
truncate.cSuccessNone0.055568s4.228952s
Success
unlink.cSuccessNone0.055790s4.232859s
Success
unlinkat.cSuccessNone0.055174s4.232232s
Success
write.cSuccessNone0.047106s3.782284s
Success
writeloop.cSuccessNone0.056526s3.801541s
Success
writepartial.cSuccessNone0.055132s3.798670s
Success
writev.cSuccessNone0.055030s4.203112s
Success
Math Tests
math_link_smoke.cSuccessNone0.057305s3.838854s
Success
math_tests.cSuccessNone0.063912s3.988734s
Success
Memory Tests
brk.cSuccessNone0.051535s4.207659s
Success
malloc.cSuccessNone0.049812s3.795635s
Success
malloc_large.cSuccessNone0.050041s4.178706s
Success
memcpy.cSuccessNone0.049118s3.788129s
Success
memory_error_test.cSuccessNone0.055300s4.195106s
Success
mmap.cSuccessNone0.046137s4.187511s
Success
mmap_aligned.cSuccessNone0.048495s4.223940s
Success
mmap_complicated.cSuccessNone0.054377s4.238067s
Success
mmap_file.cSuccessNone0.054027s4.195156s
Success
mmap_shared.cSuccessNone0.053086s4.217383s
Success
mmaptest.cSuccessNone0.049560s4.202406s
Success
mprotect.cSuccessNone0.048301s4.180167s
Success
mprotect_boundary.cSuccessNone0.047832s4.180650s
Success
mprotect_end_region.cSuccessNone0.047235s4.176871s
Success
mprotect_middle_region.cSuccessNone0.048373s4.190068s
Success
mprotect_multiple_times.cSuccessNone0.048533s4.203475s
Success
mprotect_same_value.cSuccessNone0.046637s4.213739s
Success
mprotect_spanning_regions.cSuccessNone0.048467s4.194470s
Success
sbrk.cSuccessNone0.049439s4.194077s
Success
segfault.cSuccessNone0.054511s4.235113s
Success
shm.cSuccessNone0.052992s4.207054s
Success
shmtest.cSuccessNone0.047704s4.180617s
Success
vtable.cSuccessNone0.058992s3.821208s
Success
Networking Tests
dnstest.cSuccessNone0.053684s4.202666s
Success
epollcreate1.cSuccessNone0.057077s4.229100s
Success
gethostname.cSuccessNone0.047013s3.821037s
Success
getsockname.cSuccessNone0.055724s4.263112s
Success
getsockopt.cSuccessNone0.057572s4.223166s
Success
makepipe.cSuccessNone0.047445s3.817162s
Success
pipe.cSuccessNone0.055663s4.244169s
Success
pipe2.cSuccessNone0.055880s4.178967s
Success
pipeinput.cSuccessNone0.060789s4.276325s
Success
pipeinput2.cSuccessNone0.057667s4.246675s
Success
pipeonestring.cSuccessNone0.058169s4.236625s
Success
pipepong.cSuccessNone0.056559s4.257462s
Success
pipewrite.cSuccessNone0.050788s4.203014s
Success
poll.cSuccessNone0.055009s4.229208s
Success
recvfrom-sendto.cSuccessNone0.056450s4.224557s
Success
serverclient.cSuccessNone0.055535s3.836893s
Success
shutdown.cSuccessNone0.056796s3.834782s
Success
shutdown_fork.cSuccessNone0.055981s4.233317s
Success
simple-select.cSuccessNone0.057271s4.221759s
Success
simple_epoll.cSuccessNone0.055304s4.202017s
Success
socket.cSuccessNone0.054826s3.843728s
Success
socket_cloexec.cSuccessNone0.052960s4.204534s
Success
socketepoll.cSuccessNone0.053655s3.807389s
Success
socketpair.cSuccessNone0.053654s4.231750s
Success
socketselect.cSuccessNone0.054172s4.218956s
Success
tcp_connect_single.cSuccessNone0.055224s4.221886s
Success
uds-getsockname.cSuccessNone0.055765s4.225399s
Success
uds-socketselect.cSuccessNone0.054810s3.825511s
Success
Process Tests
chain_thread.cSuccessNone1.055665s5.359579s
Success
exit.cSuccessNone0.051794s3.795448s
Success
fork2malloc.cSuccessNone0.056070s4.215123s
Success
fork_select.cSuccessNone0.053134s4.237395s
Success
fork_simple.cSuccessNone0.052568s4.223833s
Success
fork_syscall.cSuccessNone0.059311s4.308709s
Success
forkandopen.cSuccessNone0.056100s4.233059s
Success
forkdup.cSuccessNone0.056752s3.857096s
Success
forkexecuid.cSuccessNone0.053687s5.860731s
Success
forkexecv-arg.cSuccessNone0.053022s5.631736s
Success
forkexecv.cSuccessNone0.051406s5.653777s
Success
forkfiles.cSuccessNone0.056176s4.216778s
Success
forkmalloc.cSuccessNone0.068337s4.222445s
Success
forknodup.cSuccessNone0.057280s4.235589s
Success
function-ptr.cSuccessNone0.049457s4.204227s
Success
getegid_syscall.cSuccessNone0.055817s4.239976s
Success
getgid_syscall.cSuccessNone0.055015s4.263221s
Success
getpid.cSuccessNone0.047415s4.207437s
Success
getpid_syscall.cSuccessNone0.057152s4.281936s
Success
getppid.cSuccessNone0.054872s4.223743s
Success
getppid_syscall.cSuccessNone0.058305s4.266329s
Success
getuid.cSuccessNone0.055834s4.219532s
Success
getuid_syscall.cSuccessNone0.053243s4.251484s
Success
hello-arg.cSuccessNone0.044670s3.804939s
Success
hello.cSuccessNone0.045143s3.825599s
Success
longjmp.cSuccessNone0.046132s3.824317s
Success
mutex.cSuccessNone2.057680s6.488071s
Success
sem_forks.cSuccessNone0.057861s4.248445s
Success
setsid.cSuccessNone0.048572s3.833636s
Success
template.cSuccessNone0.053950s4.221578s
Success
test_exec_nofork.cSuccessNone0.053299s5.794308s
Success
test_unlink_open_file.cSuccessNone0.050089s3.797433s
Success
thread.cSuccessNone0.049728s4.364879s
Success
uname.cSuccessNone0.047965s4.196053s
Success
wait.cSuccessNone2.051430s5.844156s
Success
waitpid_anychild.cSuccessNone0.054457s4.238636s
Success
waitpid_syscall.cSuccessNone1.056605s5.263365s
Success
waitpid_wnohang.cSuccessNone0.055550s3.841147s
Success
Signal Tests
alarm.cSuccessNone7.053646s10.831783s
Success
setitimer.cSuccessNone7.054133s10.862774s
Success
sigalrm.cSuccessNone2.054737s5.832152s
Success
sigchld.cSuccessNone1.056856s4.853108s
Success
signal-fork.cSuccessNone4.056271s7.862131s
Success
signal-simple.cSuccessNone0.054969s3.834927s
Success
signal_fork.cSuccessNone0.051654s4.229949s
Success
signal_int_ignored.cSuccessNone2.054571s6.275864s
Success
sigprocmask.cSuccessNone1.054903s4.842350s
Success
Fail Tests

Summary

MetricCount
Total Test Cases2
Number of Successes2
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.110493s4.429487s
Success
mmap-negative2.cSuccessNone0.200936s4.052524s
Success

@rennergade

Copy link
Copy Markdown
Contributor

In terms of motivation I think it needs:

  • at the top reasoning on why we want to support dynamic loading
  • prominently lay out any places we diverge from Linux's dynamic loading model (including things that are in trusted code vs untrusted)
  • Anywhere we make a design decision explain why we made that decision

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases149
Number of Successes149
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.041672s4.061018s
Success
chdir_getcwd.cSuccessNone0.040666s4.067307s
Success
chmod.cSuccessNone0.045487s4.057164s
Success
clock_gettime_highlevel.cSuccessNone0.274673s4.269498s
Success
clock_gettime_simple.cSuccessNone0.035746s4.034524s
Success
cloexec.cSuccessNone0.044063s5.037233s
Success
close.cSuccessNone0.046011s4.085924s
Success
creat_access.cSuccessNone0.042554s4.060883s
Success
doubleclose.cSuccessNone0.037725s3.661269s
Success
dup.cSuccessNone0.037261s4.058661s
Success
dup2.cSuccessNone0.042065s3.701164s
Success
dup3.cSuccessNone0.040227s4.047078s
Success
dupwrite.cSuccessNone0.043163s3.665056s
Success
fchdir.cSuccessNone0.045630s4.063739s
Success
fchmod.cSuccessNone0.047194s4.052751s
Success
fcntl.cSuccessNone0.041916s4.066950s
Success
fdatasync.cSuccessNone0.041862s4.035363s
Success
filetest.cSuccessNone0.041992s3.679182s
Success
filetest1000.cSuccessNone0.045710s3.693651s
Success
flock.cSuccessNone0.049524s4.111753s
Success
fstat.cSuccessNone0.043638s4.055228s
Success
fstatfs.cSuccessNone0.037832s4.029392s
Success
fsync.cSuccessNone0.042556s4.031126s
Success
ftruncate.cSuccessNone0.046107s4.121662s
Success
getcwd.cSuccessNone0.040761s4.071409s
Success
getrandom.cSuccessNone0.043136s4.067414s
Success
ioctl.cSuccessNone0.047578s4.047520s
Success
link.cSuccessNone0.045950s4.080190s
Success
lseek.cSuccessNone0.046275s4.094559s
Success
mkdir_rmdir.cSuccessNone0.043136s4.056211s
Success
open.cSuccessNone0.038674s4.024661s
Success
pread_pwrite.cSuccessNone0.040621s4.043524s
Success
printf.cSuccessNone0.035498s3.679282s
Success
read.cSuccessNone0.044209s4.036350s
Success
readbytes.cSuccessNone0.040090s3.669758s
Success
readlink.cSuccessNone0.043679s4.053096s
Success
readlinkat.cSuccessNone0.044113s4.032464s
Success
rename.cSuccessNone0.044506s4.057385s
Success
sc-writev.cSuccessNone0.041889s4.054496s
Success
stat.cSuccessNone0.045182s4.066770s
Success
statfs.cSuccessNone0.038829s4.034530s
Success
sync_file_range.cSuccessNone0.040938s4.040919s
Success
truncate.cSuccessNone0.044476s4.079654s
Success
unlink.cSuccessNone0.045694s4.100610s
Success
unlinkat.cSuccessNone0.044460s4.062221s
Success
write.cSuccessNone0.037079s3.653170s
Success
writeloop.cSuccessNone0.045385s3.664256s
Success
writepartial.cSuccessNone0.043428s3.663651s
Success
writev.cSuccessNone0.043563s4.045303s
Success
Math Tests
math_link_smoke.cSuccessNone0.046715s3.698910s
Success
math_tests.cSuccessNone0.051157s3.856083s
Success
Memory Tests
brk.cSuccessNone0.040810s4.039594s
Success
malloc.cSuccessNone0.039110s3.657434s
Success
malloc_large.cSuccessNone0.040698s4.025841s
Success
memcpy.cSuccessNone0.039645s3.643213s
Success
memory_error_test.cSuccessNone0.044461s4.059377s
Success
mmap.cSuccessNone0.036397s4.040242s
Success
mmap_aligned.cSuccessNone0.039481s4.028926s
Success
mmap_complicated.cSuccessNone0.041821s4.070741s
Success
mmap_file.cSuccessNone0.043574s4.039645s
Success
mmap_shared.cSuccessNone0.042239s4.077508s
Success
mmaptest.cSuccessNone0.039061s4.045370s
Success
mprotect.cSuccessNone0.037998s4.032643s
Success
mprotect_boundary.cSuccessNone0.038549s4.034073s
Success
mprotect_end_region.cSuccessNone0.036739s4.025566s
Success
mprotect_middle_region.cSuccessNone0.037700s4.033142s
Success
mprotect_multiple_times.cSuccessNone0.037797s4.034977s
Success
mprotect_same_value.cSuccessNone0.037997s4.020776s
Success
mprotect_spanning_regions.cSuccessNone0.038731s4.028062s
Success
sbrk.cSuccessNone0.039686s4.040374s
Success
segfault.cSuccessNone0.044000s4.067161s
Success
shm.cSuccessNone0.042869s4.084197s
Success
shmtest.cSuccessNone0.038166s4.049794s
Success
vtable.cSuccessNone0.049019s3.703786s
Success
Networking Tests
dnstest.cSuccessNone0.043019s4.035069s
Success
epollcreate1.cSuccessNone0.044768s4.085554s
Success
gethostname.cSuccessNone0.038336s3.687334s
Success
getsockname.cSuccessNone0.045034s4.054749s
Success
getsockopt.cSuccessNone0.046278s4.074690s
Success
makepipe.cSuccessNone0.037999s3.664534s
Success
pipe.cSuccessNone0.045391s4.069027s
Success
pipe2.cSuccessNone0.045141s4.023603s
Success
pipeinput.cSuccessNone0.045741s4.089892s
Success
pipeinput2.cSuccessNone0.045997s4.067160s
Success
pipeonestring.cSuccessNone0.045859s4.087218s
Success
pipepong.cSuccessNone0.045134s4.098300s
Success
pipewrite.cSuccessNone0.040208s4.035494s
Success
poll.cSuccessNone0.045386s4.046692s
Success
recvfrom-sendto.cSuccessNone0.047022s4.077330s
Success
serverclient.cSuccessNone0.044726s3.694663s
Success
shutdown.cSuccessNone0.045065s3.685989s
Success
shutdown_fork.cSuccessNone0.044713s4.068568s
Success
simple-select.cSuccessNone0.045469s4.084507s
Success
simple_epoll.cSuccessNone0.044383s4.053699s
Success
socket.cSuccessNone0.044034s3.679640s
Success
socket_cloexec.cSuccessNone0.042614s4.052438s
Success
socketepoll.cSuccessNone0.042886s3.660152s
Success
socketpair.cSuccessNone0.042956s4.083867s
Success
socketselect.cSuccessNone0.042802s4.048426s
Success
tcp_connect_single.cSuccessNone0.044524s4.064291s
Success
uds-getsockname.cSuccessNone0.043903s4.044309s
Success
uds-socketselect.cSuccessNone0.044413s3.689735s
Success
Process Tests
chain_thread.cSuccessNone1.044449s5.206567s
Success
exit.cSuccessNone0.041337s3.660611s
Success
fork2malloc.cSuccessNone0.043475s4.072284s
Success
fork_select.cSuccessNone0.042920s4.099261s
Success
fork_simple.cSuccessNone0.041188s4.072187s
Success
fork_syscall.cSuccessNone0.047646s4.123792s
Success
forkandopen.cSuccessNone0.044256s4.077639s
Success
forkdup.cSuccessNone0.045043s3.721259s
Success
forkexecuid.cSuccessNone0.042414s5.579771s
Success
forkexecv-arg.cSuccessNone0.041080s5.400989s
Success
forkexecv.cSuccessNone0.040501s5.426717s
Success
forkfiles.cSuccessNone0.044535s4.083525s
Success
forkmalloc.cSuccessNone0.056792s4.079696s
Success
forknodup.cSuccessNone0.045701s4.091200s
Success
function-ptr.cSuccessNone0.041869s4.055046s
Success
getegid_syscall.cSuccessNone0.044136s4.089995s
Success
getgid_syscall.cSuccessNone0.044582s4.109852s
Success
getpid.cSuccessNone0.038112s4.018600s
Success
getpid_syscall.cSuccessNone0.045092s4.121343s
Success
getppid.cSuccessNone0.043973s4.093315s
Success
getppid_syscall.cSuccessNone0.046970s4.111831s
Success
getuid.cSuccessNone0.044378s4.050560s
Success
getuid_syscall.cSuccessNone0.042875s4.090664s
Success
hello-arg.cSuccessNone0.036097s3.682796s
Success
hello.cSuccessNone0.036035s3.665125s
Success
longjmp.cSuccessNone0.037975s3.691593s
Success
mutex.cSuccessNone2.050906s6.334133s
Success
sem_forks.cSuccessNone0.047888s4.107673s
Success
setsid.cSuccessNone0.038071s3.677479s
Success
template.cSuccessNone0.044103s4.088819s
Success
test_exec_nofork.cSuccessNone0.042726s5.554285s
Success
test_unlink_open_file.cSuccessNone0.040362s3.668974s
Success
thread.cSuccessNone0.039690s4.206009s
Success
uname.cSuccessNone0.038043s4.061031s
Success
wait.cSuccessNone2.041536s5.727747s
Success
waitpid_anychild.cSuccessNone0.043315s4.077192s
Success
waitpid_syscall.cSuccessNone1.047700s5.096636s
Success
waitpid_wnohang.cSuccessNone0.045218s3.695332s
Success
Signal Tests
alarm.cSuccessNone7.043446s10.716532s
Success
setitimer.cSuccessNone7.043692s10.717471s
Success
sigalrm.cSuccessNone2.043279s5.706298s
Success
sigchld.cSuccessNone1.045746s4.727276s
Success
signal-fork.cSuccessNone4.044953s7.719967s
Success
signal-simple.cSuccessNone0.044160s3.688998s
Success
signal_fork.cSuccessNone0.040768s4.072482s
Success
signal_int_ignored.cSuccessNone2.043237s6.114080s
Success
sigprocmask.cSuccessNone1.042915s4.704302s
Success
Fail Tests

Summary

MetricCount
Total Test Cases2
Number of Successes2
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.082362s4.150821s
Success
mmap-negative2.cSuccessNone0.090986s3.909952s
Success

Comment thread docs/internal/dynamicloading.md Outdated

In contrast, WebAssembly (WASM) binaries are not executed directly by the operating system. They run inside a runtime such as Wasmtime, which parses and validates the module, JIT-compiles the code, and instantiates the module. Instantiation involves allocating linear memory—a contiguous, sandboxed memory region —initializing globals and tables, and copying data segments into memory. Unlike ELF binaries, WASM modules do not rely on OS-level virtual memory mapping for code or libraries. Instead, execution and memory management are handled entirely within the runtime, which enforces isolation, bounds checking, and memory safety.

In the Lind system, dynamic loading support is implemented by extending Wasmtime’s parsing and instantiation mechanisms. Calls such as `dlopen`, `dlsym`, and `dlclose` from glibc are redirected to runtime-provided implementations. The runtime then loads additional WASM modules, allocates memory, resolves symbols, and performs relocation handling—all within the sandboxed environment. Integrating the dynamic loader inside the runtime is necessary because WebAssembly linking requires direct, synchronous modification of internal runtime state, such as function tables and memory bounds, which an external process cannot access without prohibitive serialization overhead. Keeping the dynamic loader internal also avoids the latency of inter-process communication, ensuring that module instantiation remains fast, secure, and fully within the trusted computing base.

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 is a decent first take but the connection between paragraph 2 and 3 is a little blurry.

The last sentence of paragraph 3 also doesn't make any sense to me.

Comment thread docs/internal/dynamicloading.md Outdated

## Changes made to implement dynamic loading:

"To execute WebAssembly applications within Lind, Wasmtime is modified to interface with RawPOSIX for handling system calls such as `mmap`. Specifically, the following changes were implemented in Wasmtime to support dynamic loading:"

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.

you mention mmap here but then you dont really again? this is a bit more confusing, maybe list the changes up front?

Comment thread docs/internal/dynamicloading.md Outdated
### Parsing the dynamic section
The `dylink.0` custom section within WASM shared libraries is parsed to retrieve dynamic linking metadata. The `load_module` function is responsible for parsing the entire WASM binary to extract all section contents, including code, data, imports, exports, and the dynamic linking information.

### Instantiate the dynamic libraries which are passed using `--preload`

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.

these next two sections just read like recipes but have little context. Either needs to be explanatory text or give some context up front before listgin.


3. When dlsym() is invoked, correspond lind function, fetches the address of the function passed as argument, and invokes it.

### Linear Memory Changes

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.

need rationale for this layout

@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.

Gave some more feedback. It's getting closer but needs some more polish and context.

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases175
Number of Successes175
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.047836s4.295399s
Success
chdir_getcwd.cSuccessNone0.048396s4.294206s
Success
chmod.cSuccessNone0.053329s4.222576s
Success
clock_gettime_highlevel.cSuccessNone0.117923s4.441948s
Success
clock_gettime_simple.cSuccessNone0.043792s4.254777s
Success
cloexec.cSuccessNone0.052221s3.898038s
Success
close.cSuccessNone0.057757s4.246619s
Success
creat_access.cSuccessNone0.049752s4.256299s
Success
doubleclose.cSuccessNone0.042181s3.815771s
Success
dup.cSuccessNone0.043849s4.236261s
Success
dup2.cSuccessNone0.049621s3.865681s
Success
dup3.cSuccessNone0.046525s4.267275s
Success
dupwrite.cSuccessNone0.050618s3.848083s
Success
etc_conf.cSuccessNone0.044925s4.214890s
Success
fchdir.cSuccessNone0.053774s4.322972s
Success
fchmod.cSuccessNone0.055923s4.242462s
Success
fcntl.cSuccessNone0.050330s4.233628s
Success
fdatasync.cSuccessNone0.048156s4.227581s
Success
filetest.cSuccessNone0.051310s3.844317s
Success
filetest1000.cSuccessNone0.057914s3.854488s
Success
flock.cSuccessNone0.059115s4.370926s
Success
fstat.cSuccessNone0.051643s4.297741s
Success
fstatfs.cSuccessNone0.046036s4.207646s
Success
fsync.cSuccessNone0.048213s4.217796s
Success
ftruncate.cSuccessNone0.054602s4.267173s
Success
getcwd.cSuccessNone0.047132s4.286080s
Success
getrandom.cSuccessNone0.052326s4.275056s
Success
ioctl.cSuccessNone0.053016s4.237008s
Success
link.cSuccessNone0.053135s4.238992s
Success
locale_test.cSuccessNone0.063919s6.011816s
Success
lseek.cSuccessNone0.054779s4.303530s
Success
mkdir_rmdir.cSuccessNone0.051886s4.291524s
Success
nocancel_io.cSuccessNone0.053827s5.558121s
Success
open.cSuccessNone0.045151s4.245249s
Success
pread_pwrite.cSuccessNone0.047014s4.217148s
Success
printf.cSuccessNone0.041742s3.831169s
Success
read.cSuccessNone0.050622s4.201253s
Success
readbytes.cSuccessNone0.048324s3.843066s
Success
readlink.cSuccessNone0.051764s4.257686s
Success
readlinkat.cSuccessNone0.053210s4.249414s
Success
rename.cSuccessNone0.052682s4.227021s
Success
sc-writev.cSuccessNone0.050742s4.240871s
Success
stat.cSuccessNone0.050619s4.221307s
Success
statfs.cSuccessNone0.046923s4.274999s
Success
sync_file_range.cSuccessNone0.048227s4.235883s
Success
truncate.cSuccessNone0.051487s4.232558s
Success
unlink.cSuccessNone0.054027s4.276584s
Success
unlinkat.cSuccessNone0.052004s4.262101s
Success
write.cSuccessNone0.043740s3.809587s
Success
writeloop.cSuccessNone0.053664s3.860867s
Success
writepartial.cSuccessNone0.051437s3.818481s
Success
writev.cSuccessNone0.051595s4.246120s
Success
Math Tests
math_link_smoke.cSuccessNone0.054620s3.884010s
Success
math_tests.cSuccessNone0.058178s4.104195s
Success
Memory Tests
brk.cSuccessNone0.050216s4.305807s
Success
malloc.cSuccessNone0.049007s3.878125s
Success
malloc_large.cSuccessNone0.051199s4.303371s
Success
memcpy.cSuccessNone0.048463s3.983142s
Success
memory_error_test.cSuccessNone0.054423s4.320782s
Success
mmap.cSuccessNone0.046597s4.261122s
Success
mmap_aligned.cSuccessNone0.045669s4.299143s
Success
mmap_complicated.cSuccessNone0.050917s4.315770s
Success
mmap_file.cSuccessNone0.053919s4.306684s
Success
mmap_shared.cSuccessNone0.051646s4.308464s
Success
mmaptest.cSuccessNone0.048324s4.305293s
Success
mprotect.cSuccessNone0.048221s4.326185s
Success
mprotect_boundary.cSuccessNone0.045461s4.243896s
Success
mprotect_end_region.cSuccessNone0.044893s4.254646s
Success
mprotect_middle_region.cSuccessNone0.045312s4.259333s
Success
mprotect_multiple_times.cSuccessNone0.045805s4.276772s
Success
mprotect_same_value.cSuccessNone0.046684s4.266228s
Success
mprotect_spanning_regions.cSuccessNone0.045761s4.266386s
Success
sbrk.cSuccessNone0.049449s4.292014s
Success
segfault.cSuccessNone0.053843s4.437435s
Success
shm.cSuccessNone0.051194s4.292305s
Success
shmtest.cSuccessNone0.046590s4.261905s
Success
tcache_test.cSuccessNone0.057648s4.502866s
Success
vtable.cSuccessNone0.059970s3.894510s
Success
Networking Tests
dnstest.cSuccessNone0.052964s4.259329s
Success
epollcreate1.cSuccessNone0.054430s4.326327s
Success
error_handling_net.cSuccessNone0.058621s4.298336s
Success
getaddrinfo_test.cSuccessNone0.056975s6.025701s
Success
gethostname.cSuccessNone0.045455s3.864805s
Success
getsockname.cSuccessNone0.053148s4.234322s
Success
getsockopt.cSuccessNone0.055840s4.295453s
Success
makepipe.cSuccessNone0.046172s3.901696s
Success
nonblocking_eagain.cSuccessNone0.057421s4.357799s
Success
pipe.cSuccessNone0.055183s4.252711s
Success
pipe2.cSuccessNone0.054706s4.257284s
Success
pipeinput.cSuccessNone0.055473s4.287477s
Success
pipeinput2.cSuccessNone0.054875s4.300753s
Success
pipeonestring.cSuccessNone0.054999s4.344254s
Success
pipepong.cSuccessNone0.055117s4.352563s
Success
pipewrite.cSuccessNone0.047797s4.238876s
Success
poll.cSuccessNone0.051149s4.243048s
Success
recvfrom-sendto.cSuccessNone0.052980s4.286144s
Success
serverclient.cSuccessNone0.054862s3.969811s
Success
shutdown.cSuccessNone0.054704s3.918508s
Success
shutdown_fork.cSuccessNone0.052176s4.288647s
Success
simple-select.cSuccessNone0.055649s4.347013s
Success
simple_epoll.cSuccessNone0.052526s4.257425s
Success
socket.cSuccessNone0.050850s3.934178s
Success
socket_cloexec.cSuccessNone0.051918s4.242606s
Success
socket_options_advanced.cSuccessNone0.057363s4.288500s
Success
socketepoll.cSuccessNone0.050538s3.873109s
Success
socketpair.cSuccessNone0.050468s4.303602s
Success
socketselect.cSuccessNone0.052314s4.260091s
Success
tcp_connect_single.cSuccessNone0.053232s4.306470s
Success
uds-getsockname.cSuccessNone0.051376s4.292170s
Success
uds-socketselect.cSuccessNone0.052703s3.922302s
Success
writev_socket.cSuccessNone0.057476s4.333977s
Success
Process Tests
barrier_test.cSuccessNone0.050959s4.363007s
Success
chain_thread.cSuccessNone1.052040s5.397912s
Success
cxa_atexit_test.cSuccessNone0.046724s3.853684s
Success
exit.cSuccessNone0.047916s3.812254s
Success
flockfile_test.cSuccessNone0.050366s4.392626s
Success
fork2malloc.cSuccessNone0.052713s4.283243s
Success
fork_select.cSuccessNone0.049712s4.244500s
Success
fork_simple.cSuccessNone0.051132s4.258904s
Success
fork_syscall.cSuccessNone0.054330s4.307354s
Success
forkandopen.cSuccessNone0.051503s4.308107s
Success
forkdup.cSuccessNone0.058531s3.878086s
Success
forkexecuid.cSuccessNone0.048771s4.303663s
Success
forkexecv-arg.cSuccessNone0.049020s4.291763s
Success
forkexecv.cSuccessNone0.047599s4.292272s
Success
forkfiles.cSuccessNone0.051488s4.295879s
Success
forkmalloc.cSuccessNone0.051573s4.290999s
Success
forknodup.cSuccessNone0.053062s4.265831s
Success
function-ptr.cSuccessNone0.054385s4.193337s
Success
getegid_syscall.cSuccessNone0.051058s4.299588s
Success
getgid_syscall.cSuccessNone0.051703s4.278522s
Success
getpid.cSuccessNone0.044732s4.208411s
Success
getpid_syscall.cSuccessNone0.053150s4.306420s
Success
getppid.cSuccessNone0.051032s4.277862s
Success
getppid_syscall.cSuccessNone0.055462s4.301298s
Success
getuid.cSuccessNone0.051418s4.230293s
Success
getuid_syscall.cSuccessNone0.049737s4.281914s
Success
hello-arg.cSuccessNone0.041457s3.808607s
Success
hello.cSuccessNone0.041604s3.795133s
Success
longjmp.cSuccessNone0.042764s3.818713s
Success
mutex.cSuccessNone2.053306s6.487316s
Success
printf_deadlock_smoke.cSuccessNone0.059361s4.529698s
Success
printf_thread_test.cSuccessNone0.049224s4.388978s
Success
sem_forks.cSuccessNone0.053308s4.274951s
Success
setsid.cSuccessNone0.043640s3.816818s
Success
template.cSuccessNone0.050565s4.256687s
Success
test_exec_nofork.cSuccessNone0.049251s4.211572s
Success
test_unlink_open_file.cSuccessNone0.046804s3.835460s
Success
thread-test.cSuccessNone0.045667s4.375779s
Success
thread.cSuccessNone0.045454s4.352944s
Success
thread_cageid_race.cSuccessNone0.046634s4.352295s
Success
tls_test.cSuccessNone0.048691s4.359006s
Success
uname.cSuccessNone0.044380s4.229623s
Success
wait.cSuccessNone2.047439s5.872710s
Success
waitpid_anychild.cSuccessNone0.051393s4.290173s
Success
waitpid_syscall.cSuccessNone1.050468s5.271476s
Success
waitpid_wnohang.cSuccessNone0.051480s3.879888s
Success
Signal Tests
alarm.cSuccessNone7.051582s10.932244s
Success
setitimer.cSuccessNone7.052659s10.944298s
Success
sigalrm.cSuccessNone2.052478s5.884932s
Success
sigchld.cSuccessNone1.052280s4.931134s
Success
signal-fork.cSuccessNone4.056050s7.926820s
Success
signal-simple.cSuccessNone0.052047s3.911378s
Success
signal.cSuccessNone0.049367s3.902531s
Success
signal_SIGCHLD.cSuccessNone0.050274s4.279759s
Success
signal_fork.cSuccessNone0.047874s4.287826s
Success
signal_int_ignored.cSuccessNone2.053065s6.324682s
Success
signal_int_thread.cSuccessNone0.049654s4.387854s
Success
signal_longjmp.cSuccessNone0.050176s3.878378s
Success
signal_nodefer.cSuccessNone0.048447s3.881759s
Success
signal_procmask.cSuccessNone0.046913s4.230109s
Success
signal_recursive.cSuccessNone0.046140s3.856508s
Success
signal_sa_mask.cSuccessNone0.046394s3.849866s
Success
sigpipe.cSuccessNone1.053648s5.303662s
Success
sigprocmask.cSuccessNone1.051182s4.881945s
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.112083s4.410489s
Success
mmap-negative2.cSuccessNone0.111124s4.110191s
Success
Signal Tests
signal_resethand.cSuccessNone1.051714s3.940762s
Success

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases175
Number of Successes175
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.047251s4.248075s
Success
chdir_getcwd.cSuccessNone0.048745s4.301456s
Success
chmod.cSuccessNone0.053539s4.274033s
Success
clock_gettime_highlevel.cSuccessNone0.119204s4.468895s
Success
clock_gettime_simple.cSuccessNone0.042169s4.262440s
Success
cloexec.cSuccessNone0.052790s3.900107s
Success
close.cSuccessNone0.059052s4.305186s
Success
creat_access.cSuccessNone0.052539s4.259395s
Success
doubleclose.cSuccessNone0.042369s3.829933s
Success
dup.cSuccessNone0.043992s4.219907s
Success
dup2.cSuccessNone0.050678s3.899218s
Success
dup3.cSuccessNone0.046286s4.247764s
Success
dupwrite.cSuccessNone0.050079s3.860606s
Success
etc_conf.cSuccessNone0.045658s4.256692s
Success
fchdir.cSuccessNone0.052594s4.261774s
Success
fchmod.cSuccessNone0.054771s4.276730s
Success
fcntl.cSuccessNone0.049793s4.246405s
Success
fdatasync.cSuccessNone0.048924s4.226647s
Success
filetest.cSuccessNone0.049860s3.886650s
Success
filetest1000.cSuccessNone0.058523s3.865857s
Success
flock.cSuccessNone0.058902s4.353261s
Success
fstat.cSuccessNone0.051320s4.264850s
Success
fstatfs.cSuccessNone0.044804s4.302373s
Success
fsync.cSuccessNone0.048522s4.222260s
Success
ftruncate.cSuccessNone0.054324s4.296675s
Success
getcwd.cSuccessNone0.047647s4.275718s
Success
getrandom.cSuccessNone0.051561s4.274895s
Success
ioctl.cSuccessNone0.054915s4.261254s
Success
link.cSuccessNone0.052745s4.269807s
Success
locale_test.cSuccessNone0.063995s6.006647s
Success
lseek.cSuccessNone0.054844s4.288904s
Success
mkdir_rmdir.cSuccessNone0.051544s4.243079s
Success
nocancel_io.cSuccessNone0.054155s5.571974s
Success
open.cSuccessNone0.045429s4.279929s
Success
pread_pwrite.cSuccessNone0.047222s4.257361s
Success
printf.cSuccessNone0.042573s3.854665s
Success
read.cSuccessNone0.050522s4.225331s
Success
readbytes.cSuccessNone0.047759s3.838712s
Success
readlink.cSuccessNone0.050792s4.242163s
Success
readlinkat.cSuccessNone0.052260s4.268805s
Success
rename.cSuccessNone0.054673s4.269682s
Success
sc-writev.cSuccessNone0.049849s4.230782s
Success
stat.cSuccessNone0.050837s4.230901s
Success
statfs.cSuccessNone0.045616s4.274509s
Success
sync_file_range.cSuccessNone0.048200s4.214226s
Success
truncate.cSuccessNone0.052761s4.271720s
Success
unlink.cSuccessNone0.053446s4.293942s
Success
unlinkat.cSuccessNone0.052028s4.273463s
Success
write.cSuccessNone0.044015s3.820235s
Success
writeloop.cSuccessNone0.052691s3.841754s
Success
writepartial.cSuccessNone0.051521s3.858032s
Success
writev.cSuccessNone0.053542s4.239406s
Success
Math Tests
math_link_smoke.cSuccessNone0.055517s3.878467s
Success
math_tests.cSuccessNone0.058017s4.021608s
Success
Memory Tests
brk.cSuccessNone0.048640s4.248302s
Success
malloc.cSuccessNone0.045579s3.866808s
Success
malloc_large.cSuccessNone0.048406s4.221811s
Success
memcpy.cSuccessNone0.046676s3.853317s
Success
memory_error_test.cSuccessNone0.052138s4.243315s
Success
mmap.cSuccessNone0.043337s4.224437s
Success
mmap_aligned.cSuccessNone0.045589s4.272894s
Success
mmap_complicated.cSuccessNone0.050130s4.261262s
Success
mmap_file.cSuccessNone0.052260s4.234697s
Success
mmap_shared.cSuccessNone0.051117s4.299277s
Success
mmaptest.cSuccessNone0.046855s4.285643s
Success
mprotect.cSuccessNone0.045110s4.250269s
Success
mprotect_boundary.cSuccessNone0.044769s4.217363s
Success
mprotect_end_region.cSuccessNone0.044062s4.246710s
Success
mprotect_middle_region.cSuccessNone0.044872s4.235495s
Success
mprotect_multiple_times.cSuccessNone0.043649s4.236673s
Success
mprotect_same_value.cSuccessNone0.044584s4.220718s
Success
mprotect_spanning_regions.cSuccessNone0.044688s4.242557s
Success
sbrk.cSuccessNone0.045868s4.264878s
Success
segfault.cSuccessNone0.051457s4.286045s
Success
shm.cSuccessNone0.051134s4.304293s
Success
shmtest.cSuccessNone0.045216s4.217407s
Success
tcache_test.cSuccessNone0.053556s4.414950s
Success
vtable.cSuccessNone0.057374s3.874580s
Success
Networking Tests
dnstest.cSuccessNone0.051004s4.241045s
Success
epollcreate1.cSuccessNone0.053228s4.269513s
Success
error_handling_net.cSuccessNone0.058766s4.306679s
Success
getaddrinfo_test.cSuccessNone0.055587s6.016747s
Success
gethostname.cSuccessNone0.044421s3.859069s
Success
getsockname.cSuccessNone0.052236s4.281695s
Success
getsockopt.cSuccessNone0.054910s4.255818s
Success
makepipe.cSuccessNone0.044071s3.828141s
Success
nonblocking_eagain.cSuccessNone0.055758s4.299128s
Success
pipe.cSuccessNone0.053279s4.283058s
Success
pipe2.cSuccessNone0.052686s4.233755s
Success
pipeinput.cSuccessNone0.053572s4.276971s
Success
pipeinput2.cSuccessNone0.054267s4.280426s
Success
pipeonestring.cSuccessNone0.055697s4.297634s
Success
pipepong.cSuccessNone0.053284s4.317611s
Success
pipewrite.cSuccessNone0.046933s4.202838s
Success
poll.cSuccessNone0.051185s4.238024s
Success
recvfrom-sendto.cSuccessNone0.053695s4.268764s
Success
serverclient.cSuccessNone0.051691s3.866543s
Success
shutdown.cSuccessNone0.053294s3.884573s
Success
shutdown_fork.cSuccessNone0.052406s4.285941s
Success
simple-select.cSuccessNone0.052841s4.288193s
Success
simple_epoll.cSuccessNone0.051311s4.260947s
Success
socket.cSuccessNone0.050318s3.862100s
Success
socket_cloexec.cSuccessNone0.050218s4.231630s
Success
socket_options_advanced.cSuccessNone0.055668s4.266739s
Success
socketepoll.cSuccessNone0.054660s3.875724s
Success
socketpair.cSuccessNone0.049076s4.302846s
Success
socketselect.cSuccessNone0.051632s4.218548s
Success
tcp_connect_single.cSuccessNone0.052595s4.267338s
Success
uds-getsockname.cSuccessNone0.051062s4.261961s
Success
uds-socketselect.cSuccessNone0.051781s3.866269s
Success
writev_socket.cSuccessNone0.054247s4.277429s
Success
Process Tests
barrier_test.cSuccessNone0.051906s4.385543s
Success
chain_thread.cSuccessNone1.051375s5.383281s
Success
cxa_atexit_test.cSuccessNone0.047210s3.844081s
Success
exit.cSuccessNone0.048568s3.824446s
Success
flockfile_test.cSuccessNone0.051010s4.421031s
Success
fork2malloc.cSuccessNone0.052684s4.276006s
Success
fork_select.cSuccessNone0.050513s4.268126s
Success
fork_simple.cSuccessNone0.049300s4.279818s
Success
fork_syscall.cSuccessNone0.056447s4.320379s
Success
forkandopen.cSuccessNone0.051806s4.273249s
Success
forkdup.cSuccessNone0.059279s3.893026s
Success
forkexecuid.cSuccessNone0.049865s4.287871s
Success
forkexecv-arg.cSuccessNone0.050705s4.287361s
Success
forkexecv.cSuccessNone0.047710s4.267439s
Success
forkfiles.cSuccessNone0.058674s4.316658s
Success
forkmalloc.cSuccessNone0.051657s4.298691s
Success
forknodup.cSuccessNone0.051661s4.276188s
Success
function-ptr.cSuccessNone0.056843s4.234142s
Success
getegid_syscall.cSuccessNone0.051354s4.298225s
Success
getgid_syscall.cSuccessNone0.052005s4.285154s
Success
getpid.cSuccessNone0.044407s4.207379s
Success
getpid_syscall.cSuccessNone0.052975s4.303313s
Success
getppid.cSuccessNone0.051651s4.278988s
Success
getppid_syscall.cSuccessNone0.055038s4.302219s
Success
getuid.cSuccessNone0.052761s4.243466s
Success
getuid_syscall.cSuccessNone0.050495s4.301718s
Success
hello-arg.cSuccessNone0.041864s3.827494s
Success
hello.cSuccessNone0.041981s3.838661s
Success
longjmp.cSuccessNone0.042888s3.845442s
Success
mutex.cSuccessNone2.053326s6.501819s
Success
printf_deadlock_smoke.cSuccessNone0.060429s4.571591s
Success
printf_thread_test.cSuccessNone0.049315s4.422449s
Success
sem_forks.cSuccessNone0.053285s4.289874s
Success
setsid.cSuccessNone0.043692s3.836945s
Success
template.cSuccessNone0.052181s4.281782s
Success
test_exec_nofork.cSuccessNone0.049713s4.242912s
Success
test_unlink_open_file.cSuccessNone0.046523s3.820202s
Success
thread-test.cSuccessNone0.046032s4.352801s
Success
thread.cSuccessNone0.045889s4.370628s
Success
thread_cageid_race.cSuccessNone0.047131s4.375915s
Success
tls_test.cSuccessNone0.048973s4.380841s
Success
uname.cSuccessNone0.044184s4.227248s
Success
wait.cSuccessNone2.047577s5.914592s
Success
waitpid_anychild.cSuccessNone0.051058s4.268312s
Success
waitpid_syscall.cSuccessNone1.051194s5.273967s
Success
waitpid_wnohang.cSuccessNone0.052712s3.882529s
Success
Signal Tests
alarm.cSuccessNone7.050837s10.919899s
Success
setitimer.cSuccessNone7.050397s10.891337s
Success
sigalrm.cSuccessNone2.051120s5.901461s
Success
sigchld.cSuccessNone1.053029s4.950559s
Success
signal-fork.cSuccessNone4.052566s7.948455s
Success
signal-simple.cSuccessNone0.051708s3.864233s
Success
signal.cSuccessNone0.047281s3.858894s
Success
signal_SIGCHLD.cSuccessNone0.049972s4.315340s
Success
signal_fork.cSuccessNone0.049454s4.303550s
Success
signal_int_ignored.cSuccessNone2.051276s6.309870s
Success
signal_int_thread.cSuccessNone0.049435s4.443192s
Success
signal_longjmp.cSuccessNone0.058705s3.876229s
Success
signal_nodefer.cSuccessNone0.047909s3.864796s
Success
signal_procmask.cSuccessNone0.046171s4.275020s
Success
signal_recursive.cSuccessNone0.045248s3.848283s
Success
signal_sa_mask.cSuccessNone0.046140s3.864985s
Success
sigpipe.cSuccessNone1.053984s5.328808s
Success
sigprocmask.cSuccessNone1.051394s4.901107s
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.115868s4.415960s
Success
mmap-negative2.cSuccessNone0.169964s4.069905s
Success
Signal Tests
signal_resethand.cSuccessNone1.050621s3.917350s
Success

@vidyalakshmir

Copy link
Copy Markdown
Contributor Author

@rennergade Improved the motivation, design decisions and improved implementation details including dlopen/dlsym.

The following have to be added:

  • Integration with lind-boot
  • Details about memory
  • More info about fork, signals etc

Comment thread docs/internal/dynamicloading.md Outdated
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total9
Success9
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: 2
[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: 2
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 2 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: 2
Exiting...

[Grate|interpose-exit] Handling function ptr: 2 from cage: 1
[Grate|interpose-exit] In exit_grate 1 handler for cage: 1
[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: 2
[Grate|interpose-fork] Handling function ptr: 2 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: 2
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 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: 3
[Cage|interpose-register] In cage 2, about to register handler for geteuid
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 0 with fn ptr addr: 7021753225191620609
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Cage|interpose-register] PASS: geteuid ret = 10
[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: 2
[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: 2 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/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: 2
[Grate|geteuid] Handling function ptr: 2 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 Cases179
Number of Successes179
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.051711s4.338646s
Success
chdir_getcwd.cSuccessNone0.052042s4.288036s
Success
chmod.cSuccessNone0.057017s4.322029s
Success
clock_gettime_highlevel.cSuccessNone0.123649s4.471022s
Success
clock_gettime_simple.cSuccessNone0.044868s4.286707s
Success
cloexec.cSuccessNone0.057284s3.941171s
Success
close.cSuccessNone0.062579s4.280042s
Success
creat_access.cSuccessNone0.054587s4.332161s
Success
doubleclose.cSuccessNone0.046885s3.892239s
Success
dup.cSuccessNone0.048086s4.278940s
Success
dup2.cSuccessNone0.053824s3.889160s
Success
dup3.cSuccessNone0.051043s4.320746s
Success
dupwrite.cSuccessNone0.055674s3.920519s
Success
etc_conf.cSuccessNone0.049517s4.338293s
Success
fchdir.cSuccessNone0.057241s4.330038s
Success
fchmod.cSuccessNone0.079451s4.313431s
Success
fcntl.cSuccessNone0.055173s4.269306s
Success
fdatasync.cSuccessNone0.054158s4.276763s
Success
filetest.cSuccessNone0.054541s3.903025s
Success
filetest1000.cSuccessNone0.062838s3.906516s
Success
flock.cSuccessNone0.062947s4.387621s
Success
fstat.cSuccessNone0.055650s4.291341s
Success
fstatfs.cSuccessNone0.050815s4.296529s
Success
fsync.cSuccessNone0.053896s4.252986s
Success
ftruncate.cSuccessNone0.057255s4.327393s
Success
getcwd.cSuccessNone0.049215s4.303576s
Success
getrandom.cSuccessNone0.053986s4.282826s
Success
ioctl.cSuccessNone0.067718s4.300617s
Success
link.cSuccessNone0.058945s4.321246s
Success
locale_test.cSuccessNone0.067727s6.143303s
Success
lseek.cSuccessNone0.058151s4.330398s
Success
mkdir_rmdir.cSuccessNone0.054733s4.334554s
Success
mknod.cSuccessNone0.054594s4.353703s
Success
nocancel_io.cSuccessNone0.056594s5.672172s
Success
open.cSuccessNone0.049567s4.329403s
Success
path_conversion_safety.cSuccessNone0.058387s4.307754s
Success
pread_pwrite.cSuccessNone0.052385s4.323576s
Success
printf.cSuccessNone0.045548s3.891592s
Success
read.cSuccessNone0.056124s4.288322s
Success
readbytes.cSuccessNone0.051969s3.902618s
Success
readlink.cSuccessNone0.055273s4.296706s
Success
readlinkat.cSuccessNone0.055016s4.300452s
Success
readv_writev_test.cSuccessNone0.057239s4.258252s
Success
rename.cSuccessNone0.057139s4.290363s
Success
sc-writev.cSuccessNone0.051437s4.312618s
Success
stat.cSuccessNone0.054343s4.303778s
Success
statfs.cSuccessNone0.050375s4.286669s
Success
sync_file_range.cSuccessNone0.053038s4.262500s
Success
truncate.cSuccessNone0.055310s4.354643s
Success
unlink.cSuccessNone0.057447s4.341314s
Success
unlinkat.cSuccessNone0.056942s4.312954s
Success
write.cSuccessNone0.046277s3.891712s
Success
writeloop.cSuccessNone0.057426s3.893751s
Success
writepartial.cSuccessNone0.056363s3.870055s
Success
writev.cSuccessNone0.057102s4.301867s
Success
Math Tests
math_link_smoke.cSuccessNone0.059870s3.907223s
Success
math_tests.cSuccessNone0.064126s4.056717s
Success
Memory Tests
brk.cSuccessNone0.052780s4.264376s
Success
fork_large_memory.cSuccessNone0.088437s4.839330s
Success
malloc.cSuccessNone0.050504s3.890006s
Success
malloc_large.cSuccessNone0.050944s4.257176s
Success
memcpy.cSuccessNone0.051790s3.887005s
Success
memory_error_test.cSuccessNone0.057283s4.317278s
Success
mmap.cSuccessNone0.048833s4.265494s
Success
mmap_aligned.cSuccessNone0.050719s4.304314s
Success
mmap_complicated.cSuccessNone0.052634s4.330247s
Success
mmap_file.cSuccessNone0.055703s4.294351s
Success
mmap_shared.cSuccessNone0.052678s4.317087s
Success
mmaptest.cSuccessNone0.048414s4.258872s
Success
mprotect.cSuccessNone0.049257s4.281889s
Success
mprotect_boundary.cSuccessNone0.048498s4.292967s
Success
mprotect_end_region.cSuccessNone0.047807s4.298545s
Success
mprotect_middle_region.cSuccessNone0.047464s4.290782s
Success
mprotect_multiple_times.cSuccessNone0.048633s4.288936s
Success
mprotect_same_value.cSuccessNone0.047629s4.283317s
Success
mprotect_spanning_regions.cSuccessNone0.050561s4.308269s
Success
sbrk.cSuccessNone0.048985s4.296332s
Success
segfault.cSuccessNone0.056471s4.357654s
Success
shm.cSuccessNone0.057118s4.357450s
Success
shmtest.cSuccessNone0.047836s4.266452s
Success
vtable.cSuccessNone0.063731s3.977333s
Success
Networking Tests
dnstest.cSuccessNone0.054082s4.280511s
Success
epollcreate1.cSuccessNone0.056607s4.316859s
Success
error_handling_net.cSuccessNone0.063915s4.376404s
Success
getaddrinfo_test.cSuccessNone0.060298s6.097925s
Success
gethostname.cSuccessNone0.047297s3.905437s
Success
getifaddrs.cSuccessNone0.058223s4.364790s
Success
getsockname.cSuccessNone0.057402s4.331369s
Success
getsockopt.cSuccessNone0.059215s4.331103s
Success
makepipe.cSuccessNone0.047333s3.845462s
Success
nonblocking_eagain.cSuccessNone0.060193s4.359177s
Success
pipe.cSuccessNone0.058354s4.329793s
Success
pipe2.cSuccessNone0.055746s4.250224s
Success
pipeinput.cSuccessNone0.057151s4.332121s
Success
pipeinput2.cSuccessNone0.059240s4.321420s
Success
pipeonestring.cSuccessNone0.058693s4.319045s
Success
pipepong.cSuccessNone0.058152s4.382691s
Success
pipewrite.cSuccessNone0.050997s4.258647s
Success
poll.cSuccessNone0.055700s4.291803s
Success
recvfrom-sendto.cSuccessNone0.057223s4.322373s
Success
sendmsg_recvmsg_test.cSuccessNone0.055826s4.254677s
Success
serverclient.cSuccessNone0.055890s3.908144s
Success
shutdown.cSuccessNone0.057820s3.926112s
Success
shutdown_fork.cSuccessNone0.056175s4.356738s
Success
simple-select.cSuccessNone0.058940s4.336831s
Success
simple_epoll.cSuccessNone0.056443s4.337786s
Success
socket.cSuccessNone0.054265s3.899586s
Success
socket_cloexec.cSuccessNone0.053075s4.291859s
Success
socket_options_advanced.cSuccessNone0.060187s4.333113s
Success
socketepoll.cSuccessNone0.055612s3.890196s
Success
socketpair.cSuccessNone0.052850s4.308126s
Success
socketselect.cSuccessNone0.055599s4.298494s
Success
tcp_connect_single.cSuccessNone0.057526s4.314910s
Success
uds-getsockname.cSuccessNone0.055274s4.335204s
Success
uds-nb-select.cSuccessNone2.066047s6.557022s
Success
uds-serverclient.cSuccessNone0.061171s4.369028s
Success
uds-socketselect.cSuccessNone0.056462s3.918317s
Success
writev_socket.cSuccessNone0.059473s4.311176s
Success
Process Tests
barrier_test.cSuccessNone0.055497s4.465804s
Success
chain_thread.cSuccessNone1.055804s5.434588s
Success
cxa_atexit_test.cSuccessNone0.050569s3.933416s
Success
exit.cSuccessNone0.051846s3.905011s
Success
flockfile_test.cSuccessNone0.054788s4.493647s
Success
fork2malloc.cSuccessNone0.058237s4.400413s
Success
fork_select.cSuccessNone0.054878s4.335902s
Success
fork_simple.cSuccessNone0.052669s4.327390s
Success
fork_syscall.cSuccessNone0.060150s4.445331s
Success
fork_tls_ctype.cSuccessNone0.058938s4.373010s
Success
forkandopen.cSuccessNone0.059071s4.367826s
Success
forkdup.cSuccessNone0.056410s3.973304s
Success
forkexecuid.cSuccessNone0.052689s4.335131s
Success
forkexecv-arg.cSuccessNone0.054485s4.338016s
Success
forkexecv.cSuccessNone0.084611s4.356204s
Success
forkfiles.cSuccessNone0.054878s4.324513s
Success
forkmalloc.cSuccessNone0.066835s4.359605s
Success
forknodup.cSuccessNone0.057368s4.338363s
Success
function-ptr.cSuccessNone0.051661s4.287567s
Success
getegid_syscall.cSuccessNone0.056912s4.365100s
Success
getgid_syscall.cSuccessNone0.056151s4.381060s
Success
getpid.cSuccessNone0.047964s4.281530s
Success
getpid_syscall.cSuccessNone0.057121s4.382027s
Success
getppid.cSuccessNone0.058974s4.354672s
Success
getppid_syscall.cSuccessNone0.058827s4.379639s
Success
getuid.cSuccessNone0.056118s4.282639s
Success
getuid_syscall.cSuccessNone0.056696s4.413448s
Success
hello-arg.cSuccessNone0.048675s3.973264s
Success
hello.cSuccessNone0.045845s3.907813s
Success
longjmp.cSuccessNone0.046343s3.902148s
Success
mutex.cSuccessNone2.061619s6.563233s
Success
printf_deadlock_smoke.cSuccessNone0.064749s4.589266s
Success
printf_thread_test.cSuccessNone0.054939s4.490423s
Success
sem_forks.cSuccessNone0.056858s4.401266s
Success
setsid.cSuccessNone0.048665s3.919506s
Success
template.cSuccessNone0.055664s4.334335s
Success
test_exec_nofork.cSuccessNone0.053830s4.309408s
Success
test_unlink_open_file.cSuccessNone0.051124s3.875037s
Success
thread-test.cSuccessNone0.051258s4.450646s
Success
thread.cSuccessNone0.048719s4.473597s
Success
thread_cageid_race.cSuccessNone0.052107s4.453267s
Success
tls_test.cSuccessNone0.053505s4.472388s
Success
uname.cSuccessNone0.048949s4.305014s
Success
wait.cSuccessNone2.052918s5.958209s
Success
waitpid_anychild.cSuccessNone0.055442s4.341195s
Success
waitpid_syscall.cSuccessNone1.057377s5.350679s
Success
waitpid_wnohang.cSuccessNone0.055349s3.946453s
Success
Signal Tests
alarm.cSuccessNone7.054028s10.906034s
Success
setitimer.cSuccessNone7.053728s10.928474s
Success
sigalrm.cSuccessNone2.054234s5.918449s
Success
sigchld.cSuccessNone1.058249s4.946081s
Success
signal-fork.cSuccessNone4.056136s7.962937s
Success
signal-simple.cSuccessNone0.056543s3.943219s
Success
signal_SIGCHLD.cSuccessNone0.053431s4.342687s
Success
signal_fork.cSuccessNone0.052476s4.366412s
Success
signal_int_ignored.cSuccessNone2.055418s6.377941s
Success
signal_procmask.cSuccessNone0.049318s4.307368s
Success
signal_recursive.cSuccessNone0.051088s3.912436s
Success
signal_sa_mask.cSuccessNone0.051026s3.927010s
Success
sigpipe.cSuccessNone1.059451s5.351347s
Success
sigprocmask.cSuccessNone1.055026s4.960506s
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.114937s4.156969s
Success
mmap-negative2.cSuccessNone0.221105s4.114166s
Success
Signal Tests
signal_resethand.cSuccessNone1.054557s3.970499s
Success

Comment thread docs/internal/dynamicloading.md Outdated
Comment thread docs/internal/dynamicloading.md Outdated
Comment thread docs/internal/dynamicloading.md Outdated
Comment thread docs/internal/dynamicloading.md Outdated
Comment thread docs/internal/dynamicloading.md Outdated
@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.057685s3.922267s
Success
thread.cSuccessNone0.047486s4.006965s
Success
tls_test.cSuccessNone0.050783s3.996601s
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.047649s0.147358s
Success
chdir_getcwd.cSuccessNone0.048288s0.117574s
Success
chmod.cSuccessNone0.053406s0.130651s
Success
clock_gettime_highlevel.cSuccessNone0.122328s0.162401s
Success
clock_gettime_simple.cSuccessNone0.041650s0.107338s
Success
cloexec.cSuccessNone0.052874s0.142688s
Success
close.cSuccessNone0.058988s0.139671s
Success
creat_access.cSuccessNone0.054244s0.118463s
Success
doubleclose.cSuccessNone0.042551s0.100784s
Success
dup.cSuccessNone0.043523s0.118233s
Success
dup2.cSuccessNone0.049791s0.117922s
Success
dup3.cSuccessNone0.049141s0.117490s
Success
dupwrite.cSuccessNone0.051136s0.117735s
Success
etc_conf.cSuccessNone0.045999s0.120590s
Success
faccessat.cSuccessNone0.046334s0.116588s
Success
fchdir.cSuccessNone0.054783s0.129175s
Success
fchmod.cSuccessNone0.052585s0.130618s
Success
fchmodat.cSuccessNone0.046492s0.117657s
Success
fcntl.cSuccessNone0.050457s0.131719s
Success
fcntl_dupfd.cSuccessNone0.043683s0.110041s
Success
fdatasync.cSuccessNone0.049636s0.114595s
Success
filetest.cSuccessNone0.050777s0.115634s
Success
filetest1000.cSuccessNone0.058685s0.127962s
Success
flock.cSuccessNone0.058535s0.165864s
Success
fstat.cSuccessNone0.052943s0.132380s
Success
fstatfs.cSuccessNone0.045749s0.110892s
Success
fsync.cSuccessNone0.049000s0.113328s
Success
ftruncate.cSuccessNone0.054213s0.207978s
Success
getcwd.cSuccessNone0.046741s0.108357s
Success
getcwd_null.cSuccessNone0.051580s0.123326s
Success
getpgid.cSuccessNone0.044419s0.104166s
Success
getrandom.cSuccessNone0.050037s0.128537s
Success
ioctl.cSuccessNone0.052746s0.124957s
Success
link.cSuccessNone0.054695s0.159395s
Success
locale_test.cSuccessNone0.065268s0.312721s
Success
lseek.cSuccessNone0.055136s0.193150s
Success
lstat.cSuccessNone0.054158s0.138360s
Success
mkdir_rmdir.cSuccessNone0.051235s0.119651s
Success
mkfifo_test.cSuccessNone0.057110s0.168528s
Success
mknod.cSuccessNone0.049702s0.125326s
Success
nocancel_io.cSuccessNone0.053641s0.140260s
Success
open.cSuccessNone0.046559s0.107223s
Success
openat.cSuccessNone0.046064s0.112642s
Success
path_conversion_safety.cSuccessNone0.053997s0.137437s
Success
ppoll.cSuccessNone0.055659s0.127310s
Success
pread_pwrite.cSuccessNone0.048108s0.122710s
Success
preadv_pwritev.cSuccessNone0.053778s0.134283s
Success
printf.cSuccessNone0.042405s0.102418s
Success
prlimit64.cSuccessNone0.044582s0.107728s
Success
read.cSuccessNone0.052363s0.128920s
Success
readbytes.cSuccessNone0.047437s0.110369s
Success
readdir_basic.cSuccessNone0.054919s0.150803s
Success
readlink.cSuccessNone0.051312s0.124226s
Success
readlinkat.cSuccessNone0.052867s0.127265s
Success
readv_writev_test.cSuccessNone0.053210s0.130815s
Success
rename.cSuccessNone0.053826s0.119907s
Success
renameat.cSuccessNone0.054177s0.136913s
Success
sc-writev.cSuccessNone0.049224s0.117315s
Success
stat.cSuccessNone0.052884s0.131243s
Success
statfs.cSuccessNone0.045244s0.109050s
Success
symlink.cSuccessNone0.053570s0.149540s
Success
sync_file_range.cSuccessNone0.048642s0.114349s
Success
timespec_time_t_compat.cSuccessNone0.048218s0.110258s
Success
trailing_slash.cSuccessNone0.048911s0.121990s
Success
truncate.cSuccessNone0.051880s0.139993s
Success
unlink.cSuccessNone0.053277s0.154224s
Success
unlinkat.cSuccessNone0.052738s0.135426s
Success
utimensat.cSuccessNone0.052025s0.135585s
Success
write.cSuccessNone0.044634s0.102471s
Success
writeloop.cSuccessNone0.053630s0.120762s
Success
writepartial.cSuccessNone0.051907s0.111075s
Success
writev.cSuccessNone0.052225s0.125539s
Success
Math Tests
math_link_smoke.cSuccessNone0.054986s0.110019s
Success
math_tests.cSuccessNone0.059324s0.139034s
Success
printf_float.cSuccessNone0.056247s0.134638s
Success
Memory Tests
brk.cSuccessNone0.050822s0.118768s
Success
fork_large_memory.cSuccessNone0.089513s0.464270s
Success
malloc.cSuccessNone0.049068s0.107099s
Success
malloc_large.cSuccessNone0.049436s0.109655s
Success
memcpy.cSuccessNone0.061977s0.142558s
Success
memory_error_test.cSuccessNone0.061509s0.152236s
Success
mmap.cSuccessNone0.046507s0.107863s
Success
mmap_aligned.cSuccessNone0.062524s0.151654s
Success
mmap_complicated.cSuccessNone0.072158s0.200324s
Success
mmap_file.cSuccessNone0.054121s0.125345s
Success
mmap_shared.cSuccessNone0.052101s0.140026s
Success
mmaptest.cSuccessNone0.048011s0.133081s
Success
mprotect.cSuccessNone0.045788s0.128986s
Success
mprotect_boundary.cSuccessNone0.048785s0.122094s
Success
mprotect_end_region.cSuccessNone0.044408s0.118137s
Success
mprotect_middle_region.cSuccessNone0.052326s0.138809s
Success
mprotect_multiple_times.cSuccessNone0.047778s0.120422s
Success
mprotect_same_value.cSuccessNone0.046151s0.115120s
Success
mprotect_spanning_regions.cSuccessNone0.049518s0.134399s
Success
munmap_adjacent_shm.cSuccessNone0.052883s0.130097s
Success
sbrk.cSuccessNone0.048360s0.112033s
Success
segfault.cSuccessNone0.054341s0.165011s
Success
shm.cSuccessNone0.053988s0.148349s
Success
shmtest.cSuccessNone0.045820s0.120480s
Success
thread_malloc_sequential.cSuccessNone0.056861s0.214549s
Success
vtable.cSuccessNone0.060766s0.129051s
Success
Networking Tests
accept4.cSuccessNone0.058523s0.139456s
Success
dns_resolve_test.cSuccessNone0.050681s0.120272s
Success
dnstest.cSuccessNone0.051478s0.118153s
Success
epoll_badfd.cSuccessNone0.045443s0.107759s
Success
epoll_edge_triggered.cSuccessNone0.209565s0.378774s
Success
epollcreate1.cSuccessNone0.052726s0.132108s
Success
error_handling_net.cSuccessNone0.060610s0.189258s
Success
getaddrinfo_test.cSuccessNone0.055930s0.155729s
Success
getaddrinfo_unspec.cSuccessNone0.056679s0.126966s
Success
gethostname.cSuccessNone0.044951s0.104466s
Success
getifaddrs.cSuccessNone0.053174s0.123973s
Success
getsockname.cSuccessNone0.052989s0.123497s
Success
getsockopt.cSuccessNone0.055147s0.158445s
Success
ipv6_basic.cSuccessNone0.056844s0.156437s
Success
makepipe.cSuccessNone0.044602s0.103470s
Success
nonblocking_eagain.cSuccessNone0.056410s0.164610s
Success
pipe.cSuccessNone0.054214s0.130495s
Success
pipe2.cSuccessNone0.053371s0.120887s
Success
pipeinput.cSuccessNone0.055051s0.153547s
Success
pipeinput2.cSuccessNone0.055179s0.156250s
Success
pipeonestring.cSuccessNone0.056012s0.153286s
Success
pipepong.cSuccessNone0.053380s0.157889s
Success
pipewrite.cSuccessNone0.047725s0.117155s
Success
poll.cSuccessNone0.051792s0.115743s
Success
recvfrom-sendto.cSuccessNone0.054480s0.131654s
Success
sendmsg_recvmsg_test.cSuccessNone0.052912s0.130600s
Success
serverclient.cSuccessNone0.053960s0.134993s
Success
shutdown.cSuccessNone0.054622s0.133653s
Success
shutdown_fork.cSuccessNone0.055698s0.140924s
Success
simple-select.cSuccessNone0.054838s0.156926s
Success
simple_epoll.cSuccessNone0.051348s0.126525s
Success
socket.cSuccessNone0.051584s0.120370s
Success
socket_cloexec.cSuccessNone0.050694s0.112512s
Success
socket_options_advanced.cSuccessNone0.057904s0.173670s
Success
socketepoll.cSuccessNone0.051306s0.117038s
Success
socketpair.cSuccessNone0.050871s0.135785s
Success
socketselect.cSuccessNone0.051602s0.124856s
Success
udp_send_recv.cSuccessNone0.160219s0.275326s
Success
uds-getsockname.cSuccessNone0.052129s0.116840s
Success
uds-nb-select.cSuccessNone2.061522s2.195495s
Success
uds-serverclient.cSuccessNone0.056178s0.160393s
Success
uds-socketselect.cSuccessNone0.051952s0.128459s
Success
uds_listen_poll.cSuccessNone1.059367s1.170649s
Success
writev_socket.cSuccessNone0.055414s0.157142s
Success
Process Tests
barrier_test.cSuccessNone0.050788s0.143228s
Success
chain_thread.cSuccessNone1.063620s1.165894s
Success
ctor_syscall_test.cSuccessNone0.042358s0.106228s
Success
cxa_atexit_test.cSuccessNone0.047928s0.109817s
Success
exec_non_utf8.cSuccessNone0.052522s0.123597s
Success
execve_shebang.cSuccessNone0.052407s0.118979s
Success
exit.cSuccessNone0.049596s0.108954s
Success
exit_failure.cSuccessNone0.072857s0.191301s
Success
exit_group_thread.cSuccessNone0.053236s0.154455s
Success
exit_status_first_wins.cSuccessNone0.060223s0.187806s
Success
flockfile_test.cSuccessNone0.052561s0.149502s
Success
fork2malloc.cSuccessNone0.053763s0.139214s
Success
fork_select.cSuccessNone0.050592s0.143125s
Success
fork_simple.cSuccessNone0.049535s0.130458s
Success
fork_syscall.cSuccessNone0.056579s0.589235s
Success
fork_tls_ctype.cSuccessNone0.054773s0.158549s
Success
forkandopen.cSuccessNone0.071432s0.162365s
Success
forkdup.cSuccessNone0.054031s0.142556s
Success
forkexecuid.cSuccessNone0.050598s0.154307s
Success
forkexecv-arg.cSuccessNone0.051045s0.143017s
Success
forkexecv.cSuccessNone0.050110s0.138697s
Success
forkfiles.cSuccessNone0.052954s0.141413s
Success
forkmalloc.cSuccessNone0.052342s0.133649s
Success
forknodup.cSuccessNone0.054464s0.143366s
Success
function-ptr.cSuccessNone0.047533s0.108336s
Success
getegid_syscall.cSuccessNone0.053768s0.457919s
Success
getgid_syscall.cSuccessNone0.054230s0.455347s
Success
getpid.cSuccessNone0.045934s0.105295s
Success
getpid_syscall.cSuccessNone0.054317s0.480909s
Success
getppid.cSuccessNone0.053069s0.134801s
Success
getppid_syscall.cSuccessNone0.055560s0.386896s
Success
getuid.cSuccessNone0.053749s0.116108s
Success
getuid_syscall.cSuccessNone0.051121s0.236735s
Success
hello-arg.cSuccessNone0.042537s0.110144s
Success
hello.cSuccessNone0.043028s0.101046s
Success
longjmp.cSuccessNone0.043107s0.114762s
Success
mutex.cSuccessNone2.062374s2.144249s
Success
printf_deadlock_smoke.cSuccessNone0.060772s0.172498s
Success
printf_thread_test.cSuccessNone0.050577s0.149303s
Success
sem_forks.cSuccessNone0.053677s0.172445s
Success
setsid.cSuccessNone0.045238s0.104484s
Success
template.cSuccessNone0.051863s0.176468s
Success
test_exec_nofork.cSuccessNone0.050877s0.132363s
Success
test_unlink_open_file.cSuccessNone0.048206s0.110593s
Success
thread-guard.cSuccessNone0.050271s0.135796s
Success
thread-test.cSuccessNone0.047106s0.124631s
Success
thread.cSuccessNone0.046737s0.127204s
Success
thread_cageid_race.cSuccessNone0.047567s0.296920s
Success
tls_test.cSuccessNone0.050598s0.163463s
Success
uname.cSuccessNone0.045143s0.106551s
Success
wait.cSuccessNone0.049064s0.147837s
Success
waitpid_anychild.cSuccessNone0.052082s0.136216s
Success
waitpid_syscall.cSuccessNone1.052656s1.227346s
Success
waitpid_wnohang.cSuccessNone0.052455s0.137789s
Success
Signal Tests
alarm.cSuccessNone7.052940s7.155798s
Success
eintr_fork_signal.cSuccessNone1.054443s1.151832s
Success
kill.cSuccessNone1.051855s1.136310s
Success
setitimer.cSuccessNone7.051462s7.151238s
Success
sigalrm.cSuccessNone2.051963s2.137667s
Success
sigaltstack.cSuccessNone0.056235s0.129614s
Success
sigchld.cSuccessNone1.053361s1.138439s
Success
signal-fork.cSuccessNone4.054287s4.134943s
Success
signal-simple.cSuccessNone0.053657s0.122283s
Success
signal_SIGCHLD.cSuccessNone0.051275s0.140564s
Success
signal_fork.cSuccessNone0.048919s0.138840s
Success
signal_int_ignored.cSuccessNone2.053932s2.139339s
Success
signal_kill_cleanup.cSuccessNone1.050728s1.130865s
Success
signal_procmask.cSuccessNone0.047180s0.119608s
Success
signal_read_interrupt.cSuccessNone0.556586s0.650039s
Success
signal_recursive.cSuccessNone0.046683s0.124598s
Success
signal_sa_mask.cSuccessNone0.046290s0.115274s
Success
signal_select_interrupt.cSuccessNone0.556190s0.651819s
Success
signal_write_interrupt.cSuccessNone1.054716s1.139662s
Success
sigpipe.cSuccessNone1.053764s1.146906s
Success
sigprocmask.cSuccessNone1.051961s1.125302s
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.044238s0.107395s
Success
Memory Tests
mmap-negative1.cSuccessNone0.135872s0.108124s
Success
mmap-negative2.cSuccessNone0.110424s0.114606s
Success
Signal Tests
signal_resethand.cSuccessNone1.051587s1.131932s
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.390332s8.361994s
LIBCPP_SORT_OK 1 2 3

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.

This file also needs to be added to mkdocs.yml

Comment thread docs/internal/dynamicloading.md Outdated
Co-authored-by: Alice Wen <40227173+Yaxuan-w@users.noreply.github.com>
@github-actions

github-actions Bot commented Jun 7, 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.053006s4.031496s
Success
thread.cSuccessNone0.045271s4.109752s
Success
tls_test.cSuccessNone0.049957s4.123838s
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 Cases232
Number of Successes232
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.045095s0.113728s
Success
dlopen_fork.cSuccessNone0.048841s0.140269s
Success
dlopen_thread.cSuccessNone0.049133s0.141781s
Success
double_fork_dlopen.cSuccessNone0.051576s0.180311s
Success
fork_dlopen.cSuccessNone0.048109s0.135950s
Success
longjmp_dlopen.cSuccessNone0.046170s0.129279s
Success
rdynamic_main.cSuccessNone0.047870s0.132863s
Success
File Tests
chartests.cSuccessNone0.045659s0.143550s
Success
chdir_getcwd.cSuccessNone0.047108s0.117544s
Success
chmod.cSuccessNone0.051915s0.128447s
Success
clock_gettime_highlevel.cSuccessNone0.117380s0.161562s
Success
clock_gettime_simple.cSuccessNone0.040643s0.105524s
Success
cloexec.cSuccessNone0.051078s0.141818s
Success
close.cSuccessNone0.056638s0.137910s
Success
creat_access.cSuccessNone0.049687s0.116914s
Success
doubleclose.cSuccessNone0.041784s0.098062s
Success
dup.cSuccessNone0.042949s0.115705s
Success
dup2.cSuccessNone0.048335s0.112738s
Success
dup3.cSuccessNone0.046309s0.114035s
Success
dupwrite.cSuccessNone0.049085s0.115289s
Success
etc_conf.cSuccessNone0.043761s0.117607s
Success
faccessat.cSuccessNone0.045276s0.119240s
Success
fchdir.cSuccessNone0.052582s0.128970s
Success
fchmod.cSuccessNone0.051533s0.129313s
Success
fchmodat.cSuccessNone0.044402s0.113032s
Success
fcntl.cSuccessNone0.047922s0.129965s
Success
fcntl_dupfd.cSuccessNone0.042777s0.108436s
Success
fdatasync.cSuccessNone0.048371s0.111496s
Success
filetest.cSuccessNone0.049217s0.111198s
Success
filetest1000.cSuccessNone0.056828s0.122802s
Success
flock.cSuccessNone0.056647s0.162979s
Success
fstat.cSuccessNone0.051112s0.130002s
Success
fstatfs.cSuccessNone0.043989s0.108395s
Success
fsync.cSuccessNone0.049409s0.115088s
Success
ftruncate.cSuccessNone0.053495s0.209221s
Success
getcwd.cSuccessNone0.045116s0.106629s
Success
getcwd_null.cSuccessNone0.049735s0.120998s
Success
getpgid.cSuccessNone0.042618s0.100836s
Success
getrandom.cSuccessNone0.049071s0.125798s
Success
ioctl.cSuccessNone0.053754s0.121842s
Success
link.cSuccessNone0.052446s0.155927s
Success
locale_test.cSuccessNone0.062934s0.312776s
Success
lseek.cSuccessNone0.053323s0.192501s
Success
lstat.cSuccessNone0.055517s0.139891s
Success
mkdir_rmdir.cSuccessNone0.049732s0.118425s
Success
mkfifo_test.cSuccessNone0.055409s0.167966s
Success
mknod.cSuccessNone0.049166s0.126760s
Success
nocancel_io.cSuccessNone0.052710s0.142295s
Success
open.cSuccessNone0.043937s0.104453s
Success
openat.cSuccessNone0.044649s0.113056s
Success
path_conversion_safety.cSuccessNone0.052207s0.136215s
Success
ppoll.cSuccessNone0.053558s0.126725s
Success
pread_pwrite.cSuccessNone0.046708s0.119998s
Success
preadv_pwritev.cSuccessNone0.051768s0.133333s
Success
printf.cSuccessNone0.041351s0.099788s
Success
prlimit64.cSuccessNone0.042724s0.107914s
Success
read.cSuccessNone0.060338s0.128065s
Success
readbytes.cSuccessNone0.046140s0.108870s
Success
readdir_basic.cSuccessNone0.053148s0.151597s
Success
readlink.cSuccessNone0.049413s0.122923s
Success
readlinkat.cSuccessNone0.051348s0.128200s
Success
readv_writev_test.cSuccessNone0.052375s0.131363s
Success
rename.cSuccessNone0.053733s0.117981s
Success
renameat.cSuccessNone0.052506s0.134211s
Success
sc-writev.cSuccessNone0.047356s0.116024s
Success
stat.cSuccessNone0.049296s0.126742s
Success
statfs.cSuccessNone0.044953s0.105314s
Success
symlink.cSuccessNone0.052158s0.149284s
Success
sync_file_range.cSuccessNone0.046536s0.112094s
Success
timespec_time_t_compat.cSuccessNone0.046306s0.108320s
Success
trailing_slash.cSuccessNone0.048291s0.119960s
Success
truncate.cSuccessNone0.050432s0.139445s
Success
unlink.cSuccessNone0.052011s0.153823s
Success
unlinkat.cSuccessNone0.050965s0.132304s
Success
utimensat.cSuccessNone0.048631s0.135030s
Success
write.cSuccessNone0.042747s0.099957s
Success
writeloop.cSuccessNone0.052599s0.119085s
Success
writepartial.cSuccessNone0.050130s0.109737s
Success
writev.cSuccessNone0.050299s0.124529s
Success
Math Tests
math_link_smoke.cSuccessNone0.053912s0.107286s
Success
math_tests.cSuccessNone0.056722s0.135201s
Success
printf_float.cSuccessNone0.053867s0.131448s
Success
Memory Tests
brk.cSuccessNone0.048541s0.114357s
Success
fork_large_memory.cSuccessNone0.092053s0.474011s
Success
malloc.cSuccessNone0.049546s0.108772s
Success
malloc_large.cSuccessNone0.074142s0.174878s
Success
memcpy.cSuccessNone0.090073s0.205713s
Success
memory_error_test.cSuccessNone0.060466s0.154023s
Success
mmap.cSuccessNone0.061231s0.171819s
Success
mmap_aligned.cSuccessNone0.046073s0.122222s
Success
mmap_complicated.cSuccessNone0.050499s0.166645s
Success
mmap_file.cSuccessNone0.051406s0.120635s
Success
mmap_shared.cSuccessNone0.053929s0.152518s
Success
mmaptest.cSuccessNone0.046881s0.113172s
Success
mprotect.cSuccessNone0.044302s0.108644s
Success
mprotect_boundary.cSuccessNone0.044925s0.118204s
Success
mprotect_end_region.cSuccessNone0.044079s0.112088s
Success
mprotect_middle_region.cSuccessNone0.074350s0.222831s
Success
mprotect_multiple_times.cSuccessNone0.045764s0.117437s
Success
mprotect_same_value.cSuccessNone0.072360s0.141579s
Success
mprotect_spanning_regions.cSuccessNone0.045980s0.130858s
Success
munmap_adjacent_shm.cSuccessNone0.046735s0.127861s
Success
sbrk.cSuccessNone0.046299s0.112856s
Success
segfault.cSuccessNone0.052721s0.155710s
Success
shm.cSuccessNone0.076161s0.223868s
Success
shmtest.cSuccessNone0.045962s0.114558s
Success
thread_malloc_sequential.cSuccessNone0.079856s0.314462s
Success
vtable.cSuccessNone0.091144s0.267225s
Success
Networking Tests
accept4.cSuccessNone0.054762s0.134703s
Success
dns_resolve_test.cSuccessNone0.049059s0.117336s
Success
dnstest.cSuccessNone0.049794s0.118036s
Success
epoll_badfd.cSuccessNone0.044315s0.105609s
Success
epoll_edge_triggered.cSuccessNone0.207171s0.380343s
Success
epollcreate1.cSuccessNone0.050950s0.129152s
Success
error_handling_net.cSuccessNone0.058522s0.191898s
Success
getaddrinfo_test.cSuccessNone0.053919s0.153011s
Success
getaddrinfo_unspec.cSuccessNone0.052600s0.154918s
Success
gethostname.cSuccessNone0.043487s0.102482s
Success
getifaddrs.cSuccessNone0.051801s0.122408s
Success
getsockname.cSuccessNone0.052279s0.122786s
Success
getsockopt.cSuccessNone0.054097s0.156119s
Success
ipv6_basic.cSuccessNone0.054854s0.155957s
Success
makepipe.cSuccessNone0.043140s0.102378s
Success
nonblocking_eagain.cSuccessNone0.054539s0.165768s
Success
pipe.cSuccessNone0.051868s0.128737s
Success
pipe2.cSuccessNone0.050880s0.120181s
Success
pipeinput.cSuccessNone0.052971s0.151782s
Success
pipeinput2.cSuccessNone0.053220s0.157567s
Success
pipeonestring.cSuccessNone0.053541s0.151996s
Success
pipepong.cSuccessNone0.051262s0.157561s
Success
pipewrite.cSuccessNone0.046002s0.115498s
Success
poll.cSuccessNone0.049389s0.113928s
Success
recvfrom-sendto.cSuccessNone0.051644s0.129680s
Success
sendmsg_recvmsg_test.cSuccessNone0.051991s0.128673s
Success
serverclient.cSuccessNone0.051536s0.132276s
Success
shutdown.cSuccessNone0.052127s0.128573s
Success
shutdown_fork.cSuccessNone0.051264s0.141529s
Success
simple-select.cSuccessNone0.052231s0.153195s
Success
simple_epoll.cSuccessNone0.050444s0.121207s
Success
socket.cSuccessNone0.048893s0.114849s
Success
socket_cloexec.cSuccessNone0.049724s0.112127s
Success
socket_options_advanced.cSuccessNone0.055921s0.172564s
Success
socketepoll.cSuccessNone0.050067s0.117233s
Success
socketpair.cSuccessNone0.050392s0.134669s
Success
socketselect.cSuccessNone0.051426s0.120077s
Success
udp_send_recv.cSuccessNone0.157958s0.274332s
Success
uds-getsockname.cSuccessNone0.050810s0.116752s
Success
uds-nb-select.cSuccessNone2.060087s2.189035s
Success
uds-serverclient.cSuccessNone0.053939s0.159196s
Success
uds-socketselect.cSuccessNone0.050933s0.126882s
Success
uds_listen_poll.cSuccessNone1.057743s1.170109s
Success
writev_socket.cSuccessNone0.053190s0.154373s
Success
Process Tests
barrier_test.cSuccessNone0.048707s0.132122s
Success
chain_thread.cSuccessNone1.050999s1.146413s
Success
ctor_syscall_test.cSuccessNone0.040364s0.100066s
Success
cxa_atexit_test.cSuccessNone0.046646s0.108903s
Success
exec_non_utf8.cSuccessNone0.049554s0.115050s
Success
execve_shebang.cSuccessNone0.050256s0.118200s
Success
exit.cSuccessNone0.048166s0.107649s
Success
exit_failure.cSuccessNone0.058511s0.168410s
Success
exit_group_thread.cSuccessNone0.051209s0.148878s
Success
exit_status_first_wins.cSuccessNone0.053078s0.152594s
Success
flockfile_test.cSuccessNone0.049773s0.141454s
Success
fork2malloc.cSuccessNone0.051322s0.134082s
Success
fork_select.cSuccessNone0.056391s0.197117s
Success
fork_simple.cSuccessNone0.048107s0.128141s
Success
fork_syscall.cSuccessNone0.053786s0.607268s
Success
fork_tls_ctype.cSuccessNone0.052982s0.154037s
Success
forkandopen.cSuccessNone0.051866s0.142286s
Success
forkdup.cSuccessNone0.052065s0.141326s
Success
forkexecuid.cSuccessNone0.048675s0.151486s
Success
forkexecv-arg.cSuccessNone0.048610s0.139903s
Success
forkexecv.cSuccessNone0.055875s0.174606s
Success
forkfiles.cSuccessNone0.051534s0.141791s
Success
forkmalloc.cSuccessNone0.050084s0.129562s
Success
forknodup.cSuccessNone0.051056s0.141650s
Success
function-ptr.cSuccessNone0.057216s0.147900s
Success
getegid_syscall.cSuccessNone0.050270s0.458246s
Success
getgid_syscall.cSuccessNone0.050536s0.460117s
Success
getpid.cSuccessNone0.044404s0.101021s
Success
getpid_syscall.cSuccessNone0.052396s0.468963s
Success
getppid.cSuccessNone0.053071s0.135224s
Success
getppid_syscall.cSuccessNone0.053282s0.382660s
Success
getuid.cSuccessNone0.051905s0.115535s
Success
getuid_syscall.cSuccessNone0.048897s0.250691s
Success
hello-arg.cSuccessNone0.040415s0.106374s
Success
hello.cSuccessNone0.041016s0.099106s
Success
longjmp.cSuccessNone0.041622s0.108386s
Success
mutex.cSuccessNone2.056299s2.129742s
Success
printf_deadlock_smoke.cSuccessNone0.058967s0.164295s
Success
printf_thread_test.cSuccessNone0.049064s0.137817s
Success
sem_forks.cSuccessNone0.050691s0.171099s
Success
setjmp_edge.cSuccessNone0.046355s0.193270s
Success
setsid.cSuccessNone0.042595s0.101666s
Success
template.cSuccessNone0.050037s0.176258s
Success
test_crossmodule_longjmp.cSuccessNone0.050000s0.148571s
Success
test_exec_nofork.cSuccessNone0.048673s0.129276s
Success
test_unlink_open_file.cSuccessNone0.057276s0.124857s
Success
thread-guard.cSuccessNone0.047584s0.126869s
Success
thread-test.cSuccessNone0.046546s0.118388s
Success
thread.cSuccessNone0.045093s0.117385s
Success
thread_cageid_race.cSuccessNone0.045803s0.280336s
Success
tls_test.cSuccessNone0.047936s0.156359s
Success
uname.cSuccessNone0.043103s0.102137s
Success
wait.cSuccessNone0.046816s0.143588s
Success
waitpid_anychild.cSuccessNone0.049382s0.132361s
Success
waitpid_syscall.cSuccessNone1.050051s1.225066s
Success
waitpid_wnohang.cSuccessNone0.050894s0.134486s
Success
Signal Tests
alarm.cSuccessNone7.049683s7.152824s
Success
eintr_fork_signal.cSuccessNone1.052041s1.151390s
Success
kill.cSuccessNone1.049764s1.135457s
Success
pause_test.cSuccessNone1.051060s1.141807s
Success
setitimer.cSuccessNone7.049936s7.145047s
Success
sigalrm.cSuccessNone2.050312s2.133939s
Success
sigaltstack.cSuccessNone0.051645s0.126228s
Success
sigchld.cSuccessNone1.052586s1.134496s
Success
signal-fork.cSuccessNone4.052293s4.133988s
Success
signal-simple.cSuccessNone0.051431s0.117859s
Success
signal_SIGCHLD.cSuccessNone0.048922s0.138399s
Success
signal_fork.cSuccessNone0.046732s0.137298s
Success
signal_int_ignored.cSuccessNone2.051062s2.135259s
Success
signal_kill_cleanup.cSuccessNone1.047986s1.128726s
Success
signal_procmask.cSuccessNone0.046551s0.119191s
Success
signal_read_interrupt.cSuccessNone0.553945s0.642518s
Success
signal_recursive.cSuccessNone0.045012s0.121189s
Success
signal_sa_mask.cSuccessNone0.045445s0.114569s
Success
signal_select_interrupt.cSuccessNone0.554449s0.643083s
Success
signal_write_interrupt.cSuccessNone1.052485s1.135422s
Success
sigpipe.cSuccessNone1.052489s1.144368s
Success
sigprocmask.cSuccessNone1.049658s1.124477s
Success
sigsuspend_test.cSuccessNone1.048257s1.142865s
Success
test_sigsetjmp.cSuccessNone0.051685s0.153544s
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.041670s0.104521s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.123636s0.120937s
Success
invalid_access_fork.cSuccessNone0.170818s0.261339s
Success
mmap-negative1.cSuccessNone0.112556s0.111207s
Success
mmap-negative2.cSuccessNone0.116075s0.154586s
Success
Signal Tests
signal_resethand.cSuccessNone1.049952s1.134436s
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.393758s8.562729s
LIBCPP_SORT_OK 1 2 3

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.

5 participants