Skip to content

Organize scripts by purpose#1237

Merged
Yaxuan-w merged 11 commits into
mainfrom
organize-scripts-dir
Jun 26, 2026
Merged

Organize scripts by purpose#1237
Yaxuan-w merged 11 commits into
mainfrom
organize-scripts-dir

Conversation

@Shounak-Ghosh

Copy link
Copy Markdown
Contributor

Description

This PR reorganizes the scripts/ directory to group files by their logical purpose. All existing standard commands continue to function exactly as before.

Closes #1208

What Changed

  • Directory Restructuring: Created purpose-driven subdirectories (bin/, build/, test/, generate/, data/, tools/, config/) and relocated the appropriate scripts, harnesses, and data files into them.
scripts/
  bin/           lind_compile, lind_run, lind_compile_cpp, lind-wasm-opt, cargo-lind_compile, wasip1-clang.sh
  build/         make_glibc_and_sysroot.sh, make_shared_glibc.sh, make_shared_libm.sh, make_archive.sh, extract_glibc_symbols.sh
  test/          test_runner.py, benchrunner.py, check_reports.py
  test/harnesses/  (moved from harnesses/)
  generate/      extract_versions.py, render_e2e_templates.py
  templates/     (unchanged — render_e2e_templates.py references it as CWD-relative "scripts/templates")
  data/          math-path.txt, version-path-minimal.txt, object_lists/, object_lists_final/
  tools/         add-export-tool/
  config/        rust/, lindfs-conf/, cloudbuild.yaml
  • Path & Reference Updates: Adjusted path references, repository root discovery heuristics, and relative traversals (e.g., adding extra ../ to account for the new depth) across the Makefile, Bash scripts, Python harnesses, and Dockerfiles.
  • Cleanup: Removed stale __pycache__ directories to prevent any caching of old file paths.

Verification

The following standard workflows were tested to ensure the file movements did not break existing functionality:

  • make build (Full build chain: lind-boot + sysroot resolves properly)
  • make test (All harnesses successfully discovered via the new test runner path)
  • make lindfs
  • User binaries (scripts/bin/lind_compile and scripts/bin/lind_run) correctly discover the repo root.
  • Benchmarking (scripts/test/benchrunner.py) executes successfully.

…d reference paths, clean up stale harnesses pycache, and tested that scripts work as before
@github-actions

