Skip to content

Introduce temporary syscall number definitions under sysdefs/ to replace hardcoded values in Rust#887

Open
celinehoang177 wants to merge 2 commits intomainfrom
temporary-syscall-number-definitions
Open

Introduce temporary syscall number definitions under sysdefs/ to replace hardcoded values in Rust#887
celinehoang177 wants to merge 2 commits intomainfrom
temporary-syscall-number-definitions

Conversation

@celinehoang177
Copy link
Contributor

Closes #756. This PR introduces a unified syscall number definition file in the sysdefs library and updates the Rust codebase to eliminate hardcoded numeric values.

Changes

  • Created syscall_const.rs with Linux x86_64 syscall constants.
  • Updated syscall_table.rs to use named constants instead of raw integers.
  • Updated lib.rs and other wasmtime modules to import syscall numbers from sysdefs.
  • Removed lind_syscall_numbers.rs and reorganized its usage.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total9
Success9
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 2
Exiting...

[Grate|interpose-exit] Handling function ptr: 2 from cage: 1
[Grate|interpose-exit] In exit_grate 1 handler for cage: 1
[Grate|interpose-exit] PASS

STDERR:

interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-fork] Handling function ptr: 2 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage|interpose-register] In cage 2, about to register handler for geteuid
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 0 with fn ptr addr: 7021753225191620609
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Cage|interpose-register] PASS: geteuid ret = 10
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 2 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|geteuid] Handling function ptr: 2 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases182
Number of Successes180
Number of Failures2
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 Failure2
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.050569s4.293754s
Success
chdir_getcwd.cSuccessNone0.049526s4.264105s
Success
chmod.cSuccessNone0.057360s4.320531s
Success
clock_gettime_highlevel.cSuccessNone0.120839s4.450582s
Success
clock_gettime_simple.cSuccessNone0.044254s4.317527s
Success
cloexec.cSuccessNone0.054414s3.897809s
Success
close.cSuccessNone0.062396s4.298804s
Success
creat_access.cSuccessNone0.053311s4.276878s
Success
doubleclose.cSuccessNone0.045036s3.862068s
Success
dup.cSuccessNone0.045448s4.245054s
Success
dup2.cSuccessNone0.053482s3.921718s
Success
dup3.cSuccessNone0.049295s4.254509s
Success
dupwrite.cSuccessNone0.053310s3.866457s
Success
etc_conf.cSuccessNone0.047644s4.252807s
Success
fchdir.cSuccessNone0.055352s4.289417s
Success
fchmod.cSuccessNone0.057724s4.288091s
Success
fcntl.cSuccessNone0.053758s4.298949s
Success
fdatasync.cSuccessNone0.052088s4.230555s
Success
filetest.cSuccessNone0.052069s3.882602s
Success
filetest1000.cSuccessNone0.061375s3.875702s
Success
flock.cSuccessNone0.061845s4.394606s
Success
fstat.cSuccessNone0.054401s4.259352s
Success
fstatfs.cSuccessNone0.046850s4.279276s
Success
fsync.cSuccessNone0.052576s4.248382s
Success
ftruncate.cSuccessNone0.056812s4.301601s
Success
getcwd.cSuccessNone0.049193s4.264211s
Success
getrandom.cSuccessNone0.053387s4.294598s
Success
ioctl.cSuccessNone0.057202s4.258468s
Success
link.cSuccessNone0.055609s4.265022s
Success
locale_test.cSuccessNone0.066160s6.177858s
Success
lseek.cSuccessNone0.056913s4.300546s
Success
mkdir_rmdir.cSuccessNone0.054240s4.273919s
Success
mkfifo_test.cFailureUnknown_Failure0.058991s4.335601s
thread 'main' (3888) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:99:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
mknod.cFailureUnknown_Failure0.051188s4.330672s
thread 'main' (3707) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:99:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
nocancel_io.cSuccessNone0.055812s5.583998s
Success
open.cSuccessNone0.046790s4.215278s
Success
path_conversion_safety.cSuccessNone0.057138s4.300110s
Success
pread_pwrite.cSuccessNone0.049478s4.269812s
Success
printf.cSuccessNone0.044974s3.879499s
Success
read.cSuccessNone0.053767s4.267962s
Success
readbytes.cSuccessNone0.048900s3.855101s
Success
readlink.cSuccessNone0.052458s4.301392s
Success
readlinkat.cSuccessNone0.054104s4.273891s
Success
readv_writev_test.cSuccessNone0.055035s4.275091s
Success
rename.cSuccessNone0.056580s4.305223s
Success
sc-writev.cSuccessNone0.050796s4.298274s
Success
stat.cSuccessNone0.054334s4.272485s
Success
statfs.cSuccessNone0.047605s4.235005s
Success
sync_file_range.cSuccessNone0.052612s4.288170s
Success
truncate.cSuccessNone0.054832s4.283632s
Success
unlink.cSuccessNone0.054659s4.295580s
Success
unlinkat.cSuccessNone0.054548s4.312025s
Success
write.cSuccessNone0.046594s3.834392s
Success
writeloop.cSuccessNone0.056663s3.934053s
Success
writepartial.cSuccessNone0.052943s3.850921s
Success
writev.cSuccessNone0.054323s4.309646s
Success
Math Tests
math_link_smoke.cSuccessNone0.056477s3.882449s
Success
math_tests.cSuccessNone0.060741s4.034304s
Success
Memory Tests
brk.cSuccessNone0.050745s4.259884s
Success
fork_large_memory.cSuccessNone0.089017s4.519205s
Success
malloc.cSuccessNone0.048694s3.861394s
Success
malloc_large.cSuccessNone0.049818s4.243083s
Success
memcpy.cSuccessNone0.048834s3.844154s
Success
memory_error_test.cSuccessNone0.055043s4.265363s
Success
mmap.cSuccessNone0.045642s4.223077s
Success
mmap_aligned.cSuccessNone0.047776s4.258004s
Success
mmap_complicated.cSuccessNone0.052768s4.353442s
Success
mmap_file.cSuccessNone0.053339s4.269949s
Success
mmap_shared.cSuccessNone0.053036s4.295234s
Success
mmaptest.cSuccessNone0.050395s4.228572s
Success
mprotect.cSuccessNone0.047086s4.265870s
Success
mprotect_boundary.cSuccessNone0.047263s4.257513s
Success
mprotect_end_region.cSuccessNone0.046223s4.230741s
Success
mprotect_middle_region.cSuccessNone0.046401s4.224935s
Success
mprotect_multiple_times.cSuccessNone0.046713s4.253445s
Success
mprotect_same_value.cSuccessNone0.046694s4.250129s
Success
mprotect_spanning_regions.cSuccessNone0.047104s4.245341s
Success
sbrk.cSuccessNone0.047838s4.239553s
Success
segfault.cSuccessNone0.056434s4.318101s
Success
shm.cSuccessNone0.053637s4.326379s
Success
shmtest.cSuccessNone0.047957s4.252271s
Success
vtable.cSuccessNone0.060464s3.872641s
Success
Networking Tests
dnstest.cSuccessNone0.054147s4.270517s
Success
epollcreate1.cSuccessNone0.055427s4.283533s
Success
error_handling_net.cSuccessNone0.062823s4.380615s
Success
getaddrinfo_test.cSuccessNone0.059125s6.035761s
Success
gethostname.cSuccessNone0.047237s3.900002s
Success
getifaddrs.cSuccessNone0.054938s4.326395s
Success
getsockname.cSuccessNone0.055100s4.298785s
Success
getsockopt.cSuccessNone0.059767s4.306161s
Success
makepipe.cSuccessNone0.046365s3.841354s
Success
nonblocking_eagain.cSuccessNone0.059208s4.321065s
Success
pipe.cSuccessNone0.055826s4.313932s
Success
pipe2.cSuccessNone0.055423s4.257104s
Success
pipeinput.cSuccessNone0.056472s4.312417s
Success
pipeinput2.cSuccessNone0.057041s4.322895s
Success
pipeonestring.cSuccessNone0.056507s4.296734s
Success
pipepong.cSuccessNone0.056179s4.313615s
Success
pipewrite.cSuccessNone0.049810s4.236449s
Success
poll.cSuccessNone0.053791s4.243287s
Success
recvfrom-sendto.cSuccessNone0.055986s4.283092s
Success
sendmsg_recvmsg_test.cSuccessNone0.056953s4.284510s
Success
serverclient.cSuccessNone0.056265s3.904022s
Success
shutdown.cSuccessNone0.055880s3.909885s
Success
shutdown_fork.cSuccessNone0.054969s4.310602s
Success
simple-select.cSuccessNone0.056257s4.347742s
Success
simple_epoll.cSuccessNone0.054781s4.255245s
Success
socket.cSuccessNone0.052923s3.874303s
Success
socket_cloexec.cSuccessNone0.052403s4.263469s
Success
socket_options_advanced.cSuccessNone0.059333s4.286998s
Success
socketepoll.cSuccessNone0.052629s3.847561s
Success
socketpair.cSuccessNone0.053040s4.345903s
Success
socketselect.cSuccessNone0.052826s4.258809s
Success
tcp_connect_single.cSuccessNone0.054582s4.263876s
Success
udp_send_recv.cSuccessNone0.161330s4.452354s
Success
uds-getsockname.cSuccessNone0.054758s4.265655s
Success
uds-nb-select.cSuccessNone2.062121s6.489141s
Success
uds-serverclient.cSuccessNone0.057326s4.334833s
Success
uds-socketselect.cSuccessNone0.054592s3.913650s
Success
writev_socket.cSuccessNone0.058173s4.267218s
Success
Process Tests
barrier_test.cSuccessNone0.052150s4.409210s
Success
chain_thread.cSuccessNone1.053676s5.413216s
Success
ctor_syscall_test.cSuccessNone0.043798s4.234487s
Success
cxa_atexit_test.cSuccessNone0.050610s3.874935s
Success
exit.cSuccessNone0.051097s3.841250s
Success
flockfile_test.cSuccessNone0.053290s4.453518s
Success
fork2malloc.cSuccessNone0.054850s4.348836s
Success
fork_select.cSuccessNone0.052769s4.311058s
Success
fork_simple.cSuccessNone0.051379s4.288124s
Success
fork_syscall.cSuccessNone0.058250s4.361749s
Success
fork_tls_ctype.cSuccessNone0.057245s4.338579s
Success
forkandopen.cSuccessNone0.055677s4.294916s
Success
forkdup.cSuccessNone0.055463s3.925939s
Success
forkexecuid.cSuccessNone0.053601s4.360727s
Success
forkexecv-arg.cSuccessNone0.053100s4.306469s
Success
forkexecv.cSuccessNone0.050826s4.296242s
Success
forkfiles.cSuccessNone0.054584s4.367909s
Success
forkmalloc.cSuccessNone0.067103s4.319349s
Success
forknodup.cSuccessNone0.057061s4.305664s
Success
function-ptr.cSuccessNone0.050276s4.237848s
Success
getegid_syscall.cSuccessNone0.053862s4.327079s
Success
getgid_syscall.cSuccessNone0.055645s4.371094s
Success
getpid.cSuccessNone0.046897s4.254057s
Success
getpid_syscall.cSuccessNone0.055874s4.360763s
Success
getppid.cSuccessNone0.054583s4.310245s
Success
getppid_syscall.cSuccessNone0.057147s4.350404s
Success
getuid.cSuccessNone0.053937s4.263838s
Success
getuid_syscall.cSuccessNone0.053832s4.319330s
Success
hello-arg.cSuccessNone0.044299s3.859480s
Success
hello.cSuccessNone0.044719s3.843559s
Success
longjmp.cSuccessNone0.045134s3.868160s
Success
mutex.cSuccessNone2.060165s6.532073s
Success
printf_deadlock_smoke.cSuccessNone0.063594s4.571680s
Success
printf_thread_test.cSuccessNone0.053531s4.463920s
Success
sem_forks.cSuccessNone0.056609s4.308566s
Success
setsid.cSuccessNone0.046159s3.847316s
Success
template.cSuccessNone0.053755s4.295361s
Success
test_exec_nofork.cSuccessNone0.052683s4.266774s
Success
test_unlink_open_file.cSuccessNone0.048608s3.860642s
Success
thread-test.cSuccessNone0.048553s4.392028s
Success
thread.cSuccessNone0.048499s4.405746s
Success
thread_cageid_race.cSuccessNone0.050625s4.401610s
Success
tls_test.cSuccessNone0.052842s4.399041s
Success
uname.cSuccessNone0.047556s4.249278s
Success
wait.cSuccessNone2.051584s5.927180s
Success
waitpid_anychild.cSuccessNone0.052861s4.307680s
Success
waitpid_syscall.cSuccessNone1.055613s5.333766s
Success
waitpid_wnohang.cSuccessNone0.054652s3.927019s
Success
Signal Tests
alarm.cSuccessNone7.053363s10.925884s
Success
setitimer.cSuccessNone7.056475s10.938854s
Success
sigalrm.cSuccessNone2.055176s5.969293s
Success
sigchld.cSuccessNone1.057480s4.982209s
Success
signal-fork.cSuccessNone4.055468s7.975921s
Success
signal-simple.cSuccessNone0.056890s3.955854s
Success
signal_SIGCHLD.cSuccessNone0.053998s4.348687s
Success
signal_fork.cSuccessNone0.051605s4.325982s
Success
signal_int_ignored.cSuccessNone2.055304s6.356923s
Success
signal_procmask.cSuccessNone0.048901s4.258265s
Success
signal_recursive.cSuccessNone0.049627s3.879518s
Success
signal_sa_mask.cSuccessNone0.048120s3.891943s
Success
sigpipe.cSuccessNone1.056505s5.347152s
Success
sigprocmask.cSuccessNone1.058051s4.939994s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.112291s4.305432s
Success
mmap-negative2.cSuccessNone0.146015s4.081211s
Success
Signal Tests
signal_resethand.cSuccessNone1.052813s3.944482s
Success

