Skip to content

Move chroot to lind-boot#839

Merged
rennergade merged 3 commits intomainfrom
chroot-fix
Feb 27, 2026
Merged

Move chroot to lind-boot#839
rennergade merged 3 commits intomainfrom
chroot-fix

Conversation

@stupendoussuperpowers
Copy link
Contributor

Fixes #838

@github-actions
Copy link
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases181
Number of Successes180
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure1
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.050050s4.242174s
Success
chdir_getcwd.cSuccessNone0.051701s4.283348s
Success
chmod.cSuccessNone0.055563s4.254804s
Success
clock_gettime_highlevel.cSuccessNone0.121811s4.499066s
Success
clock_gettime_simple.cSuccessNone0.044990s4.250052s
Success
cloexec.cSuccessNone0.054717s3.889312s
Success
close.cSuccessNone0.062242s4.269145s
Success
creat_access.cSuccessNone0.054287s4.290519s
Success
doubleclose.cSuccessNone0.045766s3.832772s
Success
dup.cSuccessNone0.046912s4.268023s
Success
dup2.cSuccessNone0.051342s3.870882s
Success
dup3.cSuccessNone0.049598s4.270260s
Success
dupwrite.cSuccessNone0.054572s3.883602s
Success
etc_conf.cSuccessNone0.048484s4.236717s
Success
fchdir.cSuccessNone0.056436s4.266975s
Success
fchmod.cSuccessNone0.058483s4.279961s
Success
fcntl.cSuccessNone0.052509s4.262921s
Success
fdatasync.cSuccessNone0.052517s4.250770s
Success
filetest.cSuccessNone0.054310s3.897664s
Success
filetest1000.cSuccessNone0.063105s3.896670s
Success
flock.cSuccessNone0.060284s4.336592s
Success
fstat.cSuccessNone0.054642s4.242801s
Success
fstatfs.cSuccessNone0.048091s4.265220s
Success
fsync.cSuccessNone0.051979s4.275733s
Success
ftruncate.cSuccessNone0.057252s4.326560s
Success
getcwd.cSuccessNone0.048938s4.262890s
Success
getrandom.cSuccessNone0.054449s4.254667s
Success
ioctl.cSuccessNone0.057796s4.263627s
Success
link.cSuccessNone0.058054s4.315843s
Success
locale_test.cSuccessNone0.066907s6.067317s
Success
lseek.cSuccessNone0.057238s4.320587s
Success
mkdir_rmdir.cSuccessNone0.053426s4.278426s
Success
nocancel_io.cSuccessNone0.056912s5.620158s
Success
open.cSuccessNone0.047865s4.273604s
Success
path_conversion_safety.cSuccessNone0.056904s4.280406s
Success
pread_pwrite.cSuccessNone0.051116s4.275298s
Success
printf.cSuccessNone0.045503s3.861803s
Success
read.cSuccessNone0.054607s4.258883s
Success
readbytes.cSuccessNone0.049116s3.846126s
Success
readlink.cSuccessNone0.053583s4.282909s
Success
readlinkat.cSuccessNone0.056245s4.291034s
Success
rename.cSuccessNone0.055280s4.264870s
Success
sc-writev.cSuccessNone0.051627s4.277307s
Success
stat.cSuccessNone0.056873s4.278927s
Success
statfs.cSuccessNone0.048160s4.266944s
Success
sync_file_range.cSuccessNone0.052665s4.258358s
Success
truncate.cSuccessNone0.056246s4.322337s
Success
unlink.cSuccessNone0.057262s4.296822s
Success
unlinkat.cSuccessNone0.056250s4.327246s
Success
write.cSuccessNone0.046099s3.844008s
Success
writeloop.cSuccessNone0.056035s3.898863s
Success
writepartial.cSuccessNone0.055570s3.872119s
Success
writev.cSuccessNone0.056481s4.288212s
Success
Math Tests
math_link_smoke.cSuccessNone0.056669s3.867203s
Success
math_tests.cSuccessNone0.061277s4.045559s
Success
Memory Tests
brk.cSuccessNone0.054819s4.256545s
Success
fork_large_memory.cSuccessNone0.084917s4.408469s
Success
malloc.cSuccessNone0.048624s3.835828s
Success
malloc_large.cSuccessNone0.049656s4.230969s
Success
memcpy.cSuccessNone0.048531s3.838283s
Success
memory_error_test.cSuccessNone0.055223s4.296057s
Success
mmap.cSuccessNone0.045788s4.213091s
Success
mmap_aligned.cSuccessNone0.048658s4.284275s
Success
mmap_complicated.cSuccessNone0.052297s4.377781s
Success
mmap_file.cSuccessNone0.055018s4.291304s
Success
mmap_shared.cSuccessNone0.053105s4.287858s
Success
mmaptest.cSuccessNone0.048861s4.272066s
Success
mprotect.cSuccessNone0.046915s4.240264s
Success
mprotect_boundary.cSuccessNone0.047330s4.235875s
Success
mprotect_end_region.cSuccessNone0.046086s4.240396s
Success
mprotect_middle_region.cSuccessNone0.046505s4.252259s
Success
mprotect_multiple_times.cSuccessNone0.046515s4.233940s
Success
mprotect_same_value.cSuccessNone0.047357s4.264783s
Success
mprotect_spanning_regions.cSuccessNone0.047696s4.234130s
Success
sbrk.cSuccessNone0.048834s4.256416s
Success
segfault.cSuccessNone0.054609s4.321451s
Success
shm.cSuccessNone0.054485s4.307073s
Success
shmtest.cSuccessNone0.047209s4.253906s
Success
tcache_test.cSuccessNone0.057233s4.394897s
Success
vtable.cSuccessNone0.061618s3.891666s
Success
Networking Tests
dnstest.cSuccessNone0.053075s4.243574s
Success
epollcreate1.cSuccessNone0.054662s4.260169s
Success
error_handling_net.cSuccessNone0.061817s4.355327s
Success
getaddrinfo_test.cSuccessNone0.058990s6.034028s
Success
gethostname.cSuccessNone0.047270s3.880880s
Success
getifaddrs.cSuccessNone0.055296s4.330218s
Success
getsockname.cSuccessNone0.054844s4.311103s
Success
getsockopt.cSuccessNone0.057198s4.288387s
Success
makepipe.cSuccessNone0.046220s3.843504s
Success
nonblocking_eagain.cSuccessNone0.058379s4.305428s
Success
pipe.cSuccessNone0.056374s4.289884s
Success
pipe2.cSuccessNone0.055417s4.218110s
Success
pipeinput.cSuccessNone0.057479s4.293399s
Success
pipeinput2.cSuccessNone0.056740s4.315017s
Success
pipeonestring.cSuccessNone0.056573s4.298363s
Success
pipepong.cSuccessNone0.056127s4.301304s
Success
pipewrite.cSuccessNone0.051388s4.267811s
Success
poll.cSuccessNone0.054883s4.261014s
Success
recvfrom-sendto.cSuccessNone0.056020s4.267217s
Success
serverclient.cSuccessNone0.055534s3.876237s
Success
shutdown.cSuccessNone0.056286s3.876351s
Success
shutdown_fork.cSuccessNone0.056100s4.330200s
Success
simple-select.cSuccessNone0.055690s4.275425s
Success
simple_epoll.cSuccessNone0.054801s4.291790s
Success
socket.cSuccessNone0.052464s3.862977s
Success
socket_cloexec.cSuccessNone0.054541s4.236348s
Success
socket_options_advanced.cSuccessNone0.060561s4.304261s
Success
socketepoll.cSuccessNone0.054172s3.890047s
Success
socketpair.cSuccessNone0.053102s4.317799s
Success
socketselect.cSuccessNone0.053262s4.238513s
Success
tcp_connect_single.cSuccessNone0.054625s4.263425s
Success
uds-getsockname.cSuccessNone0.054257s4.253199s
Success
uds-nb-select.cSuccessNone2.061357s6.505437s
Success
uds-serverclient.cSuccessNone0.057428s4.334828s
Success
uds-socketselect.cSuccessNone0.054070s3.869522s
Success
writev_socket.cSuccessNone0.057352s4.272430s
Success
Process Tests
barrier_test.cSuccessNone0.054192s4.434198s
Success
chain_thread.cSuccessNone1.056260s5.467711s
Success
cxa_atexit_test.cSuccessNone0.052311s3.890085s
Success
exit.cSuccessNone0.051350s3.866860s
Success
flockfile_test.cSuccessNone0.054067s4.476236s
Success
fork2malloc.cSuccessNone0.056628s4.297423s
Success
fork_select.cSuccessNone0.053746s4.297453s
Success
fork_simple.cSuccessNone0.051838s4.323257s
Success
fork_syscall.cSuccessNone0.059439s4.389325s
Success
fork_tls_ctype.cSuccessNone0.058197s4.317394s
Success
forkandopen.cSuccessNone0.055203s4.289850s
Success
forkdup.cSuccessNone0.057322s3.952930s
Success
forkexecuid.cSuccessNone0.053706s4.341547s
Success
forkexecv-arg.cSuccessNone0.053020s4.306542s
Success
forkexecv.cSuccessNone0.052825s4.327725s
Success
forkfiles.cSuccessNone0.056292s4.330843s
Success
forkmalloc.cSuccessNone0.071198s4.344100s
Success
forknodup.cSuccessNone0.057443s4.326894s
Success
function-ptr.cSuccessNone0.051762s4.255360s
Success
getegid_syscall.cSuccessNone0.056182s4.356647s
Success
getgid_syscall.cSuccessNone0.056287s4.370070s
Success
getpid.cSuccessNone0.047854s4.258249s
Success
getpid_syscall.cSuccessNone0.057683s4.362562s
Success
getppid.cSuccessNone0.055129s4.327583s
Success
getppid_syscall.cSuccessNone0.058761s4.361639s
Success
getuid.cSuccessNone0.056276s4.259472s
Success
getuid_syscall.cSuccessNone0.053182s4.334368s
Success
hello-arg.cSuccessNone0.044840s3.866164s
Success
hello.cSuccessNone0.046848s3.898593s
Success
longjmp.cSuccessNone0.046487s3.920790s
Success
mutex.cSuccessNone2.060479s6.576062s
Success
printf_deadlock_smoke.cSuccessNone0.064128s4.630486s
Success
printf_thread_test.cSuccessNone0.054488s4.485719s
Success
sem_forks.cSuccessNone0.058122s4.316366s
Success
setsid.cSuccessNone0.047627s3.893514s
Success
template.cSuccessNone0.055370s4.288598s
Success
test_exec_nofork.cSuccessNone0.054230s4.295582s
Success
test_unlink_open_file.cSuccessNone0.049480s3.889292s
Success
thread-test.cSuccessNone0.049226s4.396802s
Success
thread.cSuccessNone0.050742s4.457084s
Success
thread_cageid_race.cSuccessNone0.050242s4.451943s
Success
tls_test.cSuccessNone0.052667s4.444068s
Success
uname.cSuccessNone0.047825s4.271918s
Success
wait.cSuccessNone2.051496s5.963693s
Success
waitpid_anychild.cSuccessNone0.055322s4.327955s
Success
waitpid_syscall.cSuccessNone1.056792s5.375119s
Success
waitpid_wnohang.cSuccessNone0.054533s3.931877s
Success
Signal Tests
alarm.cSuccessNone7.052746s10.903120s
Success
setitimer.cSuccessNone7.054777s10.891347s
Success
sigalrm.cSuccessNone2.053533s5.879340s
Success
sigchld.cSuccessNone1.055123s4.958268s
Success
signal-fork.cSuccessNone4.056602s7.935568s
Success
signal-simple.cSuccessNone0.054823s3.867854s
Success
signal.cSuccessNone0.050289s3.876547s
Success
signal_SIGCHLD.cFailureLind_wasm_Segmentation_Fault0.052796s4.305482s
/tmp/wasmtest_artifacts_0dlbcjxs/signal_tests/deterministic/signal_SIGCHLD.c:36: int main(): Assertion `waited_pid >= 0' failed.
Error: failed to run main module

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

signal_fork.cSuccessNone0.050115s4.305791s
Success
signal_int_ignored.cSuccessNone2.054960s6.354745s
Success
signal_int_thread.cSuccessNone0.051757s4.422794s
Success
signal_longjmp.cSuccessNone0.050672s3.888827s
Success
signal_nodefer.cSuccessNone0.049701s3.853044s
Success
signal_procmask.cSuccessNone0.048263s4.240232s
Success
signal_recursive.cSuccessNone0.048917s3.875897s
Success
signal_sa_mask.cSuccessNone0.048600s3.881981s
Success
sigpipe.cSuccessNone1.055853s5.365225s
Success
sigprocmask.cSuccessNone1.054095s4.889736s
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.113473s4.431451s
Success
mmap-negative2.cSuccessNone0.145748s4.161494s
Success
Signal Tests
signal_resethand.cSuccessNone1.052825s3.920165s
Success

/// - chdirs to new '/'
fn chroot_to_lindfs() {
unsafe {
let lindfs_path = CString::new(LINDFS_ROOT).unwrap();
Copy link
Contributor

Choose a reason for hiding this comment

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

as of now this is setup by make, I think its probably better to check if it exists and fail with error if it doesnt then try to make it again

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If lindfs/ exists, mkdir returns -1 with EEXIST so in essence the try -> make if fail is sort of built-in. If mkdir doesnt actually make the directory we get a chroot error and fail there. Not clear on what the new flow you're suggesting is.

Copy link
Contributor

Choose a reason for hiding this comment

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

Just check if it exists and print an error if it doesn't. If lindfs doesn't exist there's probably other things wrong so it's better we fail early

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay so. stat(lindfs) -> exit on failure, chroot on success ?

rennergade
rennergade previously approved these changes Feb 27, 2026
Copy link
Contributor

@rennergade rennergade left a comment

Choose a reason for hiding this comment

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

this is good, think that change might be worth it

Yaxuan-w
Yaxuan-w previously approved these changes Feb 27, 2026
@github-actions
Copy link
Contributor

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases185
Number of Successes184
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure1
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.050539s4.358042s
Success
chdir_getcwd.cSuccessNone0.052450s4.341444s
Success
chmod.cSuccessNone0.058184s4.374943s
Success
clock_gettime_highlevel.cSuccessNone0.124336s4.600123s
Success
clock_gettime_simple.cSuccessNone0.046227s4.294048s
Success
cloexec.cSuccessNone0.057970s4.003420s
Success
close.cSuccessNone0.064686s4.354669s
Success
creat_access.cSuccessNone0.055039s4.356233s
Success
doubleclose.cSuccessNone0.049005s3.996431s
Success
dup.cSuccessNone0.048882s4.384985s
Success
dup2.cSuccessNone0.053548s3.949783s
Success
dup3.cSuccessNone0.052404s4.370515s
Success
dupwrite.cSuccessNone0.054792s3.977815s
Success
etc_conf.cSuccessNone0.049932s4.328640s
Success
fchdir.cSuccessNone0.057951s4.345992s
Success
fchmod.cSuccessNone0.062189s4.341082s
Success
fcntl.cSuccessNone0.055592s4.389050s
Success
fdatasync.cSuccessNone0.054536s4.326220s
Success
filetest.cSuccessNone0.055321s3.967295s
Success
filetest1000.cSuccessNone0.065158s4.008108s
Success
flock.cSuccessNone0.063290s4.477489s
Success
fstat.cSuccessNone0.058659s4.377263s
Success
fstatfs.cSuccessNone0.049084s4.360190s
Success
fsync.cSuccessNone0.054889s4.376798s
Success
ftruncate.cSuccessNone0.060108s4.400437s
Success
getcwd.cSuccessNone0.050088s4.269281s
Success
getrandom.cSuccessNone0.053356s4.302841s
Success
ioctl.cSuccessNone0.060843s4.389849s
Success
link.cSuccessNone0.059330s4.410703s
Success
locale_test.cSuccessNone0.070538s6.231045s
Success
lseek.cSuccessNone0.059184s4.435741s
Success
mkdir_rmdir.cSuccessNone0.054868s4.339102s
Success
nocancel_io.cSuccessNone0.061027s5.752496s
Success
open.cSuccessNone0.049569s4.341622s
Success
path_conversion_safety.cSuccessNone0.058447s4.305772s
Success
pread_pwrite.cSuccessNone0.055206s4.296153s
Success
printf.cSuccessNone0.047632s3.975042s
Success
read.cSuccessNone0.056614s4.375662s
Success
readbytes.cSuccessNone0.051612s3.915057s
Success
readlink.cSuccessNone0.055475s4.402477s
Success
readlinkat.cSuccessNone0.057297s4.384009s
Success
readv_writev_test.cSuccessNone0.058432s4.301195s
Success
rename.cSuccessNone0.060727s4.338448s
Success
sc-writev.cSuccessNone0.053568s4.280832s
Success
stat.cSuccessNone0.056650s4.408818s
Success
statfs.cSuccessNone0.051176s4.386732s
Success
sync_file_range.cSuccessNone0.051349s4.317548s
Success
truncate.cSuccessNone0.055994s4.324094s
Success
unlink.cSuccessNone0.058253s4.440923s
Success
unlinkat.cSuccessNone0.058937s4.439304s
Success
write.cSuccessNone0.048465s3.912268s
Success
writeloop.cSuccessNone0.059141s3.916629s
Success
writepartial.cSuccessNone0.058027s3.969148s
Success
writev.cSuccessNone0.056667s4.291886s
Success
Math Tests
math_link_smoke.cSuccessNone0.060490s3.999714s
Success
math_tests.cSuccessNone0.062910s4.126897s
Success
Memory Tests
brk.cSuccessNone0.053055s4.329921s
Success
fork_large_memory.cSuccessNone0.102250s4.527772s
Success
malloc.cSuccessNone0.050593s3.964052s
Success
malloc_large.cSuccessNone0.051568s4.275765s
Success
memcpy.cSuccessNone0.052133s3.923924s
Success
memory_error_test.cSuccessNone0.057313s4.399856s
Success
mmap.cSuccessNone0.047840s4.316677s
Success
mmap_aligned.cSuccessNone0.049671s4.305211s
Success
mmap_complicated.cSuccessNone0.054549s4.385876s
Success
mmap_file.cSuccessNone0.055663s4.339065s
Success
mmap_shared.cSuccessNone0.053173s4.350483s
Success
mmaptest.cSuccessNone0.050766s4.291154s
Success
mprotect.cSuccessNone0.050790s4.350291s
Success
mprotect_boundary.cSuccessNone0.048006s4.302659s
Success
mprotect_end_region.cSuccessNone0.049492s4.333817s
Success
mprotect_middle_region.cSuccessNone0.049587s4.334210s
Success
mprotect_multiple_times.cSuccessNone0.049017s4.278321s
Success
mprotect_same_value.cSuccessNone0.047213s4.298142s
Success
mprotect_spanning_regions.cSuccessNone0.049621s4.307556s
Success
sbrk.cSuccessNone0.052254s4.309048s
Success
segfault.cSuccessNone0.055519s4.346239s
Success
shm.cSuccessNone0.054113s4.367739s
Success
shmtest.cSuccessNone0.050030s4.322991s
Success
tcache_test.cSuccessNone0.059358s4.522395s
Success
vtable.cSuccessNone0.061558s3.959555s
Success
Networking Tests
dnstest.cSuccessNone0.057738s4.390352s
Success
epoll_edge_triggered.cSuccessNone0.213456s4.544342s
Success
epollcreate1.cSuccessNone0.057034s4.394848s
Success
error_handling_net.cSuccessNone0.063665s4.517206s
Success
getaddrinfo_test.cSuccessNone0.061457s6.115323s
Success
gethostname.cSuccessNone0.050256s3.951738s
Success
getifaddrs.cSuccessNone0.057951s4.467200s
Success
getsockname.cSuccessNone0.056131s4.291026s
Success
getsockopt.cSuccessNone0.062210s4.377146s
Success
ipv6_basic.cSuccessNone0.059981s4.358908s
Success
makepipe.cSuccessNone0.048868s3.918340s
Success
nonblocking_eagain.cSuccessNone0.060601s4.379749s
Success
pipe.cSuccessNone0.060223s4.407079s
Success
pipe2.cSuccessNone0.057116s4.327492s
Success
pipeinput.cSuccessNone0.060243s4.386338s
Success
pipeinput2.cSuccessNone0.059390s4.384021s
Success
pipeonestring.cSuccessNone0.059584s4.400803s
Success
pipepong.cSuccessNone0.056896s4.406077s
Success
pipewrite.cSuccessNone0.053383s4.342926s
Success
poll.cSuccessNone0.057667s4.383025s
Success
recvfrom-sendto.cSuccessNone0.059274s4.344779s
Success
sendmsg_recvmsg_test.cSuccessNone0.057338s4.322952s
Success
serverclient.cSuccessNone0.056961s3.978269s
Success
shutdown.cSuccessNone0.058050s3.932972s
Success
shutdown_fork.cSuccessNone0.056054s4.324990s
Success
simple-select.cSuccessNone0.058248s4.416797s
Success
simple_epoll.cSuccessNone0.057123s4.427027s
Success
socket.cSuccessNone0.055583s3.922839s
Success
socket_cloexec.cSuccessNone0.054737s4.332946s
Success
socket_options_advanced.cSuccessNone0.061944s4.340464s
Success
socketepoll.cSuccessNone0.056500s3.945335s
Success
socketpair.cSuccessNone0.056832s4.411530s
Success
socketselect.cSuccessNone0.055095s4.320826s
Success
tcp_connect_single.cSuccessNone0.059860s4.417771s
Success
uds-getsockname.cSuccessNone0.057153s4.341255s
Success
uds-nb-select.cSuccessNone2.064458s6.580489s
Success
uds-serverclient.cSuccessNone0.061233s4.422450s
Success
uds-socketselect.cSuccessNone0.057151s3.939935s
Success
writev_socket.cSuccessNone0.059029s4.384477s
Success
Process Tests
barrier_test.cSuccessNone0.056896s4.520968s
Success
chain_thread.cSuccessNone1.058408s5.531352s
Success
cxa_atexit_test.cSuccessNone0.051794s3.982815s
Success
exit.cSuccessNone0.053845s3.962441s
Success
flockfile_test.cSuccessNone0.057525s4.589561s
Success
fork2malloc.cSuccessNone0.057164s4.379059s
Success
fork_select.cSuccessNone0.054621s4.384525s
Success
fork_simple.cSuccessNone0.055529s4.423887s
Success
fork_syscall.cSuccessNone0.059846s4.521593s
Success
fork_tls_ctype.cSuccessNone0.056865s4.379311s
Success
forkandopen.cSuccessNone0.058468s4.432670s
Success
forkdup.cSuccessNone0.058338s4.024363s
Success
forkexecuid.cSuccessNone0.056332s4.376697s
Success
forkexecv-arg.cSuccessNone0.056025s4.500213s
Success
forkexecv.cSuccessNone0.053364s4.451074s
Success
forkfiles.cSuccessNone0.056247s4.386205s
Success
forkmalloc.cSuccessNone0.071343s4.417603s
Success
forknodup.cSuccessNone0.058956s4.446382s
Success
function-ptr.cSuccessNone0.050674s4.278845s
Success
getegid_syscall.cSuccessNone0.057242s4.410807s
Success
getgid_syscall.cSuccessNone0.059527s4.426836s
Success
getpid.cSuccessNone0.049603s4.380786s
Success
getpid_syscall.cSuccessNone0.059674s4.470780s
Success
getppid.cSuccessNone0.058024s4.477346s
Success
getppid_syscall.cSuccessNone0.059075s4.419921s
Success
getuid.cSuccessNone0.056104s4.317940s
Success
getuid_syscall.cSuccessNone0.053866s4.459047s
Success
hello-arg.cSuccessNone0.046559s3.928430s
Success
hello.cSuccessNone0.050583s3.967078s
Success
longjmp.cSuccessNone0.049107s3.955218s
Success
mutex.cSuccessNone2.060716s6.592443s
Success
printf_deadlock_smoke.cSuccessNone0.067436s4.720774s
Success
printf_thread_test.cSuccessNone0.055195s4.554357s
Success
sem_forks.cSuccessNone0.067119s4.451636s
Success
setsid.cSuccessNone0.049629s3.949177s
Success
template.cSuccessNone0.057563s4.480838s
Success
test_exec_nofork.cSuccessNone0.056471s4.374091s
Success
test_unlink_open_file.cSuccessNone0.052454s3.979994s
Success
thread-test.cSuccessNone0.051372s4.476803s
Success
thread.cSuccessNone0.050081s4.458795s
Success
thread_cageid_race.cSuccessNone0.052954s4.566180s
Success
tls_test.cSuccessNone0.055596s4.572441s
Success
uname.cSuccessNone0.049152s4.310512s
Success
wait.cSuccessNone2.053075s6.056556s
Success
waitpid_anychild.cSuccessNone0.057994s4.501521s
Success
waitpid_syscall.cSuccessNone1.057242s5.471713s
Success
waitpid_wnohang.cSuccessNone0.056215s4.041840s
Success
Signal Tests
alarm.cSuccessNone7.055288s10.959652s
Success
setitimer.cSuccessNone7.058179s11.027217s
Success
sigalrm.cSuccessNone2.056525s5.963999s
Success
sigchld.cSuccessNone1.058657s5.002584s
Success
signal-fork.cSuccessNone4.060109s8.105573s
Success
signal-simple.cSuccessNone0.056964s3.923077s
Success
signal.cSuccessNone0.052269s3.949699s
Success
signal_SIGCHLD.cFailureLind_wasm_Segmentation_Fault0.055071s4.366361s
/tmp/wasmtest_artifacts_xscdt96i/signal_tests/deterministic/signal_SIGCHLD.c:36: int main(): Assertion `waited_pid >= 0' failed.
Error: failed to run main module

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

signal_fork.cSuccessNone0.050888s4.359850s
Success
signal_int_ignored.cSuccessNone2.055620s6.456013s
Success
signal_int_thread.cSuccessNone0.053291s4.534470s
Success
signal_longjmp.cSuccessNone0.053097s3.958108s
Success
signal_nodefer.cSuccessNone0.052196s3.905739s
Success
signal_procmask.cSuccessNone0.049531s4.309111s
Success
signal_recursive.cSuccessNone0.050119s3.937525s
Success
signal_sa_mask.cSuccessNone0.050820s3.912591s
Success
sigpipe.cSuccessNone1.058805s5.365079s
Success
sigprocmask.cSuccessNone1.054619s4.991808s
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.125162s4.588071s
Success
mmap-negative2.cSuccessNone0.151841s4.166762s
Success
Signal Tests
signal_resethand.cSuccessNone1.057285s3.992319s
Success

@stupendoussuperpowers
Copy link
Contributor Author

Made the change suggested by @rennergade. Re-requesting reviews.

@rennergade rennergade merged commit aef4075 into main Feb 27, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move chroot responsibility to lind-boot instead of rawposix.

3 participants