github-actions Bot commented Jun 5, 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.056558s4.089731s
Success
thread.cSuccessNone0.048614s4.176935s
Success
tls_test.cSuccessNone0.055646s4.188955s
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.050535s0.118550s
Success
dlopen_fork.cSuccessNone0.051777s0.141598s
Success
dlopen_thread.cSuccessNone0.053649s0.141789s
Success
double_fork_dlopen.cSuccessNone0.055444s0.187483s
Success
fork_dlopen.cSuccessNone0.051010s0.143510s
Success
longjmp_dlopen.cSuccessNone0.050411s0.138157s
Success
rdynamic_main.cSuccessNone0.052725s0.135900s
Success
File Tests
chartests.cSuccessNone0.050287s0.148648s
Success
chdir_getcwd.cSuccessNone0.051171s0.122584s
Success
chmod.cSuccessNone0.056915s0.133830s
Success
clock_gettime_highlevel.cSuccessNone0.121131s0.166864s
Success
clock_gettime_simple.cSuccessNone0.044343s0.108066s
Success
cloexec.cSuccessNone0.054606s0.145877s
Success
close.cSuccessNone0.061507s0.143462s
Success
creat_access.cSuccessNone0.054679s0.119951s
Success
doubleclose.cSuccessNone0.045381s0.103754s
Success
dup.cSuccessNone0.047740s0.117419s
Success
dup2.cSuccessNone0.051788s0.117945s
Success
dup3.cSuccessNone0.061967s0.126737s
Success
dupwrite.cSuccessNone0.053213s0.119010s
Success
etc_conf.cSuccessNone0.048445s0.123609s
Success
faccessat.cSuccessNone0.048975s0.123773s
Success
fchdir.cSuccessNone0.056309s0.134996s
Success
fchmod.cSuccessNone0.056830s0.134149s
Success
fchmodat.cSuccessNone0.050091s0.119205s
Success
fcntl.cSuccessNone0.053075s0.134705s
Success
fcntl_dupfd.cSuccessNone0.045625s0.112529s
Success
fdatasync.cSuccessNone0.052519s0.115229s
Success
filetest.cSuccessNone0.051975s0.114712s
Success
filetest1000.cSuccessNone0.060379s0.128129s
Success
flock.cSuccessNone0.061060s0.169001s
Success
fstat.cSuccessNone0.054491s0.134082s
Success
fstatfs.cSuccessNone0.048382s0.111433s
Success
fsync.cSuccessNone0.051744s0.115098s
Success
ftruncate.cSuccessNone0.058591s0.213892s
Success
getcwd.cSuccessNone0.049117s0.111708s
Success
getcwd_null.cSuccessNone0.054358s0.126408s
Success
getpgid.cSuccessNone0.046879s0.105896s
Success
getrandom.cSuccessNone0.052533s0.132875s
Success
ioctl.cSuccessNone0.063352s0.127183s
Success
link.cSuccessNone0.058189s0.162759s
Success
locale_test.cSuccessNone0.067108s0.319692s
Success
lseek.cSuccessNone0.057178s0.196990s
Success
lstat.cSuccessNone0.057266s0.141217s
Success
mkdir_rmdir.cSuccessNone0.053511s0.125845s
Success
mkfifo_test.cSuccessNone0.058355s0.172859s
Success
mknod.cSuccessNone0.052916s0.129458s
Success
nocancel_io.cSuccessNone0.055857s0.144836s
Success
open.cSuccessNone0.047041s0.108130s
Success
openat.cSuccessNone0.049073s0.117279s
Success
path_conversion_safety.cSuccessNone0.056985s0.140500s
Success
ppoll.cSuccessNone0.057653s0.130959s
Success
pread_pwrite.cSuccessNone0.049675s0.123872s
Success
preadv_pwritev.cSuccessNone0.055475s0.139053s
Success
printf.cSuccessNone0.045198s0.102371s
Success
prlimit64.cSuccessNone0.046606s0.108663s
Success
read.cSuccessNone0.054584s0.133541s
Success
readbytes.cSuccessNone0.049737s0.111724s
Success
readdir_basic.cSuccessNone0.057021s0.154470s
Success
readlink.cSuccessNone0.053529s0.125987s
Success
readlinkat.cSuccessNone0.054757s0.131210s
Success
readv_writev_test.cSuccessNone0.056645s0.135770s
Success
rename.cSuccessNone0.056951s0.124271s
Success
renameat.cSuccessNone0.056402s0.138267s
Success
sc-writev.cSuccessNone0.054341s0.121554s
Success
stat.cSuccessNone0.054584s0.132269s
Success
statfs.cSuccessNone0.048775s0.110400s
Success
symlink.cSuccessNone0.057917s0.152810s
Success
sync_file_range.cSuccessNone0.050957s0.117512s
Success
timespec_time_t_compat.cSuccessNone0.050473s0.114113s
Success
trailing_slash.cSuccessNone0.053769s0.126596s
Success
truncate.cSuccessNone0.054668s0.143814s
Success
unlink.cSuccessNone0.056374s0.158186s
Success
unlinkat.cSuccessNone0.055356s0.140305s
Success
utimensat.cSuccessNone0.052675s0.140395s
Success
write.cSuccessNone0.047092s0.103183s
Success
writeloop.cSuccessNone0.057297s0.121100s
Success
writepartial.cSuccessNone0.054275s0.114259s
Success
writev.cSuccessNone0.054731s0.127555s
Success
Math Tests
math_link_smoke.cSuccessNone0.056733s0.111528s
Success
math_tests.cSuccessNone0.060716s0.140460s
Success
printf_float.cSuccessNone0.058022s0.137515s
Success
Memory Tests
brk.cSuccessNone0.067401s0.165540s
Success
fork_large_memory.cSuccessNone0.089584s0.491502s
Success
malloc.cSuccessNone0.061070s0.123535s
Success
malloc_large.cSuccessNone0.092522s0.200288s
Success
memcpy.cSuccessNone0.076032s0.202489s
Success
memory_error_test.cSuccessNone0.059541s0.158621s
Success
mmap.cSuccessNone0.070638s0.170870s
Success
mmap_aligned.cSuccessNone0.050525s0.146517s
Success
mmap_complicated.cSuccessNone0.057349s0.155645s
Success
mmap_file.cSuccessNone0.071294s0.153019s
Success
mmap_shared.cSuccessNone0.057123s0.171900s
Success
mmaptest.cSuccessNone0.072633s0.173891s
Success
mprotect.cSuccessNone0.051995s0.118409s
Success
mprotect_boundary.cSuccessNone0.054066s0.174760s
Success
mprotect_end_region.cSuccessNone0.065969s0.167831s
Success
mprotect_middle_region.cSuccessNone0.068575s0.188992s
Success
mprotect_multiple_times.cSuccessNone0.065323s0.121163s
Success
mprotect_same_value.cSuccessNone0.098696s0.241299s
Success
mprotect_spanning_regions.cSuccessNone0.073136s0.169306s
Success
munmap_adjacent_shm.cSuccessNone0.051989s0.136465s
Success
sbrk.cSuccessNone0.053541s0.121287s
Success
segfault.cSuccessNone0.067194s0.172880s
Success
shm.cSuccessNone0.092009s0.272530s
Success
shmtest.cSuccessNone0.050817s0.137799s
Success
thread_malloc_sequential.cSuccessNone0.106551s0.321223s
Success
vtable.cSuccessNone0.102467s0.280287s
Success
Networking Tests
accept4.cSuccessNone0.058633s0.137929s
Success
dns_resolve_test.cSuccessNone0.053228s0.124119s
Success
dnstest.cSuccessNone0.053017s0.120494s
Success
epoll_badfd.cSuccessNone0.048155s0.110128s
Success
epoll_edge_triggered.cSuccessNone0.211369s0.384662s
Success
epollcreate1.cSuccessNone0.054927s0.134757s
Success
error_handling_net.cSuccessNone0.062966s0.198872s
Success
getaddrinfo_test.cSuccessNone0.058222s0.160064s
Success
getaddrinfo_unspec.cSuccessNone0.054986s0.226342s
Success
gethostname.cSuccessNone0.047908s0.106946s
Success
getifaddrs.cSuccessNone0.055033s0.127092s
Success
getsockname.cSuccessNone0.056174s0.128426s
Success
getsockopt.cSuccessNone0.057445s0.162430s
Success
ipv6_basic.cSuccessNone0.059764s0.159691s
Success
makepipe.cSuccessNone0.046578s0.104606s
Success
nonblocking_eagain.cSuccessNone0.058956s0.167292s
Success
pipe.cSuccessNone0.057392s0.133083s
Success
pipe2.cSuccessNone0.055209s0.124715s
Success
pipeinput.cSuccessNone0.058175s0.157938s
Success
pipeinput2.cSuccessNone0.057892s0.163207s
Success
pipeonestring.cSuccessNone0.056861s0.156352s
Success
pipepong.cSuccessNone0.056239s0.159478s
Success
pipewrite.cSuccessNone0.049736s0.120098s
Success
poll.cSuccessNone0.053488s0.116504s
Success
recvfrom-sendto.cSuccessNone0.057368s0.132809s
Success
sendmsg_recvmsg_test.cSuccessNone0.054860s0.135483s
Success
serverclient.cSuccessNone0.054139s0.137061s
Success
shutdown.cSuccessNone0.057180s0.135351s
Success
shutdown_fork.cSuccessNone0.054719s0.146404s
Success
simple-select.cSuccessNone0.057315s0.156498s
Success
simple_epoll.cSuccessNone0.056316s0.129338s
Success
socket.cSuccessNone0.053359s0.119015s
Success
socket_cloexec.cSuccessNone0.053492s0.116018s
Success
socket_options_advanced.cSuccessNone0.060326s0.177114s
Success
socketepoll.cSuccessNone0.054064s0.120182s
Success
socketpair.cSuccessNone0.052744s0.139056s
Success
socketselect.cSuccessNone0.053670s0.127687s
Success
udp_send_recv.cSuccessNone0.161982s0.283241s
Success
uds-getsockname.cSuccessNone0.054370s0.119407s
Success
uds-nb-select.cSuccessNone2.063897s2.194613s
Success
uds-serverclient.cSuccessNone0.058640s0.165856s
Success
uds-socketselect.cSuccessNone0.054635s0.131126s
Success
uds_listen_poll.cSuccessNone1.061365s1.174644s
Success
writev_socket.cSuccessNone0.058641s0.162870s
Success
Process Tests
barrier_test.cSuccessNone0.053610s0.138233s
Success
chain_thread.cSuccessNone1.056181s1.151340s
Success
ctor_syscall_test.cSuccessNone0.044935s0.107583s
Success
cxa_atexit_test.cSuccessNone0.052161s0.111702s
Success
exec_non_utf8.cSuccessNone0.053419s0.118859s
Success
execve_shebang.cSuccessNone0.055814s0.141200s
Success
exit.cSuccessNone0.054463s0.111509s
Success
exit_failure.cSuccessNone0.060041s0.161946s
Success
exit_group_thread.cSuccessNone0.056079s0.154102s
Success
exit_status_first_wins.cSuccessNone0.058444s0.154617s
Success
flockfile_test.cSuccessNone0.055381s0.151006s
Success
fork2malloc.cSuccessNone0.056698s0.143047s
Success
fork_select.cSuccessNone0.056215s0.150648s
Success
fork_simple.cSuccessNone0.052540s0.133594s
Success
fork_syscall.cSuccessNone0.058734s0.626887s
Success
fork_tls_ctype.cSuccessNone0.057007s0.161861s
Success
forkandopen.cSuccessNone0.057149s0.152766s
Success
forkdup.cSuccessNone0.057010s0.148007s
Success
forkexecuid.cSuccessNone0.051983s0.155414s
Success
forkexecv-arg.cSuccessNone0.053810s0.152814s
Success
forkexecv.cSuccessNone0.095796s0.146954s
Success
forkfiles.cSuccessNone0.055999s0.145610s
Success
forkmalloc.cSuccessNone0.054950s0.137326s
Success
forknodup.cSuccessNone0.055338s0.146885s
Success
function-ptr.cSuccessNone0.051958s0.115225s
Success
getegid_syscall.cSuccessNone0.056135s0.490355s
Success
getgid_syscall.cSuccessNone0.056867s0.491573s
Success
getpid.cSuccessNone0.048246s0.107109s
Success
getpid_syscall.cSuccessNone0.057038s0.477410s
Success
getppid.cSuccessNone0.081794s0.194148s
Success
getppid_syscall.cSuccessNone0.057286s0.391235s
Success
getuid.cSuccessNone0.054291s0.118515s
Success
getuid_syscall.cSuccessNone0.053461s0.244546s
Success
hello-arg.cSuccessNone0.045604s0.111467s
Success
hello.cSuccessNone0.044858s0.103056s
Success
longjmp.cSuccessNone0.046586s0.114955s
Success
mutex.cSuccessNone2.063583s2.137211s
Success
printf_deadlock_smoke.cSuccessNone0.065380s0.173480s
Success
printf_thread_test.cSuccessNone0.052736s0.142291s
Success
sem_forks.cSuccessNone0.055995s0.180587s
Success
setjmp_edge.cSuccessNone0.061667s0.229599s
Success
setsid.cSuccessNone0.047896s0.107822s
Success
template.cSuccessNone0.054736s0.183072s
Success
test_crossmodule_longjmp.cSuccessNone0.054867s0.152246s
Success
test_exec_nofork.cSuccessNone0.053034s0.138668s
Success
test_unlink_open_file.cSuccessNone0.051570s0.113779s
Success
thread-guard.cSuccessNone0.053601s0.134151s
Success
thread-test.cSuccessNone0.049655s0.122260s
Success
thread.cSuccessNone0.049515s0.121936s
Success
thread_cageid_race.cSuccessNone0.050710s0.292424s
Success
tls_test.cSuccessNone0.052987s0.161665s
Success
uname.cSuccessNone0.048490s0.109483s
Success
wait.cSuccessNone0.051421s0.151461s
Success
waitpid_anychild.cSuccessNone0.055226s0.141019s
Success
waitpid_syscall.cSuccessNone1.055780s1.233276s
Success
waitpid_wnohang.cSuccessNone0.056094s0.141646s
Success
Signal Tests
alarm.cSuccessNone7.055831s7.155283s
Success
eintr_fork_signal.cSuccessNone1.057696s1.157373s
Success
kill.cSuccessNone1.053700s1.141233s
Success
pause_test.cSuccessNone1.056340s1.150079s
Success
setitimer.cSuccessNone7.058121s7.163143s
Success
sigalrm.cSuccessNone2.054472s2.139137s
Success
sigaltstack.cSuccessNone0.055780s0.131787s
Success
sigchld.cSuccessNone1.055474s1.160698s
Success
signal-fork.cSuccessNone4.055905s4.136728s
Success
signal-simple.cSuccessNone0.055419s0.122683s
Success
signal_SIGCHLD.cSuccessNone0.053347s0.143354s
Success
signal_fork.cSuccessNone0.050979s0.141113s
Success
signal_int_ignored.cSuccessNone2.054352s2.140948s
Success
signal_kill_cleanup.cSuccessNone1.052540s1.136520s
Success
signal_procmask.cSuccessNone0.048897s0.121397s
Success
signal_read_interrupt.cSuccessNone0.559766s0.646241s
Success
signal_recursive.cSuccessNone0.049332s0.125783s
Success
signal_sa_mask.cSuccessNone0.048938s0.115823s
Success
signal_select_interrupt.cSuccessNone0.558617s0.647057s
Success
signal_write_interrupt.cSuccessNone1.056233s1.140304s
Success
sigpipe.cSuccessNone1.058718s1.152834s
Success
sigprocmask.cSuccessNone1.053344s1.128708s
Success
sigsuspend_test.cSuccessNone1.052961s1.153167s
Success
test_sigsetjmp.cSuccessNone0.055083s0.151695s
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.046108s0.109034s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.113511s0.120223s
Success
invalid_access_fork.cSuccessNone0.192038s0.312250s
Success
mmap-negative1.cSuccessNone0.133677s0.114080s
Success
mmap-negative2.cSuccessNone0.146706s0.178094s
Success
Signal Tests
signal_resethand.cSuccessNone1.053798s1.135203s
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.386803s8.883818s
LIBCPP_SORT_OK 1 2 3