@celinehoang177 celinehoang177 force-pushed the temporary-syscall-number-definitions branch 2 times, most recently from 4f217d0 to 7887921 Compare March 6, 2026 03:28
@@ -0,0 +1,99 @@
//! Syscall number constants for the Lind platform.
Copy link
Member

Choose a reason for hiding this comment

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

Was this manually copied over or is there a script, etc.? Is the same information in glibc? How does this + the kernel sync? Is it so slow moving that this doesn't matter?

Copy link
Contributor Author

@celinehoang177 celinehoang177 Mar 12, 2026

Choose a reason for hiding this comment

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

These were manually copied from the Linux x86_64 syscall table. The same numbers are already in glibc's lind_syscall_num.h, so this file is basically the Rust equivalent of that. Since the Linux syscall table is append-only (existing numbers never get reassigned), sync drift isn't really a concern in practice. But yeah, I think auto-generating both the C header and this Rust file from a single source would definitely be cleaner and is a good follow-up to do!

@celinehoang177 celinehoang177 force-pushed the temporary-syscall-number-definitions branch from 7887921 to bb7fa77 Compare March 6, 2026 03:33
(292, dup3_syscall),
(293, pipe2_syscall),
(318, getrandom_syscall),
(syscall_const::READ_SYSCALL as u64, read_syscall),
Copy link
Member

