Skip to content

Use 3i make_syscall for exec module loading in lind-multi-process#1285

Open
Yaxuan-w wants to merge 2 commits into
mainfrom
redirect-wasm-path
Open

Use 3i make_syscall for exec module loading in lind-multi-process#1285
Yaxuan-w wants to merge 2 commits into
mainfrom
redirect-wasm-path

Conversation

@Yaxuan-w

Copy link
Copy Markdown
Member

Resolves #1001

This PR updates lind-multi-process so exec module loading no longer reads executable files directly through Rust/Wasmtime filesystem APIs.

Instead, exec now:

  • opens the exec target through rawposix via make_syscall
  • reads the module bytes through Lind read
  • closes the virtual fd through Lind close
  • compiles/deserializes the module from bytes using Module::from_binary or Module::deserialize
  • parses shebangs from already-read bytes instead of reopening the file with Rust FS APIs

@Yaxuan-w Yaxuan-w requested a review from qianxichen233 June 24, 2026 19:25
@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success14
Failures1
Compile Failures0
Runtime Failures1
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:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: 

STDERR:
[Grate|open] FAIL: expected pathname 'random', got ''
/tests/grate-tests/copy-data-between-cages/cp-stncpy_grate.c:55: int open_grate(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t): Assertion `0' failed.

copy-data-between-cages/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: 

STDERR:
[Grate|open] FAIL: expected pathname 'random', got ''
/tests/grate-tests/copy-data-between-cages/cpdata_grate.c:54: int open_grate(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t): Assertion `0' failed.

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.cFailureRuntime_Failure
Exit code: 70
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1