Yaxuan-w
Yaxuan-w previously approved these changes Jun 5, 2026
@qianxichen233

qianxichen233 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

I think some of the scripts path is used in apps repo (https://github.com/Lind-Project/lind-wasm-apps/), will need a parallel PR on that side to fix path otherwise a few application compilation will be broken

@vidyalakshmir vidyalakshmir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks fine! Agree what Qianxi said. We need to fix the paths to any of these scripts/binaries (like Lind-run etc) within the apps and also grates repo (if they use it).

@Yaxuan-w

Copy link
Copy Markdown
Member

@qianxichen233 @vidyalakshmir Thanks for pointing these out! I've opened an issue to track this: Lind-Project/lind-wasm-apps#268.

@Shounak-Ghosh Can you resolve merge conflicts and then I think this should be good to merge, then you can work on Lind-Project/lind-wasm-apps#268 as next task :D

@qianxichen233

Copy link
Copy Markdown
Contributor

@qianxichen233 @vidyalakshmir Thanks for pointing these out! I've opened an issue to track this: Lind-Project/lind-wasm-apps#268.

@Shounak-Ghosh Can you resolve merge conflicts and then I think this should be good to merge, then you can work on Lind-Project/lind-wasm-apps#268 as next task :D

I think an ideal model is to have the PR up on apps side as well, then merge both PR (this one and the one from apps side) together. Otherwise there will be a period of time where apps side is broken

@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.055446s4.020818s
Success
thread.cSuccessNone0.045370s4.113340s
Success
tls_test.cSuccessNone0.048766s4.130323s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.046361s0.115283s
Success
dlopen_fork.cSuccessNone0.049319s0.139081s
Success
dlopen_thread.cSuccessNone0.051572s0.141552s
Success
double_fork_dlopen.cSuccessNone0.052860s0.184233s
Success
fork_dlopen.cSuccessNone0.047969s0.140694s
Success
longjmp_dlopen.cSuccessNone0.047256s0.134404s
Success
rdynamic_main.cSuccessNone0.048134s0.134216s
Success
File Tests
chartests.cSuccessNone0.046584s0.149336s
Success
chdir_getcwd.cSuccessNone0.046677s0.118542s
Success
chmod.cSuccessNone0.052016s0.130992s
Success
clock_gettime_highlevel.cSuccessNone0.117824s0.162199s
Success
clock_gettime_simple.cSuccessNone0.040586s0.106481s
Success
cloexec.cSuccessNone0.051206s0.142077s
Success
close.cSuccessNone0.057971s0.139765s
Success
creat_access.cSuccessNone0.049839s0.118832s
Success
doubleclose.cSuccessNone0.042859s0.099960s
Success
dup.cSuccessNone0.042752s0.116200s
Success
dup2.cSuccessNone0.048776s0.115540s
Success
dup3.cSuccessNone0.046775s0.120912s
Success
dupwrite.cSuccessNone0.049533s0.116709s
Success
etc_conf.cSuccessNone0.044880s0.117880s
Success
faccessat.cSuccessNone0.046001s0.119518s
Success
fchdir.cSuccessNone0.052825s0.128514s
Success
fchmod.cSuccessNone0.050910s0.128444s
Success
fchmodat.cSuccessNone0.046344s0.116078s
Success
fcntl.cSuccessNone0.049768s0.130100s
Success
fcntl_dupfd.cSuccessNone0.042760s0.112187s
Success
fdatasync.cSuccessNone0.047818s0.112387s
Success
filetest.cSuccessNone0.050569s0.113145s
Success
filetest1000.cSuccessNone0.057535s0.126330s
Success
flock.cSuccessNone0.056211s0.162127s
Success
fstat.cSuccessNone0.052886s0.130399s
Success
fstatfs.cSuccessNone0.045145s0.109102s
Success
fsync.cSuccessNone0.050515s0.112872s
Success
ftruncate.cSuccessNone0.054031s0.210086s
Success
getcwd.cSuccessNone0.046548s0.109595s
Success
getcwd_null.cSuccessNone0.049649s0.121516s
Success
getpgid.cSuccessNone0.043748s0.104449s
Success
getrandom.cSuccessNone0.049149s0.128752s
Success
ioctl.cSuccessNone0.052437s0.122012s
Success
link.cSuccessNone0.053859s0.161636s
Success
locale_test.cSuccessNone0.062971s0.313149s
Success
lseek.cSuccessNone0.053293s0.190585s
Success
lstat.cSuccessNone0.056165s0.140734s
Success
mkdir_rmdir.cSuccessNone0.050478s0.120039s
Success
mkfifo_test.cSuccessNone0.054800s0.171504s
Success
mknod.cSuccessNone0.049064s0.126699s
Success
nocancel_io.cSuccessNone0.053879s0.143183s
Success
open.cSuccessNone0.044332s0.105883s
Success
openat.cSuccessNone0.046166s0.118135s
Success
path_conversion_safety.cSuccessNone0.053502s0.135625s
Success
ppoll.cSuccessNone0.053868s0.126314s
Success
pread_pwrite.cSuccessNone0.046345s0.121263s
Success
preadv_pwritev.cSuccessNone0.052268s0.133332s
Success
printf.cSuccessNone0.041253s0.101511s
Success
prlimit64.cSuccessNone0.043220s0.106753s
Success
read.cSuccessNone0.052523s0.129467s
Success
readbytes.cSuccessNone0.046618s0.111803s
Success
readdir_basic.cSuccessNone0.053931s0.152917s
Success
readlink.cSuccessNone0.049821s0.124743s
Success
readlinkat.cSuccessNone0.051263s0.128721s
Success
readv_writev_test.cSuccessNone0.054327s0.132111s
Success
rename.cSuccessNone0.053099s0.119621s
Success
renameat.cSuccessNone0.052100s0.132143s
Success
sc-writev.cSuccessNone0.049616s0.117578s
Success
stat.cSuccessNone0.051210s0.130707s
Success
statfs.cSuccessNone0.044530s0.108523s
Success
symlink.cSuccessNone0.052700s0.147822s
Success
sync_file_range.cSuccessNone0.047613s0.116285s
Success
timespec_time_t_compat.cSuccessNone0.046529s0.109780s
Success
trailing_slash.cSuccessNone0.049165s0.122847s
Success
truncate.cSuccessNone0.051066s0.139609s
Success
unlink.cSuccessNone0.053991s0.155681s
Success
unlinkat.cSuccessNone0.051998s0.137110s
Success
utimensat.cSuccessNone0.050330s0.136817s
Success
write.cSuccessNone0.043190s0.102337s
Success
writeloop.cSuccessNone0.052831s0.119288s
Success
writepartial.cSuccessNone0.050480s0.110143s
Success
writev.cSuccessNone0.051010s0.125244s
Success
Math Tests
math_link_smoke.cSuccessNone0.053290s0.108957s
Success
math_tests.cSuccessNone0.057236s0.136265s
Success
printf_float.cSuccessNone0.053443s0.131150s
Success
Memory Tests
brk.cSuccessNone0.047188s0.113012s
Success
fork_large_memory.cSuccessNone0.080275s0.448976s
Success
malloc.cSuccessNone0.048364s0.102222s
Success
malloc_large.cSuccessNone0.046222s0.104075s
Success
memcpy.cSuccessNone0.045042s0.103945s
Success
memory_error_test.cSuccessNone0.052169s0.138123s
Success
mmap.cSuccessNone0.042125s0.103327s
Success
mmap_address_truncation.cSuccessNone0.044580s0.108622s
Success
mmap_aligned.cSuccessNone0.044113s0.120438s
Success
mmap_complicated.cSuccessNone0.049741s0.142342s
Success
mmap_file.cSuccessNone0.050498s0.118929s
Success
mmap_shared.cSuccessNone0.049185s0.136446s
Success
mmaptest.cSuccessNone0.050045s0.113923s
Success
mprotect.cSuccessNone0.045512s0.106634s
Success
mprotect_boundary.cSuccessNone0.044241s0.116132s
Success
mprotect_end_region.cSuccessNone0.043659s0.111666s
Success
mprotect_middle_region.cSuccessNone0.044397s0.113183s
Success
mprotect_multiple_times.cSuccessNone0.043371s0.114959s
Success
mprotect_same_value.cSuccessNone0.043421s0.111128s
Success
mprotect_spanning_regions.cSuccessNone0.044688s0.127835s
Success
munmap_adjacent_shm.cSuccessNone0.045621s0.125892s
Success
sbrk.cSuccessNone0.045502s0.106820s
Success
segfault.cSuccessNone0.052147s0.148931s
Success
shm.cSuccessNone0.049955s0.141936s
Success
shmtest.cSuccessNone0.044932s0.111381s
Success
thread_malloc_sequential.cSuccessNone0.051206s0.181536s
Success
vtable.cSuccessNone0.056237s0.126252s
Success
Networking Tests
accept4.cSuccessNone0.054851s0.136914s
Success
dns_resolve_test.cSuccessNone0.078809s0.232981s
Success
dnstest.cSuccessNone0.058549s0.136319s
Success
epoll_badfd.cSuccessNone0.044515s0.106689s
Success
epoll_edge_triggered.cSuccessNone0.211525s0.385145s
Success
epollcreate1.cSuccessNone0.056326s0.130986s
Success
error_handling_net.cSuccessNone0.067690s0.261161s
Success
getaddrinfo_test.cSuccessNone0.112020s0.321488s
Success
getaddrinfo_unspec.cSuccessNone0.072124s0.157107s
Success
gethostname.cSuccessNone0.046159s0.105039s
Success
getifaddrs.cSuccessNone0.051810s0.125872s
Success
getsockname.cSuccessNone0.054972s0.127413s
Success
getsockopt.cSuccessNone0.053741s0.157738s
Success
ipv6_basic.cSuccessNone0.063582s0.163492s
Success
makepipe.cSuccessNone0.044782s0.104527s
Success
nonblocking_eagain.cSuccessNone0.055528s0.194104s
Success
pipe.cSuccessNone0.058570s0.183463s
Success
pipe2.cSuccessNone0.086148s0.220020s
Success
pipeinput.cSuccessNone0.078904s0.279379s
Success
pipeinput2.cSuccessNone0.061891s0.159383s
Success
pipeonestring.cSuccessNone0.054257s0.152931s
Success
pipepong.cSuccessNone0.051922s0.160454s
Success
pipewrite.cSuccessNone0.050040s0.120172s
Success
poll.cSuccessNone0.050374s0.116952s
Success
recvfrom-sendto.cSuccessNone0.052540s0.129797s
Success
sendmsg_recvmsg_test.cSuccessNone0.052018s0.135142s
Success
serverclient.cSuccessNone0.051642s0.170271s
Success
shutdown.cSuccessNone0.054231s0.136641s
Success
shutdown_fork.cSuccessNone0.051739s0.143928s
Success
simple-select.cSuccessNone0.089846s0.183226s
Success
simple_epoll.cSuccessNone0.052429s0.125297s
Success
socket.cSuccessNone0.052308s0.122574s
Success
socket_cloexec.cSuccessNone0.052466s0.129995s
Success
socket_options_advanced.cSuccessNone0.083105s0.353628s
Success
socketepoll.cSuccessNone0.049996s0.116849s
Success
socketpair.cSuccessNone0.072680s0.208204s
Success
socketselect.cSuccessNone0.050682s0.127765s
Success
udp_send_recv.cSuccessNone0.164579s0.276953s
Success
uds-getsockname.cSuccessNone0.054148s0.118180s
Success
uds-nb-select.cSuccessNone2.060615s2.192474s
Success
uds-serverclient.cSuccessNone0.055125s0.163288s
Success
uds-socketselect.cSuccessNone0.050977s0.127377s
Success
uds_listen_poll.cSuccessNone1.073420s1.195177s
Success
writev_socket.cSuccessNone0.054565s0.155062s
Success
Process Tests
barrier_test.cSuccessNone0.049297s0.134837s
Success
chain_thread.cSuccessNone1.053010s1.141820s
Success
ctor_syscall_test.cSuccessNone0.041280s0.105319s
Success
cxa_atexit_test.cSuccessNone0.046962s0.108797s
Success
exec_non_utf8.cSuccessNone0.049982s0.116635s
Success
execve_shebang.cSuccessNone0.051349s0.120038s
Success
exit.cSuccessNone0.048132s0.107617s
Success
exit_failure.cSuccessNone0.049425s0.132473s
Success
exit_group_thread.cSuccessNone0.052461s0.148614s
Success
exit_status_first_wins.cSuccessNone0.055005s0.154768s
Success
flockfile_test.cSuccessNone0.050402s0.145502s
Success
fork2malloc.cSuccessNone0.053570s0.137292s
Success
fork_select.cSuccessNone0.049734s0.147479s
Success
fork_simple.cSuccessNone0.048516s0.132047s
Success
fork_syscall.cSuccessNone0.054558s0.619501s
Success
fork_tls_ctype.cSuccessNone0.053376s0.156271s
Success
forkandopen.cSuccessNone0.052136s0.146241s
Success
forkdup.cSuccessNone0.055752s0.142510s
Success
forkexecuid.cSuccessNone0.049211s0.152937s
Success
forkexecv-arg.cSuccessNone0.051491s0.146751s
Success
forkexecv.cSuccessNone0.047131s0.138398s
Success
forkfiles.cSuccessNone0.051989s0.144285s
Success
forkmalloc.cSuccessNone0.051437s0.132971s
Success
forknodup.cSuccessNone0.051262s0.144561s
Success
function-ptr.cSuccessNone0.046231s0.107895s
Success
getegid_syscall.cSuccessNone0.051315s0.468518s
Success
getgid_syscall.cSuccessNone0.050957s0.467297s
Success
getpid.cSuccessNone0.044232s0.102875s
Success
getpid_syscall.cSuccessNone0.052233s0.461798s
Success
getppid.cSuccessNone0.053298s0.131156s
Success
getppid_syscall.cSuccessNone0.054359s0.383189s
Success
getuid.cSuccessNone0.051738s0.114620s
Success
getuid_syscall.cSuccessNone0.048900s0.239567s
Success
hello-arg.cSuccessNone0.040980s0.107033s
Success
hello.cSuccessNone0.040909s0.100021s
Success
longjmp.cSuccessNone0.042590s0.110097s
Success
mutex.cSuccessNone2.053862s2.129712s
Success
printf_deadlock_smoke.cSuccessNone0.059280s0.166170s
Success
printf_thread_test.cSuccessNone0.049208s0.143660s
Success
sem_forks.cSuccessNone0.053011s0.172767s
Success
setjmp_edge.cSuccessNone0.046488s0.185416s
Success
setsid.cSuccessNone0.043487s0.103669s
Success
template.cSuccessNone0.050732s0.180036s
Success
test_crossmodule_longjmp.cSuccessNone0.051483s0.149346s
Success
test_exec_nofork.cSuccessNone0.048933s0.134268s
Success
test_unlink_open_file.cSuccessNone0.045144s0.103661s
Success
thread-guard.cSuccessNone0.048088s0.128471s
Success
thread-test.cSuccessNone0.045902s0.121611s
Success
thread.cSuccessNone0.045740s0.120304s
Success
thread_cageid_race.cSuccessNone0.046231s0.288011s
Success
tls_test.cSuccessNone0.048354s0.156944s
Success
uname.cSuccessNone0.044349s0.104708s
Success
wait.cSuccessNone0.048096s0.148191s
Success
waitpid_anychild.cSuccessNone0.050343s0.135436s
Success
waitpid_syscall.cSuccessNone1.050662s1.225282s
Success
waitpid_wnohang.cSuccessNone0.050944s0.137483s
Success
Signal Tests
alarm.cSuccessNone7.050451s7.143577s
Success
eintr_fork_signal.cSuccessNone1.052700s1.149674s
Success
kill.cSuccessNone1.050224s1.138079s
Success
pause_test.cSuccessNone1.051779s1.145135s
Success
setitimer.cSuccessNone7.050176s7.154436s
Success
sigalrm.cSuccessNone2.050622s2.138189s
Success
sigaltstack.cSuccessNone0.052329s0.129462s
Success
sigchld.cSuccessNone1.052226s1.139581s
Success
signal-fork.cSuccessNone4.052845s4.133922s
Success
signal-simple.cSuccessNone0.051389s0.119807s
Success
signal_SIGCHLD.cSuccessNone0.049393s0.139765s
Success
signal_fork.cSuccessNone0.047530s0.145741s
Success
signal_int_ignored.cSuccessNone2.051400s2.136915s
Success
signal_kill_cleanup.cSuccessNone1.050096s1.128972s
Success
signal_procmask.cSuccessNone0.046552s0.119981s
Success
signal_read_interrupt.cSuccessNone0.554606s0.640242s
Success
signal_recursive.cSuccessNone0.045663s0.125754s
Success
signal_sa_mask.cSuccessNone0.045268s0.115083s
Success
signal_select_interrupt.cSuccessNone0.555742s0.643882s
Success
signal_write_interrupt.cSuccessNone1.054027s1.133561s
Success
sigpipe.cSuccessNone1.052565s1.143531s
Success
sigprocmask.cSuccessNone1.050451s1.122850s
Success
sigsuspend_test.cSuccessNone1.048871s1.141760s
Success
test_sigsetjmp.cSuccessNone0.053025s0.153717s
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.042180s0.105238s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.107435s0.134036s
Success
invalid_access_fork.cSuccessNone0.125980s0.231831s
Success
mmap-negative1.cSuccessNone0.112126s0.114584s
Success
mmap-negative2.cSuccessNone0.159475s0.155980s
Success
Signal Tests
signal_resethand.cSuccessNone1.050225s1.130402s
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.384572s8.613182s
LIBCPP_SORT_OK 1 2 3

Yaxuan-w
Yaxuan-w previously approved these changes Jun 16, 2026
qianxichen233
qianxichen233 previously approved these changes Jun 24, 2026
Shounak-Ghosh and others added 9 commits June 25, 2026 00:49
…d reference paths, clean up stale harnesses pycache, and tested that scripts work as before
)