Choose a reason for hiding this comment

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

Maybe this makes sense. Maybe it should be autogenerated. I'm not sure.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Agreed. Auto-generation would be the cleaner long-term solution. For now this PR replaces the hardcoded magic numbers with named constants to unblock #612, and we can follow up with a generation script as a next step.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total9
Success9
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 2
Exiting...

[Grate|interpose-exit] Handling function ptr: 2 from cage: 1
[Grate|interpose-exit] In exit_grate 1 handler for cage: 1
[Grate|interpose-exit] PASS

STDERR:

interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-fork] Handling function ptr: 2 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage|interpose-register] In cage 2, about to register handler for geteuid
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 0 with fn ptr addr: 7021753225191620609
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Cage|interpose-register] PASS: geteuid ret = 10
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 2 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|geteuid] Handling function ptr: 2 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases182
Number of Successes180
Number of Failures2
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 Failure2
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.049695s4.261758s
Success
chdir_getcwd.cSuccessNone0.049883s4.261961s
Success
chmod.cSuccessNone0.054940s4.248420s
Success
clock_gettime_highlevel.cSuccessNone0.119528s4.455269s
Success
clock_gettime_simple.cSuccessNone0.044211s4.254780s
Success
cloexec.cSuccessNone0.053926s3.878728s
Success
close.cSuccessNone0.062253s4.291315s
Success
creat_access.cSuccessNone0.052877s4.258566s
Success
doubleclose.cSuccessNone0.044940s3.822156s
Success
dup.cSuccessNone0.045414s4.267200s
Success
dup2.cSuccessNone0.050616s3.862937s
Success
dup3.cSuccessNone0.048856s4.264421s
Success
dupwrite.cSuccessNone0.052046s3.855281s
Success
etc_conf.cSuccessNone0.047714s4.259446s
Success
fchdir.cSuccessNone0.055690s4.278954s
Success
fchmod.cSuccessNone0.056799s4.265487s
Success
fcntl.cSuccessNone0.051426s4.269781s
Success
fdatasync.cSuccessNone0.051142s4.244734s
Success
filetest.cSuccessNone0.052095s3.851349s
Success
filetest1000.cSuccessNone0.061286s3.874486s
Success
flock.cSuccessNone0.059063s4.323146s
Success
fstat.cSuccessNone0.054150s4.278449s
Success
fstatfs.cSuccessNone0.047094s4.231660s
Success
fsync.cSuccessNone0.051106s4.235859s
Success
ftruncate.cSuccessNone0.056419s4.306642s
Success
getcwd.cSuccessNone0.048288s4.262041s
Success
getrandom.cSuccessNone0.052893s4.261111s
Success
ioctl.cSuccessNone0.056540s4.275245s
Success
link.cSuccessNone0.055248s4.276539s
Success
locale_test.cSuccessNone0.066051s6.076733s
Success
lseek.cSuccessNone0.056546s4.302737s
Success
mkdir_rmdir.cSuccessNone0.053200s4.258077s
Success
mkfifo_test.cFailureUnknown_Failure0.057782s4.320855s
thread 'main' (3888) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:99:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
mknod.cFailureUnknown_Failure0.051752s4.282261s
thread 'main' (3707) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:99:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
nocancel_io.cSuccessNone0.055418s5.587074s
Success
open.cSuccessNone0.047100s4.227624s
Success
path_conversion_safety.cSuccessNone0.056823s4.260304s
Success
pread_pwrite.cSuccessNone0.049458s4.252507s
Success
printf.cSuccessNone0.043560s3.842761s
Success
read.cSuccessNone0.053345s4.290167s
Success
readbytes.cSuccessNone0.050109s3.862236s
Success
readlink.cSuccessNone0.052395s4.250492s
Success
readlinkat.cSuccessNone0.054321s4.264321s
Success
readv_writev_test.cSuccessNone0.054607s4.252913s
Success
rename.cSuccessNone0.055194s4.260434s
Success
sc-writev.cSuccessNone0.050759s4.242423s
Success
stat.cSuccessNone0.053353s4.241909s
Success
statfs.cSuccessNone0.047366s4.228364s
Success
sync_file_range.cSuccessNone0.050087s4.268193s
Success
truncate.cSuccessNone0.054384s4.261655s
Success
unlink.cSuccessNone0.054776s4.283610s
Success
unlinkat.cSuccessNone0.054630s4.265706s
Success
write.cSuccessNone0.046534s3.839484s
Success
writeloop.cSuccessNone0.055304s3.861396s
Success
writepartial.cSuccessNone0.053405s3.841282s
Success
writev.cSuccessNone0.054051s4.247722s
Success
Math Tests
math_link_smoke.cSuccessNone0.056372s3.873296s
Success
math_tests.cSuccessNone0.060459s4.038627s
Success
Memory Tests
brk.cSuccessNone0.050743s4.250502s
Success
fork_large_memory.cSuccessNone0.084698s4.426921s
Success
malloc.cSuccessNone0.048337s3.847199s
Success
malloc_large.cSuccessNone0.049301s4.242319s
Success
memcpy.cSuccessNone0.047818s3.876681s
Success
memory_error_test.cSuccessNone0.055095s4.261409s
Success
mmap.cSuccessNone0.045441s4.228891s
Success
mmap_aligned.cSuccessNone0.046952s4.254561s
Success
mmap_complicated.cSuccessNone0.052662s4.283999s
Success
mmap_file.cSuccessNone0.053273s4.253980s
Success
mmap_shared.cSuccessNone0.052341s4.277619s
Success
mmaptest.cSuccessNone0.048673s4.217747s
Success
mprotect.cSuccessNone0.046623s4.239565s
Success
mprotect_boundary.cSuccessNone0.047428s4.231324s
Success
mprotect_end_region.cSuccessNone0.046355s4.251075s
Success
mprotect_middle_region.cSuccessNone0.046292s4.235973s
Success
mprotect_multiple_times.cSuccessNone0.046374s4.242767s
Success
mprotect_same_value.cSuccessNone0.046396s4.259219s
Success
mprotect_spanning_regions.cSuccessNone0.047542s4.229662s
Success
sbrk.cSuccessNone0.048393s4.225286s
Success
segfault.cSuccessNone0.053792s4.311437s
Success
shm.cSuccessNone0.052123s4.311607s
Success
shmtest.cSuccessNone0.046841s4.238582s
Success
vtable.cSuccessNone0.060770s3.876089s
Success
Networking Tests
dnstest.cSuccessNone0.052522s4.251458s
Success
epollcreate1.cSuccessNone0.055253s4.295268s
Success
error_handling_net.cSuccessNone0.060803s4.299781s
Success
getaddrinfo_test.cSuccessNone0.057808s6.006952s
Success
gethostname.cSuccessNone0.047104s3.869704s
Success
getifaddrs.cSuccessNone0.054622s4.342573s
Success
getsockname.cSuccessNone0.055105s4.263079s
Success
getsockopt.cSuccessNone0.056426s4.277134s
Success
makepipe.cSuccessNone0.046767s3.846932s
Success
nonblocking_eagain.cSuccessNone0.058411s4.293020s
Success
pipe.cSuccessNone0.054937s4.296190s
Success
pipe2.cSuccessNone0.055506s4.229035s
Success
pipeinput.cSuccessNone0.056494s4.303355s
Success
pipeinput2.cSuccessNone0.055969s4.303453s
Success
pipeonestring.cSuccessNone0.056274s4.294038s
Success
pipepong.cSuccessNone0.055320s4.304615s
Success
pipewrite.cSuccessNone0.049422s4.229646s
Success
poll.cSuccessNone0.053732s4.237410s
Success
recvfrom-sendto.cSuccessNone0.055708s4.297049s
Success
sendmsg_recvmsg_test.cSuccessNone0.055220s4.255192s
Success
serverclient.cSuccessNone0.054363s3.885768s
Success
shutdown.cSuccessNone0.056356s3.891047s
Success
shutdown_fork.cSuccessNone0.054511s4.296250s
Success
simple-select.cSuccessNone0.056829s4.293630s
Success
simple_epoll.cSuccessNone0.053952s4.257444s
Success
socket.cSuccessNone0.052272s3.872006s
Success
socket_cloexec.cSuccessNone0.052206s4.238913s
Success
socket_options_advanced.cSuccessNone0.059000s4.293979s
Success
socketepoll.cSuccessNone0.052549s3.867061s
Success
socketpair.cSuccessNone0.052305s4.306867s
Success
socketselect.cSuccessNone0.052628s4.246962s
Success
tcp_connect_single.cSuccessNone0.054006s4.257402s
Success
udp_send_recv.cSuccessNone0.161016s4.448750s
Success
uds-getsockname.cSuccessNone0.054000s4.253317s
Success
uds-nb-select.cSuccessNone2.061668s6.494658s
Success
uds-serverclient.cSuccessNone0.058035s4.333299s
Success
uds-socketselect.cSuccessNone0.053829s3.875537s
Success
writev_socket.cSuccessNone0.057825s4.268972s
Success
Process Tests
barrier_test.cSuccessNone0.051954s4.424339s
Success
chain_thread.cSuccessNone1.054169s5.410887s
Success
ctor_syscall_test.cSuccessNone0.044446s4.246636s
Success
cxa_atexit_test.cSuccessNone0.049461s3.865789s
Success
exit.cSuccessNone0.051712s3.855080s
Success
flockfile_test.cSuccessNone0.053479s4.446855s
Success
fork2malloc.cSuccessNone0.054585s4.296782s
Success
fork_select.cSuccessNone0.052464s4.303723s
Success
fork_simple.cSuccessNone0.051127s4.278972s
Success
fork_syscall.cSuccessNone0.057694s4.354232s
Success
fork_tls_ctype.cSuccessNone0.056149s4.312726s
Success
forkandopen.cSuccessNone0.054811s4.287292s
Success
forkdup.cSuccessNone0.055451s3.935594s
Success
forkexecuid.cSuccessNone0.052065s4.325038s
Success
forkexecv-arg.cSuccessNone0.052815s4.292133s
Success
forkexecv.cSuccessNone0.050599s4.294108s
Success
forkfiles.cSuccessNone0.054225s4.290595s
Success
forkmalloc.cSuccessNone0.065053s4.306712s
Success
forknodup.cSuccessNone0.055304s4.294057s
Success
function-ptr.cSuccessNone0.049279s4.250409s
Success
getegid_syscall.cSuccessNone0.054178s4.314439s
Success
getgid_syscall.cSuccessNone0.055176s4.334860s
Success
getpid.cSuccessNone0.046955s4.230265s
Success
getpid_syscall.cSuccessNone0.055883s4.349189s
Success
getppid.cSuccessNone0.053772s4.296119s
Success
getppid_syscall.cSuccessNone0.061468s4.334681s
Success
getuid.cSuccessNone0.054871s4.221165s
Success
getuid_syscall.cSuccessNone0.052536s4.312030s
Success
hello-arg.cSuccessNone0.044009s3.852107s
Success
hello.cSuccessNone0.047386s3.859832s
Success
longjmp.cSuccessNone0.045430s3.871476s
Success
mutex.cSuccessNone2.058315s6.520019s
Success
printf_deadlock_smoke.cSuccessNone0.062569s4.597556s
Success
printf_thread_test.cSuccessNone0.052328s4.448697s
Success
sem_forks.cSuccessNone0.055882s4.340423s
Success
setsid.cSuccessNone0.046513s3.844275s
Success
template.cSuccessNone0.053323s4.291890s
Success
test_exec_nofork.cSuccessNone0.052167s4.262920s
Success
test_unlink_open_file.cSuccessNone0.048276s3.873562s
Success
thread-test.cSuccessNone0.048816s4.392505s
Success
thread.cSuccessNone0.047981s4.409788s
Success
thread_cageid_race.cSuccessNone0.049330s4.386755s
Success
tls_test.cSuccessNone0.051535s4.432856s
Success
uname.cSuccessNone0.046725s4.265848s
Success
wait.cSuccessNone2.050044s5.922190s
Success
waitpid_anychild.cSuccessNone0.053137s4.296153s
Success
waitpid_syscall.cSuccessNone1.054710s5.319551s
Success
waitpid_wnohang.cSuccessNone0.053907s3.904568s
Success
Signal Tests
alarm.cSuccessNone7.053182s10.899311s
Success
setitimer.cSuccessNone7.053190s10.904559s
Success
sigalrm.cSuccessNone2.053443s5.920632s
Success
sigchld.cSuccessNone1.055132s4.927577s
Success
signal-fork.cSuccessNone4.054885s7.959247s
Success
signal-simple.cSuccessNone0.054627s3.865916s
Success
signal_SIGCHLD.cSuccessNone0.052193s4.301386s
Success
signal_fork.cSuccessNone0.050916s4.307932s
Success
signal_int_ignored.cSuccessNone2.054289s6.343037s
Success
signal_procmask.cSuccessNone0.048436s4.257184s
Success
signal_recursive.cSuccessNone0.048606s3.861111s
Success
signal_sa_mask.cSuccessNone0.047622s3.870305s
Success
sigpipe.cSuccessNone1.055968s5.349113s
Success
sigprocmask.cSuccessNone1.055122s4.903980s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.109394s4.408534s
Success
mmap-negative2.cSuccessNone0.149932s4.061980s
Success
Signal Tests
signal_resethand.cSuccessNone1.052723s3.941051s
Success