STDERR:
execv failed: No such file or directory
/tests/grate-tests/simple-tests/diff-cage-args_grate.c:118: int main(int, char **): Assertion 0' failed. [Grate|diff-cage-args] FAIL: child exited with status 256 /tests/grate-tests/simple-tests/diff-cage-args_grate.c:130: int main(int, char **): Assertion 0' failed.
failed to run main module

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

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.061991s4.173009s
Success
thread.cSuccessNone0.048662s4.245356s
Success
tls_test.cSuccessNone0.051399s4.293318s
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.049692s0.121220s
Success
dlopen_fork.cSuccessNone0.053315s0.147480s
Success
dlopen_thread.cSuccessNone0.053834s0.147610s
Success
double_fork_dlopen.cSuccessNone0.057727s0.193903s
Success
fork_dlopen.cSuccessNone0.051697s0.146448s
Success
longjmp_dlopen.cSuccessNone0.049814s0.140651s
Success
rdynamic_main.cSuccessNone0.053414s0.143991s
Success
File Tests
chartests.cSuccessNone0.050314s0.150790s
Success
chdir_getcwd.cSuccessNone0.051055s0.122293s
Success
chmod.cSuccessNone0.056144s0.137695s
Success
clock_gettime_highlevel.cSuccessNone0.121312s0.170080s
Success
clock_gettime_simple.cSuccessNone0.045456s0.114173s
Success
cloexec.cSuccessNone0.056360s0.149743s
Success
close.cSuccessNone0.060437s0.146627s
Success
copy_file_range.cSuccessNone0.052687s0.147031s
Success
creat_access.cSuccessNone0.056807s0.126559s
Success
doubleclose.cSuccessNone0.046058s0.105558s
Success
dup.cSuccessNone0.045889s0.121832s
Success
dup2.cSuccessNone0.052602s0.124368s
Success
dup3.cSuccessNone0.049391s0.121810s
Success
dupwrite.cSuccessNone0.051718s0.118592s
Success
etc_conf.cSuccessNone0.048236s0.125766s
Success
faccessat.cSuccessNone0.050456s0.125220s
Success
fchdir.cSuccessNone0.057154s0.137826s
Success
fchmod.cSuccessNone0.054027s0.136763s
Success
fchmodat.cSuccessNone0.048764s0.120931s
Success
fcntl.cSuccessNone0.055790s0.139918s
Success
fcntl_dupfd.cSuccessNone0.046584s0.116710s
Success
fdatasync.cSuccessNone0.052685s0.120519s
Success
filetest.cSuccessNone0.053853s0.118996s
Success
filetest1000.cSuccessNone0.059985s0.131215s
Success
flock.cSuccessNone0.062317s0.173908s
Success
fstat.cSuccessNone0.055861s0.141638s
Success
fstatfs.cSuccessNone0.048012s0.114899s
Success
fsync.cSuccessNone0.051760s0.118592s
Success
ftruncate.cSuccessNone0.058210s0.220569s
Success
getcwd.cSuccessNone0.048734s0.111635s
Success
getcwd_null.cSuccessNone0.053590s0.129529s
Success
getpgid.cSuccessNone0.047172s0.109115s
Success
getrandom.cSuccessNone0.052884s0.136750s
Success
ioctl.cSuccessNone0.055610s0.127830s
Success
link.cSuccessNone0.056710s0.169954s
Success
locale_test.cSuccessNone0.067807s0.326210s
Success
lseek.cSuccessNone0.058518s0.201466s
Success
lstat.cSuccessNone0.060854s0.146644s
Success
mkdir_rmdir.cSuccessNone0.053214s0.125141s
Success
mkfifo_test.cSuccessNone0.059477s0.176685s
Success
mknod.cSuccessNone0.053966s0.136303s
Success
nocancel_io.cSuccessNone0.060267s0.149777s
Success
open.cSuccessNone0.047434s0.112699s
Success
openat.cSuccessNone0.050365s0.121860s
Success
path_conversion_safety.cSuccessNone0.056668s0.142037s
Success
ppoll.cSuccessNone0.057933s0.134482s
Success
pread_pwrite.cSuccessNone0.049689s0.126021s
Success
preadv_pwritev.cSuccessNone0.055650s0.141743s
Success
printf.cSuccessNone0.044991s0.109309s
Success
prlimit64.cSuccessNone0.045016s0.117259s
Success
read.cSuccessNone0.052851s0.133005s
Success
readbytes.cSuccessNone0.049671s0.115206s
Success
readdir_basic.cSuccessNone0.057948s0.158292s
Success
readlink.cSuccessNone0.053480s0.129512s
Success
readlinkat.cSuccessNone0.055533s0.135171s
Success
readv_writev_test.cSuccessNone0.056349s0.137632s
Success
rename.cSuccessNone0.055060s0.126486s
Success
renameat.cSuccessNone0.056800s0.140433s
Success
sc-writev.cSuccessNone0.052786s0.121656s
Success
stat.cSuccessNone0.054958s0.136167s
Success
statfs.cSuccessNone0.049158s0.116046s
Success
symlink.cSuccessNone0.057568s0.155742s
Success
sync_file_range.cSuccessNone0.051705s0.121122s
Success
timespec_time_t_compat.cSuccessNone0.050269s0.117444s
Success
trailing_slash.cSuccessNone0.052521s0.129651s
Success
truncate.cSuccessNone0.054774s0.147524s
Success
unlink.cSuccessNone0.055482s0.160794s
Success
unlinkat.cSuccessNone0.056392s0.145096s
Success
utimensat.cSuccessNone0.052232s0.140517s
Success
write.cSuccessNone0.046573s0.108475s
Success
writeloop.cSuccessNone0.057163s0.127927s
Success
writepartial.cSuccessNone0.053710s0.120330s
Success
writev.cSuccessNone0.053479s0.132952s
Success
Math Tests
math_link_smoke.cSuccessNone0.058840s0.115386s
Success
math_tests.cSuccessNone0.061983s0.143826s
Success
printf_float.cSuccessNone0.059016s0.139586s
Success
Memory Tests
brk.cSuccessNone0.052436s0.122284s
Success
fork_large_memory.cSuccessNone0.087770s0.481020s
Success
malloc.cSuccessNone0.050565s0.111059s
Success
malloc_large.cSuccessNone0.050180s0.112284s
Success
memcpy.cSuccessNone0.052795s0.113139s
Success
memory_error_test.cSuccessNone0.060317s0.150443s
Success
mmap.cSuccessNone0.046257s0.111592s
Success
mmap_address_truncation.cSuccessNone0.048031s0.115411s
Success
mmap_aligned.cSuccessNone0.048031s0.125462s
Success
mmap_complicated.cSuccessNone0.054147s0.150870s
Success
mmap_file.cSuccessNone0.058492s0.131631s
Success
mmap_shared.cSuccessNone0.053138s0.145872s
Success
mmaptest.cSuccessNone0.050579s0.116486s
Success
mprotect.cSuccessNone0.049011s0.115397s
Success
mprotect_boundary.cSuccessNone0.047546s0.124504s
Success
mprotect_end_region.cSuccessNone0.047098s0.118728s
Success
mprotect_middle_region.cSuccessNone0.049098s0.119388s
Success
mprotect_multiple_times.cSuccessNone0.049081s0.118639s
Success
mprotect_same_value.cSuccessNone0.049394s0.121796s
Success
mprotect_spanning_regions.cSuccessNone0.048851s0.138414s
Success
munmap_adjacent_shm.cSuccessNone0.049450s0.133663s
Success
sbrk.cSuccessNone0.049679s0.117886s
Success
segfault.cSuccessNone0.056980s0.162109s
Success
shm.cSuccessNone0.054626s0.148299s
Success
shmtest.cSuccessNone0.048979s0.119975s
Success
thread_malloc_sequential.cSuccessNone0.057826s0.194272s
Success
vtable.cSuccessNone0.061087s0.136209s
Success
Networking Tests
accept4.cSuccessNone0.059891s0.156762s
Success
dns_resolve_test.cSuccessNone0.080417s0.222590s
Success
dnstest.cSuccessNone0.057722s0.136748s
Success
epoll_badfd.cSuccessNone0.048219s0.122411s
Success
epoll_edge_triggered.cSuccessNone0.213171s0.389033s
Success
epollcreate1.cSuccessNone0.077834s0.144952s
Success
error_handling_net.cSuccessNone0.061940s0.206130s
Success
getaddrinfo_test.cSuccessNone0.064766s0.181272s
Success
getaddrinfo_unspec.cSuccessNone0.059301s0.148644s
Success
gethostname.cSuccessNone0.049261s0.120007s
Success
getifaddrs.cSuccessNone0.057667s0.134520s
Success
getsockname.cSuccessNone0.056863s0.134456s
Success
getsockopt.cSuccessNone0.059862s0.170000s
Success
ipv6_basic.cSuccessNone0.063162s0.174151s
Success
makepipe.cSuccessNone0.048392s0.112561s
Success
nonblocking_eagain.cSuccessNone0.060108s0.173832s
Success
pipe.cSuccessNone0.057992s0.135188s
Success
pipe2.cSuccessNone0.065112s0.144540s
Success
pipeinput.cSuccessNone0.065914s0.192724s
Success
pipeinput2.cSuccessNone0.082893s0.216334s
Success
pipeonestring.cSuccessNone0.063557s0.175142s
Success
pipepong.cSuccessNone0.060253s0.169064s
Success
pipewrite.cSuccessNone0.051538s0.128997s
Success
poll.cSuccessNone0.054945s0.128380s
Success
recvfrom-sendto.cSuccessNone0.058973s0.139626s
Success
sendmsg_recvmsg_test.cSuccessNone0.057039s0.139539s
Success
serverclient.cSuccessNone0.058449s0.230192s
Success
shutdown.cSuccessNone0.058138s0.141677s
Success
shutdown_fork.cSuccessNone0.073899s0.158872s
Success
simple-select.cSuccessNone0.067897s0.173683s
Success
simple_epoll.cSuccessNone0.055899s0.139447s
Success
socket.cSuccessNone0.056418s0.131935s
Success
socket_cloexec.cSuccessNone0.052711s0.120167s
Success
socket_options_advanced.cSuccessNone0.125839s0.283253s
Success
socketepoll.cSuccessNone0.056491s0.122402s
Success
socketpair.cSuccessNone0.071472s0.180606s
Success
socketselect.cSuccessNone0.066017s0.176409s
Success
udp_send_recv.cSuccessNone0.169432s0.453933s
Success
uds-getsockname.cSuccessNone0.056519s0.125491s
Success
uds-nb-select.cSuccessNone2.068176s2.217033s
Success
uds-serverclient.cSuccessNone0.064123s0.183443s
Success
uds-socketselect.cSuccessNone0.059567s0.145895s
Success
uds_listen_poll.cSuccessNone1.062470s1.180080s
Success
writev_socket.cSuccessNone0.058900s0.171637s
Success
Process Tests
barrier_test.cSuccessNone0.052774s0.140039s
Success
chain_thread.cSuccessNone1.055897s1.151744s
Success
ctor_syscall_test.cSuccessNone0.044305s0.112405s
Success
cxa_atexit_test.cSuccessNone0.050671s0.113701s
Success
exec_non_utf8.cSuccessNone0.052816s0.121956s
Success
execve_shebang.cSuccessNone0.055679s0.125660s
Success
exit.cSuccessNone0.051616s0.114265s
Success
exit_failure.cSuccessNone0.054627s0.138703s
Success
exit_group_thread.cSuccessNone0.054552s0.153342s
Success
exit_status_first_wins.cSuccessNone0.057297s0.163839s
Success
flockfile_test.cSuccessNone0.054520s0.151955s
Success
fork2malloc.cSuccessNone0.056912s0.147187s
Success
fork_select.cSuccessNone0.053805s0.151405s
Success
fork_simple.cSuccessNone0.051679s0.135425s
Success
fork_syscall.cSuccessNone0.060178s0.643871s
Success
fork_tls_ctype.cSuccessNone0.057702s0.166458s
Success
forkandopen.cSuccessNone0.056299s0.156693s
Success
forkdup.cSuccessNone0.059188s0.150051s
Success
forkexecuid.cSuccessNone0.052739s0.158275s
Success
forkexecv-arg.cSuccessNone0.053937s0.152690s
Success
forkexecv.cSuccessNone0.053168s0.146593s
Success
forkfiles.cSuccessNone0.056220s0.151406s
Success
forkmalloc.cSuccessNone0.055876s0.143271s
Success
forknodup.cSuccessNone0.055508s0.153680s
Success
function-ptr.cSuccessNone0.049115s0.113710s
Success
getegid_syscall.cSuccessNone0.055692s0.474236s
Success
getgid_syscall.cSuccessNone0.054297s0.505755s
Success
getpid.cSuccessNone0.047768s0.108028s
Success
getpid_syscall.cSuccessNone0.056809s0.492469s
Success
getppid.cSuccessNone0.058953s0.138644s
Success
getppid_syscall.cSuccessNone0.057742s0.401358s
Success
getuid.cSuccessNone0.057180s0.122564s
Success
getuid_syscall.cSuccessNone0.053621s0.247806s
Success
hello-arg.cSuccessNone0.046490s0.116148s
Success
hello.cSuccessNone0.044452s0.104578s
Success
longjmp.cSuccessNone0.045799s0.116475s
Success
mutex.cSuccessNone2.056793s2.140724s
Success
printf_deadlock_smoke.cSuccessNone0.064543s0.178201s
Success
printf_thread_test.cSuccessNone0.053677s0.150370s
Success
sem_forks.cSuccessNone0.058307s0.180041s
Success
setjmp_edge.cSuccessNone0.048007s0.192463s
Success
setsid.cSuccessNone0.046618s0.108672s
Success
template.cSuccessNone0.054232s0.185978s
Success
test_crossmodule_longjmp.cSuccessNone0.056671s0.156436s
Success
test_exec_nofork.cSuccessNone0.053523s0.141172s
Success
test_unlink_open_file.cSuccessNone0.049546s0.113494s
Success
thread-guard.cSuccessNone0.053583s0.135281s
Success
thread-test.cSuccessNone0.050460s0.126975s
Success
thread.cSuccessNone0.049482s0.127208s
Success
thread_cageid_race.cSuccessNone0.049910s0.293567s
Success
tls_test.cSuccessNone0.053152s0.167279s
Success
uname.cSuccessNone0.047303s0.109598s
Success
wait.cSuccessNone0.052740s0.154220s
Success
waitpid_anychild.cSuccessNone0.054885s0.143943s
Success
waitpid_syscall.cSuccessNone1.053877s1.237110s
Success
waitpid_wnohang.cSuccessNone0.056191s0.143809s
Success
Signal Tests
alarm.cSuccessNone7.055070s7.144749s
Success
eintr_fork_signal.cSuccessNone1.057381s1.158872s
Success
kill.cSuccessNone1.054770s1.141402s
Success
pause_test.cSuccessNone1.055038s1.151999s
Success
setitimer.cSuccessNone7.053707s7.168531s
Success
sigalrm.cSuccessNone2.054816s2.140714s
Success
sigaltstack.cSuccessNone0.055900s0.137908s
Success
sigchld.cSuccessNone1.058300s1.145850s
Success
signal-fork.cSuccessNone4.055661s4.141151s
Success
signal-simple.cSuccessNone0.055370s0.125741s
Success
signal_SIGCHLD.cSuccessNone0.052386s0.149544s
Success
signal_fork.cSuccessNone0.052659s0.146048s
Success
signal_int_ignored.cSuccessNone2.055013s2.144633s
Success
signal_kill_cleanup.cSuccessNone1.053330s1.139110s
Success
signal_procmask.cSuccessNone0.048404s0.125176s
Success
signal_read_interrupt.cSuccessNone0.559323s0.649926s
Success
signal_recursive.cSuccessNone0.049520s0.129739s
Success
signal_sa_mask.cSuccessNone0.049658s0.122608s
Success
signal_select_interrupt.cSuccessNone0.558770s0.653993s
Success
signal_write_interrupt.cSuccessNone1.059981s1.149318s
Success
sigpipe.cSuccessNone1.056712s1.152476s
Success
sigprocmask.cSuccessNone1.054012s1.131351s
Success
sigsuspend_test.cSuccessNone1.053035s1.155622s
Success
test_sigsetjmp.cSuccessNone0.055557s0.155095s
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.045165s0.113323s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.113983s0.125630s
Success
invalid_access_fork.cSuccessNone0.131986s0.190087s
Success
mmap-negative1.cSuccessNone0.167040s0.114066s
Success
mmap-negative2.cSuccessNone0.159805s0.221556s
Success
Signal Tests
signal_resethand.cSuccessNone1.054567s1.139060s
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.438484s9.115565s
LIBCPP_SORT_OK 1 2 3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

redirect wasm binary path to threei

1 participant