* Enable lind-boot to load wasm bin by bytes

* update

* make lind-boot as lib
* Error conditions and constraints added to prevent overflow and silent wrapping

* Refactor error handling for page overflow check

* code formatted

* minor formatting

* fix: rustfmt formatting

* Test case resolved and removed from skip list

* test updated

* Test case updated

* compile time issue fixed

* [Test case] output mismatch fixed

---------

Co-authored-by: Harindham Sharma <harindhamsharma@Mac.lan>
@Shounak-Ghosh Shounak-Ghosh dismissed stale reviews from qianxichen233 and Yaxuan-w via 92d6752 June 25, 2026 00:59
@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.059107s4.013532s
Success
thread.cSuccessNone0.051446s4.064669s
Success
tls_test.cSuccessNone0.052744s4.097126s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.049781s0.120296s
Success
dlopen_fork.cSuccessNone0.052139s0.146597s
Success
dlopen_thread.cSuccessNone0.053318s0.144290s
Success
double_fork_dlopen.cSuccessNone0.055241s0.188528s
Success
fork_dlopen.cSuccessNone0.052096s0.144908s
Success
longjmp_dlopen.cSuccessNone0.050058s0.139564s
Success
rdynamic_main.cSuccessNone0.051944s0.140708s
Success
File Tests
chartests.cSuccessNone0.049889s0.151198s
Success
chdir_getcwd.cSuccessNone0.051339s0.124511s
Success
chmod.cSuccessNone0.055619s0.135968s
Success
clock_gettime_highlevel.cSuccessNone0.122076s0.176157s
Success
clock_gettime_simple.cSuccessNone0.045352s0.111714s
Success
cloexec.cSuccessNone0.054366s0.147803s
Success
close.cSuccessNone0.063042s0.146610s
Success
copy_file_range.cSuccessNone0.053866s0.148731s
Success
creat_access.cSuccessNone0.053752s0.122965s
Success
doubleclose.cSuccessNone0.046404s0.106657s
Success
dup.cSuccessNone0.047524s0.122798s
Success
dup2.cSuccessNone0.052409s0.119953s
Success
dup3.cSuccessNone0.050632s0.124262s
Success
dupwrite.cSuccessNone0.053061s0.122458s
Success
etc_conf.cSuccessNone0.048423s0.125911s
Success
faccessat.cSuccessNone0.050502s0.124471s
Success
fchdir.cSuccessNone0.055233s0.134110s
Success
fchmod.cSuccessNone0.055272s0.136225s
Success
fchmodat.cSuccessNone0.049724s0.126287s
Success
fcntl.cSuccessNone0.052742s0.134770s
Success
fcntl_dupfd.cSuccessNone0.047534s0.114555s
Success
fdatasync.cSuccessNone0.052379s0.117045s
Success
filetest.cSuccessNone0.052240s0.116572s
Success
filetest1000.cSuccessNone0.061817s0.134098s
Success
flock.cSuccessNone0.060049s0.170868s
Success
fstat.cSuccessNone0.054963s0.136889s
Success
fstatfs.cSuccessNone0.048053s0.115486s
Success
fsync.cSuccessNone0.052207s0.121746s
Success
ftruncate.cSuccessNone0.056443s0.212241s
Success
getcwd.cSuccessNone0.050306s0.113509s
Success
getcwd_null.cSuccessNone0.053990s0.127811s
Success
getpgid.cSuccessNone0.047895s0.111877s
Success
getrandom.cSuccessNone0.052736s0.131949s
Success
ioctl.cSuccessNone0.056891s0.127815s
Success
link.cSuccessNone0.056061s0.161784s
Success
locale_test.cSuccessNone0.063794s0.319927s
Success
lseek.cSuccessNone0.057717s0.196051s
Success
lstat.cSuccessNone0.059729s0.140336s
Success
mkdir_rmdir.cSuccessNone0.053998s0.125593s
Success
mkfifo_test.cSuccessNone0.059162s0.174912s
Success
mknod.cSuccessNone0.053522s0.131807s
Success
nocancel_io.cSuccessNone0.056409s0.147765s
Success
open.cSuccessNone0.048159s0.111564s
Success
openat.cSuccessNone0.049706s0.121677s
Success
path_conversion_safety.cSuccessNone0.057341s0.140775s
Success
ppoll.cSuccessNone0.056918s0.133199s
Success
pread_pwrite.cSuccessNone0.051437s0.127734s
Success
preadv_pwritev.cSuccessNone0.056056s0.140955s
Success
printf.cSuccessNone0.045169s0.108091s
Success
prlimit64.cSuccessNone0.047756s0.113277s
Success
read.cSuccessNone0.053515s0.131916s
Success
readbytes.cSuccessNone0.049971s0.116659s
Success
readdir_basic.cSuccessNone0.055946s0.154969s
Success
readlink.cSuccessNone0.053521s0.129824s
Success
readlinkat.cSuccessNone0.054947s0.132989s
Success
readv_writev_test.cSuccessNone0.054373s0.133409s
Success
rename.cSuccessNone0.055338s0.127097s
Success
renameat.cSuccessNone0.056340s0.138969s
Success
sc-writev.cSuccessNone0.052974s0.123854s
Success
stat.cSuccessNone0.054587s0.135323s
Success
statfs.cSuccessNone0.048519s0.114553s
Success
symlink.cSuccessNone0.055803s0.152349s
Success
sync_file_range.cSuccessNone0.051384s0.117989s
Success
timespec_time_t_compat.cSuccessNone0.052368s0.119145s
Success
trailing_slash.cSuccessNone0.052539s0.128809s
Success
truncate.cSuccessNone0.055128s0.146443s
Success
unlink.cSuccessNone0.055652s0.158130s
Success
unlinkat.cSuccessNone0.054853s0.140271s
Success
utimensat.cSuccessNone0.053146s0.140300s
Success
write.cSuccessNone0.046976s0.107229s
Success
writeloop.cSuccessNone0.055426s0.123140s
Success
writepartial.cSuccessNone0.054349s0.115773s
Success
writev.cSuccessNone0.054500s0.129177s
Success
Math Tests
math_link_smoke.cSuccessNone0.056803s0.113466s
Success
math_tests.cSuccessNone0.063079s0.143327s
Success
printf_float.cSuccessNone0.057981s0.138397s
Success
Memory Tests
brk.cSuccessNone0.050637s0.117515s
Success
fork_large_memory.cSuccessNone0.083158s0.453375s
Success
malloc.cSuccessNone0.049466s0.109034s
Success
malloc_large.cSuccessNone0.050451s0.109746s
Success
memcpy.cSuccessNone0.050201s0.112390s
Success
memory_error_test.cSuccessNone0.054741s0.140528s
Success
mmap.cSuccessNone0.046113s0.110211s
Success
mmap_address_truncation.cSuccessNone0.048241s0.114330s
Success
mmap_aligned.cSuccessNone0.048183s0.126658s
Success
mmap_complicated.cSuccessNone0.052641s0.146589s
Success
mmap_file.cSuccessNone0.053327s0.122494s
Success
mmap_shared.cSuccessNone0.053133s0.141173s
Success
mmaptest.cSuccessNone0.050225s0.115728s
Success
mprotect.cSuccessNone0.047644s0.112127s
Success
mprotect_boundary.cSuccessNone0.047362s0.121902s
Success
mprotect_end_region.cSuccessNone0.047185s0.117272s
Success
mprotect_middle_region.cSuccessNone0.047896s0.117475s
Success
mprotect_multiple_times.cSuccessNone0.047592s0.117515s
Success
mprotect_same_value.cSuccessNone0.047493s0.114944s
Success
mprotect_spanning_regions.cSuccessNone0.047739s0.131440s
Success
munmap_adjacent_shm.cSuccessNone0.049379s0.130913s
Success
sbrk.cSuccessNone0.049198s0.111900s
Success
segfault.cSuccessNone0.054113s0.158239s
Success
shm.cSuccessNone0.052568s0.144595s
Success
shmtest.cSuccessNone0.048295s0.116044s
Success
thread_malloc_sequential.cSuccessNone0.054045s0.187594s
Success
vtable.cSuccessNone0.057941s0.128399s
Success
Networking Tests
accept4.cSuccessNone0.057540s0.137832s
Success
dns_resolve_test.cSuccessNone0.059637s0.155236s
Success
dnstest.cSuccessNone0.063518s0.136176s
Success
epoll_badfd.cSuccessNone0.049187s0.114094s
Success
epoll_edge_triggered.cSuccessNone0.213615s0.393383s
Success
epollcreate1.cSuccessNone0.056729s0.137975s
Success
error_handling_net.cSuccessNone0.063568s0.325307s
Success
getaddrinfo_test.cSuccessNone0.065049s0.179354s
Success
getaddrinfo_unspec.cSuccessNone0.105628s0.213970s
Success
gethostname.cSuccessNone0.052507s0.119172s
Success
getifaddrs.cSuccessNone0.055798s0.135883s
Success
getsockname.cSuccessNone0.057884s0.131160s
Success
getsockopt.cSuccessNone0.056518s0.176282s
Success
ipv6_basic.cSuccessNone0.070025s0.189107s
Success
makepipe.cSuccessNone0.048838s0.117500s
Success
nonblocking_eagain.cSuccessNone0.060618s0.171444s
Success
pipe.cSuccessNone0.056903s0.138602s
Success
pipe2.cSuccessNone0.060553s0.152792s
Success
pipeinput.cSuccessNone0.061462s0.179510s
Success
pipeinput2.cSuccessNone0.061302s0.182946s
Success
pipeonestring.cSuccessNone0.056351s0.158859s
Success
pipepong.cSuccessNone0.068769s0.195109s
Success
pipewrite.cSuccessNone0.052523s0.125861s
Success
poll.cSuccessNone0.053512s0.119602s
Success
recvfrom-sendto.cSuccessNone0.072651s0.176736s
Success
sendmsg_recvmsg_test.cSuccessNone0.060427s0.149576s
Success
serverclient.cSuccessNone0.056133s0.146898s
Success
shutdown.cSuccessNone0.059233s0.149008s
Success
shutdown_fork.cSuccessNone0.055351s0.150920s
Success
simple-select.cSuccessNone0.068311s0.181078s
Success
simple_epoll.cSuccessNone0.053837s0.128775s
Success
socket.cSuccessNone0.057044s0.129101s
Success
socket_cloexec.cSuccessNone0.090871s0.207428s
Success
socket_options_advanced.cSuccessNone0.062127s0.194766s
Success
socketepoll.cSuccessNone0.053077s0.122417s
Success
socketpair.cSuccessNone0.058752s0.158287s
Success
socketselect.cSuccessNone0.059813s0.144591s
Success
udp_send_recv.cSuccessNone0.162447s0.288299s
Success
uds-getsockname.cSuccessNone0.055019s0.128707s
Success
uds-nb-select.cSuccessNone2.075338s2.198965s
Success
uds-serverclient.cSuccessNone0.065805s0.181422s
Success
uds-socketselect.cSuccessNone0.070913s0.164306s
Success
uds_listen_poll.cSuccessNone1.065756s1.188222s
Success
writev_socket.cSuccessNone0.062400s0.192996s
Success
Process Tests
barrier_test.cSuccessNone0.052300s0.140789s
Success
chain_thread.cSuccessNone1.054850s1.150060s
Success
ctor_syscall_test.cSuccessNone0.045678s0.112217s
Success
cxa_atexit_test.cSuccessNone0.050871s0.114818s
Success
exec_non_utf8.cSuccessNone0.053021s0.121442s
Success
execve_shebang.cSuccessNone0.054927s0.121504s
Success
exit.cSuccessNone0.052018s0.113763s
Success
exit_failure.cSuccessNone0.053279s0.138066s
Success
exit_group_thread.cSuccessNone0.055451s0.157217s
Success
exit_status_first_wins.cSuccessNone0.056975s0.157681s
Success
flockfile_test.cSuccessNone0.056968s0.162081s
Success
fork2malloc.cSuccessNone0.055790s0.144187s
Success
fork_select.cSuccessNone0.053661s0.149525s
Success
fork_simple.cSuccessNone0.051952s0.135055s
Success
fork_syscall.cSuccessNone0.057859s0.652563s
Success
fork_tls_ctype.cSuccessNone0.056303s0.161398s
Success
forkandopen.cSuccessNone0.055273s0.151536s
Success
forkdup.cSuccessNone0.057096s0.149385s
Success
forkexecuid.cSuccessNone0.052076s0.159204s
Success
forkexecv-arg.cSuccessNone0.052899s0.151044s
Success
forkexecv.cSuccessNone0.050816s0.144737s
Success
forkfiles.cSuccessNone0.056361s0.150849s
Success
forkmalloc.cSuccessNone0.054326s0.138766s
Success
forknodup.cSuccessNone0.054698s0.148562s
Success
function-ptr.cSuccessNone0.048987s0.113295s
Success
getegid_syscall.cSuccessNone0.054468s0.483784s
Success
getgid_syscall.cSuccessNone0.055907s0.484914s
Success
getpid.cSuccessNone0.047777s0.108777s
Success
getpid_syscall.cSuccessNone0.055709s0.484560s
Success
getppid.cSuccessNone0.055983s0.138850s
Success
getppid_syscall.cSuccessNone0.063149s0.415146s
Success
getuid.cSuccessNone0.055399s0.121147s
Success
getuid_syscall.cSuccessNone0.054440s0.251509s
Success
hello-arg.cSuccessNone0.051118s0.122540s
Success
hello.cSuccessNone0.046806s0.108559s
Success
longjmp.cSuccessNone0.046274s0.116797s
Success
mutex.cSuccessNone2.056961s2.136949s
Success
printf_deadlock_smoke.cSuccessNone0.060894s0.171859s
Success
printf_thread_test.cSuccessNone0.052684s0.146637s
Success
sem_forks.cSuccessNone0.057378s0.180038s
Success
setjmp_edge.cSuccessNone0.048820s0.187214s
Success
setsid.cSuccessNone0.047076s0.109843s
Success
template.cSuccessNone0.054309s0.185976s
Success
test_crossmodule_longjmp.cSuccessNone0.054764s0.150914s
Success
test_exec_nofork.cSuccessNone0.053245s0.140860s
Success
test_unlink_open_file.cSuccessNone0.050117s0.111094s
Success
thread-guard.cSuccessNone0.056890s0.145198s
Success
thread-test.cSuccessNone0.051319s0.128689s
Success
thread.cSuccessNone0.049358s0.124776s
Success
thread_cageid_race.cSuccessNone0.053256s0.298793s
Success
tls_test.cSuccessNone0.052021s0.163955s
Success
uname.cSuccessNone0.049200s0.109658s
Success
wait.cSuccessNone0.051040s0.155608s
Success
waitpid_anychild.cSuccessNone0.053892s0.140532s
Success
waitpid_syscall.cSuccessNone1.054460s1.240956s
Success
waitpid_wnohang.cSuccessNone0.054295s0.142204s
Success
Signal Tests
alarm.cSuccessNone7.053023s7.149242s
Success
eintr_fork_signal.cSuccessNone1.055386s1.159823s
Success
kill.cSuccessNone1.053466s1.139362s
Success
pause_test.cSuccessNone1.054977s1.149716s
Success
setitimer.cSuccessNone7.053401s7.153287s
Success
sigalrm.cSuccessNone2.054673s2.145633s
Success
sigaltstack.cSuccessNone0.054926s0.134237s
Success
sigchld.cSuccessNone1.055130s1.143218s
Success
signal-fork.cSuccessNone4.055394s4.138918s
Success
signal-simple.cSuccessNone0.054403s0.127035s
Success
signal_SIGCHLD.cSuccessNone0.053066s0.149167s
Success
signal_fork.cSuccessNone0.050880s0.146288s
Success
signal_int_ignored.cSuccessNone2.053971s2.143607s
Success
signal_kill_cleanup.cSuccessNone1.051824s1.135609s
Success
signal_procmask.cSuccessNone0.049421s0.123998s
Success
signal_read_interrupt.cSuccessNone0.557450s0.645478s
Success
signal_recursive.cSuccessNone0.049833s0.129362s
Success
signal_sa_mask.cSuccessNone0.049114s0.119175s
Success
signal_select_interrupt.cSuccessNone0.557626s0.651969s
Success
signal_write_interrupt.cSuccessNone1.058514s1.140018s
Success
sigpipe.cSuccessNone1.056072s1.151100s
Success
sigprocmask.cSuccessNone1.053710s1.129738s
Success
sigsuspend_test.cSuccessNone1.052947s1.147654s
Success
test_sigsetjmp.cSuccessNone0.054976s0.154240s
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.045981s0.111641s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.112232s0.125329s
Success
invalid_access_fork.cSuccessNone0.135277s0.159085s
Success
mmap-negative1.cSuccessNone0.124164s0.113525s
Success
mmap-negative2.cSuccessNone0.120878s0.137152s
Success
Signal Tests
signal_resethand.cSuccessNone1.053410s1.140974s
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.374070s8.389022s
LIBCPP_SORT_OK 1 2 3

@Shounak-Ghosh Shounak-Ghosh requested a review from Yaxuan-w June 25, 2026 17:33
@Yaxuan-w Yaxuan-w merged commit eec8869 into main Jun 26, 2026
3 checks passed
@Shounak-Ghosh Shounak-Ghosh deleted the organize-scripts-dir branch June 26, 2026 17:07
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.

Organize scripts directory by purpose

7 participants