vidyalakshmir
vidyalakshmir previously approved these changes Mar 6, 2026
Copy link
Member

@Yaxuan-w Yaxuan-w left a comment

Choose a reason for hiding this comment

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

Justin's comments are good points to think about next steps. Worth @celinehoang177 putting some attention on dividing into

Copy link
Member

@Yaxuan-w Yaxuan-w left a comment

Choose a reason for hiding this comment

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

Also need to update exit/exec/fork in rawposix/src/sys_call.rs

@github-actions
Copy link
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total9
Success9
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 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:

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] Handling function ptr: 3 from cage: 1
[Grate|interpose-exit] In exit_grate 1 handler for cage: 1
[Grate|interpose-exit] PASS

STDERR:

interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 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:

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
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[Cage|interpose-register] In cage 2, about to register handler for geteuid
[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
[Cage|interpose-register] PASS: geteuid ret = 10
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases189
Number of Successes187
Number of Failures2
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 Failure2
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.049452s4.268079s
Success
chdir_getcwd.cSuccessNone0.050085s4.285733s
Success
chmod.cSuccessNone0.056408s4.290509s
Success
clock_gettime_highlevel.cSuccessNone0.122064s4.459714s
Success
clock_gettime_simple.cSuccessNone0.044917s4.242876s
Success
cloexec.cSuccessNone0.054683s3.916767s
Success
close.cSuccessNone0.063466s4.311909s
Success
creat_access.cSuccessNone0.053069s4.257884s
Success
doubleclose.cSuccessNone0.045768s3.851113s
Success
dup.cSuccessNone0.046391s4.242432s
Success
dup2.cSuccessNone0.052326s3.885791s
Success
dup3.cSuccessNone0.049980s4.257164s
Success
dupwrite.cSuccessNone0.052597s3.850359s
Success
etc_conf.cSuccessNone0.047677s4.249365s
Success
fchdir.cSuccessNone0.056450s4.301382s
Success
fchmod.cSuccessNone0.057868s4.282507s
Success
fcntl.cSuccessNone0.051995s4.269531s
Success
fdatasync.cSuccessNone0.052426s4.248074s
Success
filetest.cSuccessNone0.052819s3.873507s
Success
filetest1000.cSuccessNone0.062485s3.885337s
Success
flock.cSuccessNone0.059724s4.355569s
Success
fstat.cSuccessNone0.054497s4.256889s
Success
fstatfs.cSuccessNone0.046762s4.275024s
Success
fsync.cSuccessNone0.051513s4.261110s
Success
ftruncate.cSuccessNone0.057886s4.309651s
Success
getcwd.cSuccessNone0.049742s4.294905s
Success
getrandom.cSuccessNone0.052655s4.289279s
Success
ioctl.cSuccessNone0.057249s4.271685s
Success
link.cSuccessNone0.056265s4.291393s
Success
locale_test.cSuccessNone0.067586s6.064948s
Success
lseek.cSuccessNone0.057167s4.301666s
Success
mkdir_rmdir.cSuccessNone0.053571s4.289152s
Success
mkfifo_test.cFailureUnknown_Failure0.058594s4.347879s
thread 'main' (3920) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:89:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
mknod.cFailureUnknown_Failure0.052528s4.278256s
thread 'main' (3739) panicked at /src/wasmtime/crates/threei/src/handler_table/hashmap_impl.rs:89:9:
No handlers for self_cageid=1 syscall_num=133 (dest_grateid=1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
nocancel_io.cSuccessNone0.056916s5.466928s
Success
open.cSuccessNone0.048081s4.244747s
Success
path_conversion_safety.cSuccessNone0.057423s4.303260s
Success
pread_pwrite.cSuccessNone0.050502s4.261025s
Success
printf.cSuccessNone0.044589s3.856622s
Success
read.cSuccessNone0.054088s4.254228s
Success
readbytes.cSuccessNone0.049618s3.864335s
Success
readlink.cSuccessNone0.052872s4.268551s
Success
readlinkat.cSuccessNone0.054912s4.266334s
Success
readv_writev_test.cSuccessNone0.055477s4.276409s
Success
rename.cSuccessNone0.056027s4.300689s
Success
sc-writev.cSuccessNone0.051643s4.257744s
Success
stat.cSuccessNone0.054224s4.267898s
Success
statfs.cSuccessNone0.047469s4.245941s
Success
sync_file_range.cSuccessNone0.050479s4.269490s
Success
truncate.cSuccessNone0.055020s4.288496s
Success
unlink.cSuccessNone0.055428s4.293462s
Success
unlinkat.cSuccessNone0.055179s4.314092s
Success
write.cSuccessNone0.046171s3.849812s
Success
writeloop.cSuccessNone0.056308s3.864669s
Success
writepartial.cSuccessNone0.054071s3.866137s
Success
writev.cSuccessNone0.054013s4.276667s
Success
Math Tests
math_link_smoke.cSuccessNone0.057455s3.899775s
Success
math_tests.cSuccessNone0.060662s4.050911s
Success
Memory Tests
brk.cSuccessNone0.054186s4.259038s
Success
fork_large_memory.cSuccessNone0.105752s4.467624s
Success
malloc.cSuccessNone0.049754s3.872466s
Success
malloc_large.cSuccessNone0.050088s4.253946s
Success
memcpy.cSuccessNone0.047840s3.856003s
Success
memory_error_test.cSuccessNone0.054593s4.285452s
Success
mmap.cSuccessNone0.046094s4.260962s
Success
mmap_aligned.cSuccessNone0.047526s4.258691s
Success
mmap_complicated.cSuccessNone0.052817s4.316918s
Success
mmap_file.cSuccessNone0.053893s4.255335s
Success
mmap_shared.cSuccessNone0.052405s4.334960s
Success
mmaptest.cSuccessNone0.048908s4.286625s
Success
mprotect.cSuccessNone0.047091s4.270472s
Success
mprotect_boundary.cSuccessNone0.047031s4.275937s
Success
mprotect_end_region.cSuccessNone0.046425s4.273439s
Success
mprotect_middle_region.cSuccessNone0.047393s4.261128s
Success
mprotect_multiple_times.cSuccessNone0.046365s4.256876s
Success
mprotect_same_value.cSuccessNone0.047185s4.246664s
Success
mprotect_spanning_regions.cSuccessNone0.048788s4.268680s
Success
sbrk.cSuccessNone0.048484s4.264733s
Success
segfault.cSuccessNone0.054538s4.321607s
Success
shm.cSuccessNone0.054245s4.340361s
Success
shmtest.cSuccessNone0.047662s4.271241s
Success
tcache_test.cSuccessNone0.058067s4.437839s
Success
thread_malloc_sequential.cSuccessNone0.054968s4.437028s
Success
vtable.cSuccessNone0.060409s3.923405s
Success
Networking Tests
dns_resolve_test.cSuccessNone0.052277s5.968038s
Success
dnstest.cSuccessNone0.053571s4.265030s
Success
epoll_edge_triggered.cSuccessNone0.211793s4.481781s
Success
epollcreate1.cSuccessNone0.054625s4.275391s
Success
error_handling_net.cSuccessNone0.062102s4.336509s
Success
getaddrinfo_test.cSuccessNone0.058767s5.989626s
Success
gethostname.cSuccessNone0.047289s3.866476s
Success
getifaddrs.cSuccessNone0.055611s4.357860s
Success
getsockname.cSuccessNone0.055200s4.278141s
Success
getsockopt.cSuccessNone0.057709s4.286083s
Success
ipv6_basic.cSuccessNone0.058796s4.337910s
Success
makepipe.cSuccessNone0.046601s3.864130s
Success
nonblocking_eagain.cSuccessNone0.058880s4.296217s
Success
pipe.cSuccessNone0.055650s4.298927s
Success
pipe2.cSuccessNone0.055470s4.277340s
Success
pipeinput.cSuccessNone0.057783s4.327462s
Success
pipeinput2.cSuccessNone0.056987s4.319102s
Success
pipeonestring.cSuccessNone0.057223s4.320922s
Success
pipepong.cSuccessNone0.056605s4.326109s
Success
pipewrite.cSuccessNone0.050141s4.239657s
Success
poll.cSuccessNone0.053983s4.269488s
Success
recvfrom-sendto.cSuccessNone0.056187s4.282085s
Success
sendmsg_recvmsg_test.cSuccessNone0.056112s4.285315s
Success
serverclient.cSuccessNone0.055803s3.882834s
Success
shutdown.cSuccessNone0.056623s3.884786s
Success
shutdown_fork.cSuccessNone0.055480s4.318217s
Success
simple-select.cSuccessNone0.055803s4.337218s
Success
simple_epoll.cSuccessNone0.054024s4.279709s
Success
socket.cSuccessNone0.052829s3.888020s
Success
socket_cloexec.cSuccessNone0.053014s4.267465s
Success
socket_options_advanced.cSuccessNone0.059393s4.317101s
Success
socketepoll.cSuccessNone0.053894s3.887367s
Success
socketpair.cSuccessNone0.052196s4.332981s
Success
socketselect.cSuccessNone0.053382s4.267881s
Success
tcp_connect_single.cSuccessNone0.054202s4.290911s
Success
udp_send_recv.cSuccessNone0.161611s4.458510s
Success
uds-getsockname.cSuccessNone0.055137s4.273488s
Success
uds-nb-select.cSuccessNone2.063168s6.506308s
Success
uds-serverclient.cSuccessNone0.058878s4.335927s
Success
uds-socketselect.cSuccessNone0.055326s3.888602s
Success
writev_socket.cSuccessNone0.058469s4.286746s
Success
Process Tests
barrier_test.cSuccessNone0.052106s4.426954s
Success
chain_thread.cSuccessNone1.055534s5.432795s
Success
ctor_syscall_test.cSuccessNone0.044017s4.247059s
Success
cxa_atexit_test.cSuccessNone0.050908s3.884982s
Success
exit.cSuccessNone0.050793s3.864229s
Success
exit_failure.cSuccessNone0.053464s3.972865s
Success
flockfile_test.cSuccessNone0.055058s4.448218s
Success
fork2malloc.cSuccessNone0.055103s4.305399s
Success
fork_select.cSuccessNone0.052867s4.311624s
Success
fork_simple.cSuccessNone0.052795s4.305727s
Success
fork_syscall.cSuccessNone0.058994s4.395275s
Success
fork_tls_ctype.cSuccessNone0.056779s4.349124s
Success
forkandopen.cSuccessNone0.055867s4.321414s
Success
forkdup.cSuccessNone0.056678s3.941801s
Success
forkexecuid.cSuccessNone0.052623s4.326339s
Success
forkexecv-arg.cSuccessNone0.053109s4.303638s
Success
forkexecv.cSuccessNone0.051571s4.303981s
Success
forkfiles.cSuccessNone0.055065s4.298987s
Success
forkmalloc.cSuccessNone0.067484s4.305218s
Success
forknodup.cSuccessNone0.056227s4.313227s
Success
function-ptr.cSuccessNone0.050081s4.261517s
Success
getegid_syscall.cSuccessNone0.055923s4.325386s
Success
getgid_syscall.cSuccessNone0.056054s4.329421s
Success
getpid.cSuccessNone0.046660s4.220483s
Success
getpid_syscall.cSuccessNone0.056194s4.351906s
Success
getppid.cSuccessNone0.057004s4.348746s
Success
getppid_syscall.cSuccessNone0.057337s4.328810s
Success
getuid.cSuccessNone0.054862s4.248365s
Success
getuid_syscall.cSuccessNone0.053324s4.328157s
Success
hello-arg.cSuccessNone0.044354s3.872976s
Success
hello.cSuccessNone0.044282s3.867742s
Success
longjmp.cSuccessNone0.045401s3.882486s
Success
mutex.cSuccessNone2.058932s6.554258s
Success
printf_deadlock_smoke.cSuccessNone0.063958s4.589013s
Success
printf_thread_test.cSuccessNone0.052693s4.471532s
Success
sem_forks.cSuccessNone0.057064s4.346545s
Success
setsid.cSuccessNone0.046533s3.883960s
Success
template.cSuccessNone0.054096s4.313052s
Success
test_exec_nofork.cSuccessNone0.052788s4.264849s
Success
test_unlink_open_file.cSuccessNone0.049597s3.864066s
Success
thread-test.cSuccessNone0.048795s4.416585s
Success
thread.cSuccessNone0.049277s4.410489s
Success
thread_cageid_race.cSuccessNone0.050231s4.404608s
Success
tls_test.cSuccessNone0.052760s4.430314s
Success
uname.cSuccessNone0.048717s4.256421s
Success
wait.cSuccessNone2.050699s5.925911s
Success
waitpid_anychild.cSuccessNone0.053321s4.324634s
Success
waitpid_syscall.cSuccessNone1.055314s5.343304s
Success
waitpid_wnohang.cSuccessNone0.055550s3.922865s
Success
Signal Tests
alarm.cSuccessNone7.055664s10.923100s
Success
eintr_fork_signal.cSuccessNone1.056008s5.321010s
Success
setitimer.cSuccessNone7.054086s10.908034s
Success
sigalrm.cSuccessNone2.054449s5.894900s
Success
sigchld.cSuccessNone1.055216s4.955487s
Success
signal-fork.cSuccessNone4.056774s7.973159s
Success
signal-simple.cSuccessNone0.055162s3.899053s
Success
signal_SIGCHLD.cSuccessNone0.052719s4.318380s
Success
signal_fork.cSuccessNone0.051300s4.354796s
Success
signal_int_ignored.cSuccessNone2.055387s6.364588s
Success
signal_procmask.cSuccessNone0.048957s4.268369s
Success
signal_recursive.cSuccessNone0.048900s3.870758s
Success
signal_sa_mask.cSuccessNone0.048341s3.893115s
Success
sigpipe.cSuccessNone1.056118s5.360461s
Success
sigprocmask.cSuccessNone1.053385s4.902931s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.113914s4.767181s
Success
mmap-negative2.cSuccessNone0.140092s4.207934s
Success
Signal Tests
signal_resethand.cSuccessNone1.053402s3.937107s
Success

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.

Introduce temporary syscall number definitions under sysdefs/ to replace hardcoded values in Rust

4 participants