You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sanitize waitpid syscall arguments (issue #612). Introduced a WaitpidChildSelector enum to interpret raw inputs at the entry point, ensuring special values (e.g., -1) are handled correctly before reaching core logic. This resolves bugs like #543, where -1 was incorrectly passed to get_cage().
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.c
Success
STDOUT:
pass
STDERR:
concurrent-request/thread_race_grate.c
Success
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:
interposing-calls/interpose-exec_grate.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10
STDERR:
simple-tests/diff-cage-args_grate.c
Success
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.c
Success
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
Metric
Count
Total Test Cases
3
Number of Successes
3
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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 Case
Status
Error Type
Native Time
Wasm Time
Output
Static Tests
fork_simple.c
Success
None
0.055857s
4.307830s
Success
thread.c
Success
None
0.049364s
4.399207s
Success
tls_test.c
Success
None
0.056328s
4.429166s
Success
Fail Tests
Summary
Metric
Count
Total Test Cases
0
Number of Successes
0
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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
Metric
Count
Total Test Cases
208
Number of Successes
208
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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 Case
Status
Error Type
Native Time
Wasm Time
Output
File Tests
chartests.c
Success
None
0.049313s
0.144778s
Success
chdir_getcwd.c
Success
None
0.050544s
0.099697s
Success
chmod.c
Success
None
0.055597s
0.106047s
Success
clock_gettime_highlevel.c
Success
None
0.122056s
0.302601s
Success
clock_gettime_simple.c
Success
None
0.045474s
0.091203s
Success
cloexec.c
Success
None
0.054687s
0.108469s
Success
close.c
Success
None
0.062517s
0.122397s
Success
creat_access.c
Success
None
0.052976s
0.098923s
Success
doubleclose.c
Success
None
0.046319s
0.084817s
Success
dup.c
Success
None
0.047802s
0.100263s
Success
dup2.c
Success
None
0.051685s
0.096638s
Success
dup3.c
Success
None
0.051445s
0.099229s
Success
dupwrite.c
Success
None
0.053015s
0.095237s
Success
etc_conf.c
Success
None
0.048730s
0.105293s
Success
fchdir.c
Success
None
0.055706s
0.107891s
Success
fchmod.c
Success
None
0.054998s
0.105370s
Success
fcntl.c
Success
None
0.052404s
0.105513s
Success
fdatasync.c
Success
None
0.051620s
0.093860s
Success
filetest.c
Success
None
0.052461s
0.094945s
Success
filetest1000.c
Success
None
0.062331s
0.112465s
Success
flock.c
Success
None
0.060667s
0.126323s
Success
fstat.c
Success
None
0.054411s
0.105574s
Success
fstatfs.c
Success
None
0.048421s
0.094445s
Success
fsync.c
Success
None
0.052434s
0.095655s
Success
ftruncate.c
Success
None
0.056425s
0.220342s
Success
getcwd.c
Success
None
0.049879s
0.091299s
Success
getpgid.c
Success
None
0.047429s
0.088128s
Success
getrandom.c
Success
None
0.054097s
0.101720s
Success
ioctl.c
Success
None
0.055125s
0.102376s
Success
link.c
Success
None
0.055887s
0.150654s
Success
locale_test.c
Success
None
0.064014s
0.564837s
Success
lseek.c
Success
None
0.056738s
0.209790s
Success
lstat.c
Success
None
0.056033s
0.114231s
Success
mkdir_rmdir.c
Success
None
0.053176s
0.097620s
Success
mkfifo_test.c
Success
None
0.057653s
0.136111s
Success
mknod.c
Success
None
0.052074s
0.106899s
Success
nocancel_io.c
Success
None
0.055904s
0.125253s
Success
open.c
Success
None
0.048249s
0.089498s
Success
openat.c
Success
None
0.049054s
0.096722s
Success
path_conversion_safety.c
Success
None
0.058695s
0.124422s
Success
ppoll.c
Success
None
0.056004s
0.108068s
Success
pread_pwrite.c
Success
None
0.051468s
0.106284s
Success
preadv_pwritev.c
Success
None
0.055035s
0.112614s
Success
printf.c
Success
None
0.045753s
0.084410s
Success
prlimit64.c
Success
None
0.047080s
0.091467s
Success
read.c
Success
None
0.053781s
0.106802s
Success
readbytes.c
Success
None
0.050377s
0.092658s
Success
readdir_basic.c
Success
None
0.056353s
0.115487s
Success
readlink.c
Success
None
0.052631s
0.103080s
Success
readlinkat.c
Success
None
0.054872s
0.110159s
Success
readv_writev_test.c
Success
None
0.054158s
0.111103s
Success
rename.c
Success
None
0.055295s
0.102540s
Success
sc-writev.c
Success
None
0.051231s
0.098778s
Success
stat.c
Success
None
0.054070s
0.103420s
Success
statfs.c
Success
None
0.048332s
0.093582s
Success
symlink.c
Success
None
0.054892s
0.130050s
Success
sync_file_range.c
Success
None
0.051621s
0.095648s
Success
timespec_time_t_compat.c
Success
None
0.050649s
0.092102s
Success
truncate.c
Success
None
0.054204s
0.109665s
Success
unlink.c
Success
None
0.056317s
0.144330s
Success
unlinkat.c
Success
None
0.054460s
0.115289s
Success
write.c
Success
None
0.048289s
0.087746s
Success
writeloop.c
Success
None
0.055331s
0.095791s
Success
writepartial.c
Success
None
0.053572s
0.094433s
Success
writev.c
Success
None
0.054509s
0.105225s
Success
Math Tests
math_link_smoke.c
Success
None
0.057502s
0.093342s
Success
math_tests.c
Success
None
0.060782s
0.111835s
Success
Memory Tests
brk.c
Success
None
0.051047s
0.097531s
Success
fork_large_memory.c
Success
None
0.083081s
0.336646s
Success
malloc.c
Success
None
0.049044s
0.088693s
Success
malloc_large.c
Success
None
0.049866s
0.094567s
Success
memcpy.c
Success
None
0.048510s
0.089274s
Success
memory_error_test.c
Success
None
0.054470s
0.128444s
Success
mmap.c
Success
None
0.045886s
0.089855s
Success
mmap_aligned.c
Success
None
0.047882s
0.105854s
Success
mmap_complicated.c
Success
None
0.053352s
0.108472s
Success
mmap_file.c
Success
None
0.053528s
0.100969s
Success
mmap_shared.c
Success
None
0.052065s
0.102186s
Success
mmaptest.c
Success
None
0.050280s
0.094772s
Success
mprotect.c
Success
None
0.047923s
0.089333s
Success
mprotect_boundary.c
Success
None
0.048159s
0.105679s
Success
mprotect_end_region.c
Success
None
0.046865s
0.097020s
Success
mprotect_middle_region.c
Success
None
0.047078s
0.100269s
Success
mprotect_multiple_times.c
Success
None
0.047160s
0.100217s
Success
mprotect_same_value.c
Success
None
0.047324s
0.095276s
Success
mprotect_spanning_regions.c
Success
None
0.047973s
0.113567s
Success
munmap_adjacent_shm.c
Success
None
0.049731s
0.103271s
Success
sbrk.c
Success
None
0.048955s
0.092094s
Success
segfault.c
Success
None
0.054168s
0.114634s
Success
shm.c
Success
None
0.052790s
0.108514s
Success
shmtest.c
Success
None
0.047897s
0.096100s
Success
thread_malloc_sequential.c
Success
None
0.054759s
0.118102s
Success
vtable.c
Success
None
0.058840s
0.111256s
Success
Networking Tests
accept4.c
Success
None
0.057923s
0.112841s
Success
dns_resolve_test.c
Success
None
0.052795s
0.099794s
Success
dnstest.c
Success
None
0.053188s
0.108770s
Success
epoll_edge_triggered.c
Success
None
0.210670s
0.447025s
Success
epollcreate1.c
Success
None
0.054725s
0.109999s
Success
error_handling_net.c
Success
None
0.061083s
0.213186s
Success
getaddrinfo_test.c
Success
None
0.056550s
0.142756s
Success
getaddrinfo_unspec.c
Success
None
0.072181s
0.109912s
Success
gethostname.c
Success
None
0.048448s
0.088144s
Success
getifaddrs.c
Success
None
0.054828s
0.099992s
Success
getsockname.c
Success
None
0.058050s
0.102482s
Success
getsockopt.c
Success
None
0.056745s
0.155648s
Success
ipv6_basic.c
Success
None
0.057971s
0.144786s
Success
makepipe.c
Success
None
0.047429s
0.087833s
Success
nonblocking_eagain.c
Success
None
0.058496s
0.159175s
Success
pipe.c
Success
None
0.055856s
0.107877s
Success
pipe2.c
Success
None
0.055394s
0.101611s
Success
pipeinput.c
Success
None
0.056702s
0.120070s
Success
pipeinput2.c
Success
None
0.057447s
0.119799s
Success
pipeonestring.c
Success
None
0.056661s
0.118397s
Success
pipepong.c
Success
None
0.055643s
0.119806s
Success
pipewrite.c
Success
None
0.050198s
0.100218s
Success
poll.c
Success
None
0.053982s
0.095500s
Success
recvfrom-sendto.c
Success
None
0.055196s
0.107971s
Success
sendmsg_recvmsg_test.c
Success
None
0.054485s
0.108646s
Success
serverclient.c
Success
None
0.054966s
0.104800s
Success
shutdown.c
Success
None
0.056819s
0.105293s
Success
shutdown_fork.c
Success
None
0.054992s
0.108038s
Success
simple-select.c
Success
None
0.056245s
0.120217s
Success
simple_epoll.c
Success
None
0.054309s
0.104451s
Success
socket.c
Success
None
0.052952s
0.097646s
Success
socket_cloexec.c
Success
None
0.053171s
0.095600s
Success
socket_options_advanced.c
Success
None
0.059761s
0.177361s
Success
socketepoll.c
Success
None
0.053050s
0.097683s
Success
socketpair.c
Success
None
0.052433s
0.103424s
Success
socketselect.c
Success
None
0.053565s
0.104008s
Success
udp_send_recv.c
Success
None
0.160759s
0.259482s
Success
uds-getsockname.c
Success
None
0.054465s
0.097992s
Success
uds-nb-select.c
Success
None
2.062454s
2.151921s
Success
uds-serverclient.c
Success
None
0.058009s
0.126589s
Success
uds-socketselect.c
Success
None
0.054609s
0.102853s
Success
writev_socket.c
Success
None
0.057773s
0.140335s
Success
Process Tests
barrier_test.c
Success
None
0.052380s
0.102592s
Success
chain_thread.c
Success
None
1.054893s
1.108355s
Success
ctor_syscall_test.c
Success
None
0.045101s
0.087952s
Success
cxa_atexit_test.c
Success
None
0.051352s
0.091976s
Success
execve_shebang.c
Success
None
0.053575s
0.098551s
Success
exit.c
Success
None
0.051425s
0.090226s
Success
exit_failure.c
Success
None
0.052846s
0.098625s
Success
exit_group_thread.c
Success
None
0.055182s
0.107358s
Success
flockfile_test.c
Success
None
0.054341s
0.112104s
Success
fork2malloc.c
Success
None
0.054329s
0.104932s
Success
fork_select.c
Success
None
0.053121s
0.112205s
Success
fork_simple.c
Success
None
0.052120s
0.098334s
Success
fork_syscall.c
Success
None
0.058089s
0.225758s
Success
fork_tls_ctype.c
Success
None
0.071068s
0.146273s
Success
forkandopen.c
Success
None
0.054813s
0.117108s
Success
forkdup.c
Success
None
0.057610s
0.105833s
Success
forkexecuid.c
Success
None
0.052829s
0.115297s
Success
forkexecv-arg.c
Success
None
0.052899s
0.103553s
Success
forkexecv.c
Success
None
0.050709s
0.100714s
Success
forkfiles.c
Success
None
0.054482s
0.110888s
Success
forkmalloc.c
Success
None
0.054387s
0.102726s
Success
forknodup.c
Success
None
0.055007s
0.112508s
Success
function-ptr.c
Success
None
0.049015s
0.091213s
Success
getegid_syscall.c
Success
None
0.054806s
0.188960s
Success
getgid_syscall.c
Success
None
0.054503s
0.192934s
Success
getpid.c
Success
None
0.047931s
0.088326s
Success
getpid_syscall.c
Success
None
0.056199s
0.207851s
Success
getppid.c
Success
None
0.054553s
0.101484s
Success
getppid_syscall.c
Success
None
0.056824s
0.171060s
Success
getuid.c
Success
None
0.054456s
0.097252s
Success
getuid_syscall.c
Success
None
0.053476s
0.137363s
Success
hello-arg.c
Success
None
0.045635s
0.086892s
Success
hello.c
Success
None
0.046135s
0.084644s
Success
longjmp.c
Success
None
0.047291s
0.091531s
Success
mutex.c
Success
None
2.056321s
2.105971s
Success
printf_deadlock_smoke.c
Success
None
0.061198s
0.128654s
Success
printf_thread_test.c
Success
None
0.053870s
0.107625s
Success
sem_forks.c
Success
None
0.057865s
0.116161s
Success
setsid.c
Success
None
0.047729s
0.088282s
Success
template.c
Success
None
0.053478s
0.119364s
Success
test_exec_nofork.c
Success
None
0.052442s
0.100249s
Success
test_unlink_open_file.c
Success
None
0.049915s
0.090381s
Success
thread-guard.c
Success
None
0.052320s
0.102182s
Success
thread-test.c
Success
None
0.049598s
0.093964s
Success
thread.c
Success
None
0.049405s
0.093639s
Success
thread_cageid_race.c
Success
None
0.049854s
0.112490s
Success
tls_test.c
Success
None
0.052341s
0.104426s
Success
uname.c
Success
None
0.048655s
0.088807s
Success
wait.c
Success
None
2.052085s
2.102446s
Success
waitpid_anychild.c
Success
None
0.055814s
0.101585s
Success
waitpid_syscall.c
Success
None
1.054407s
1.131600s
Success
waitpid_wnohang.c
Success
None
0.054280s
0.103485s
Success
Signal Tests
alarm.c
Success
None
7.053233s
7.128407s
Success
eintr_fork_signal.c
Success
None
1.056238s
1.112929s
Success
kill.c
Success
None
1.053771s
1.105028s
Success
setitimer.c
Success
None
7.053976s
7.132327s
Success
sigalrm.c
Success
None
2.053771s
2.110221s
Success
sigaltstack.c
Success
None
0.055131s
0.107946s
Success
sigchld.c
Success
None
1.055302s
1.101344s
Success
signal-fork.c
Success
None
4.055613s
4.106181s
Success
signal-simple.c
Success
None
0.054691s
0.098522s
Success
signal_SIGCHLD.c
Success
None
0.052594s
0.104889s
Success
signal_fork.c
Success
None
0.050963s
0.106624s
Success
signal_int_ignored.c
Success
None
2.054640s
2.104614s
Success
signal_kill_cleanup.c
Success
None
1.052188s
1.102313s
Success
signal_procmask.c
Success
None
0.050257s
0.098992s
Success
signal_read_interrupt.c
Success
None
0.558174s
0.612468s
Success
signal_recursive.c
Success
None
0.049080s
0.099790s
Success
signal_sa_mask.c
Success
None
0.048610s
0.094261s
Success
signal_select_interrupt.c
Success
None
0.557666s
0.614452s
Success
signal_write_interrupt.c
Success
None
1.056532s
1.112527s
Success
sigpipe.c
Success
None
1.056043s
1.110397s
Success
sigprocmask.c
Success
None
1.053710s
1.102018s
Success
Fail Tests
Summary
Metric
Count
Total Test Cases
4
Number of Successes
4
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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)
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.c
Success
STDOUT:
pass
STDERR:
concurrent-request/thread_race_grate.c
Success
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:
interposing-calls/interpose-exec_grate.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
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.c
Success
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10
STDERR:
simple-tests/diff-cage-args_grate.c
Success
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.c
Success
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
Metric
Count
Total Test Cases
3
Number of Successes
3
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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 Case
Status
Error Type
Native Time
Wasm Time
Output
Static Tests
fork_simple.c
Success
None
0.046763s
4.322456s
Success
thread.c
Success
None
0.040089s
4.373701s
Success
tls_test.c
Success
None
0.055813s
4.356865s
Success
Fail Tests
Summary
Metric
Count
Total Test Cases
0
Number of Successes
0
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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
Metric
Count
Total Test Cases
208
Number of Successes
208
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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 Case
Status
Error Type
Native Time
Wasm Time
Output
File Tests
chartests.c
Success
None
0.038969s
0.121744s
Success
chdir_getcwd.c
Success
None
0.040558s
0.082145s
Success
chmod.c
Success
None
0.044847s
0.088270s
Success
clock_gettime_highlevel.c
Success
None
0.275300s
0.302018s
Success
clock_gettime_simple.c
Success
None
0.035530s
0.072871s
Success
cloexec.c
Success
None
0.045195s
0.091256s
Success
close.c
Success
None
0.044814s
0.095305s
Success
creat_access.c
Success
None
0.043801s
0.082761s
Success
doubleclose.c
Success
None
0.037397s
0.070402s
Success
dup.c
Success
None
0.037149s
0.081140s
Success
dup2.c
Success
None
0.041669s
0.079393s
Success
dup3.c
Success
None
0.040190s
0.081336s
Success
dupwrite.c
Success
None
0.044305s
0.080992s
Success
etc_conf.c
Success
None
0.037919s
0.087709s
Success
fchdir.c
Success
None
0.045080s
0.089158s
Success
fchmod.c
Success
None
0.043689s
0.087833s
Success
fcntl.c
Success
None
0.042240s
0.087618s
Success
fdatasync.c
Success
None
0.042185s
0.076892s
Success
filetest.c
Success
None
0.041569s
0.077703s
Success
filetest1000.c
Success
None
0.045122s
0.088447s
Success
flock.c
Success
None
0.052621s
0.109395s
Success
fstat.c
Success
None
0.043589s
0.087794s
Success
fstatfs.c
Success
None
0.038861s
0.078064s
Success
fsync.c
Success
None
0.041900s
0.079961s
Success
ftruncate.c
Success
None
0.045595s
0.188182s
Success
getcwd.c
Success
None
0.039569s
0.075111s
Success
getpgid.c
Success
None
0.037390s
0.070878s
Success
getrandom.c
Success
None
0.042911s
0.083419s
Success
ioctl.c
Success
None
0.045070s
0.085690s
Success
link.c
Success
None
0.046120s
0.130906s
Success
locale_test.c
Success
None
0.053851s
0.512214s
Success
lseek.c
Success
None
0.047183s
0.184986s
Success
lstat.c
Success
None
0.046617s
0.095092s
Success
mkdir_rmdir.c
Success
None
0.043544s
0.080764s
Success
mkfifo_test.c
Success
None
0.046650s
0.114129s
Success
mknod.c
Success
None
0.042265s
0.088820s
Success
nocancel_io.c
Success
None
0.045890s
0.106383s
Success
open.c
Success
None
0.039540s
0.074242s
Success
openat.c
Success
None
0.039572s
0.079838s
Success
path_conversion_safety.c
Success
None
0.046139s
0.103035s
Success
ppoll.c
Success
None
0.046997s
0.091310s
Success
pread_pwrite.c
Success
None
0.040138s
0.086836s
Success
preadv_pwritev.c
Success
None
0.046108s
0.095275s
Success
printf.c
Success
None
0.036367s
0.069572s
Success
prlimit64.c
Success
None
0.037316s
0.075183s
Success
read.c
Success
None
0.044049s
0.087720s
Success
readbytes.c
Success
None
0.038755s
0.075656s
Success
readdir_basic.c
Success
None
0.045308s
0.097278s
Success
readlink.c
Success
None
0.041885s
0.084360s
Success
readlinkat.c
Success
None
0.044695s
0.092264s
Success
readv_writev_test.c
Success
None
0.043581s
0.090427s
Success
rename.c
Success
None
0.044384s
0.094544s
Success
sc-writev.c
Success
None
0.041484s
0.083336s
Success
stat.c
Success
None
0.043259s
0.086050s
Success
statfs.c
Success
None
0.037616s
0.076090s
Success
symlink.c
Success
None
0.044288s
0.108029s
Success
sync_file_range.c
Success
None
0.040792s
0.077843s
Success
timespec_time_t_compat.c
Success
None
0.039442s
0.075108s
Success
truncate.c
Success
None
0.044088s
0.091437s
Success
unlink.c
Success
None
0.045233s
0.119421s
Success
unlinkat.c
Success
None
0.044383s
0.095936s
Success
write.c
Success
None
0.039032s
0.070834s
Success
writeloop.c
Success
None
0.045756s
0.083190s
Success
writepartial.c
Success
None
0.042721s
0.076181s
Success
writev.c
Success
None
0.043645s
0.087625s
Success
Math Tests
math_link_smoke.c
Success
None
0.047299s
0.077653s
Success
math_tests.c
Success
None
0.052729s
0.095779s
Success
Memory Tests
brk.c
Success
None
0.040089s
0.077677s
Success
fork_large_memory.c
Success
None
0.071254s
0.309234s
Success
malloc.c
Success
None
0.040130s
0.072271s
Success
malloc_large.c
Success
None
0.039967s
0.077070s
Success
memcpy.c
Success
None
0.038054s
0.071602s
Success
memory_error_test.c
Success
None
0.044291s
0.108553s
Success
mmap.c
Success
None
0.036379s
0.074562s
Success
mmap_aligned.c
Success
None
0.037781s
0.090031s
Success
mmap_complicated.c
Success
None
0.044052s
0.091563s
Success
mmap_file.c
Success
None
0.042686s
0.080498s
Success
mmap_shared.c
Success
None
0.042580s
0.086290s
Success
mmaptest.c
Success
None
0.038570s
0.078013s
Success
mprotect.c
Success
None
0.037310s
0.073070s
Success
mprotect_boundary.c
Success
None
0.038264s
0.088532s
Success
mprotect_end_region.c
Success
None
0.037086s
0.080245s
Success
mprotect_middle_region.c
Success
None
0.037488s
0.083280s
Success
mprotect_multiple_times.c
Success
None
0.036435s
0.080362s
Success
mprotect_same_value.c
Success
None
0.036983s
0.078395s
Success
mprotect_spanning_regions.c
Success
None
0.037101s
0.092954s
Success
munmap_adjacent_shm.c
Success
None
0.038933s
0.084416s
Success
sbrk.c
Success
None
0.038442s
0.073937s
Success
segfault.c
Success
None
0.043247s
0.097888s
Success
shm.c
Success
None
0.042216s
0.090499s
Success
shmtest.c
Success
None
0.038498s
0.078954s
Success
thread_malloc_sequential.c
Success
None
0.045280s
0.098428s
Success
vtable.c
Success
None
0.047566s
0.090629s
Success
Networking Tests
accept4.c
Success
None
0.047665s
0.094671s
Success
dns_resolve_test.c
Success
None
0.042455s
0.083104s
Success
dnstest.c
Success
None
0.044323s
0.093355s
Success
epoll_edge_triggered.c
Success
None
0.200099s
0.416037s
Success
epollcreate1.c
Success
None
0.044735s
0.091968s
Success
error_handling_net.c
Success
None
0.050857s
0.187556s
Success
getaddrinfo_test.c
Success
None
0.045956s
0.121024s
Success
getaddrinfo_unspec.c
Success
None
0.046293s
0.149035s
Success
gethostname.c
Success
None
0.038318s
0.071975s
Success
getifaddrs.c
Success
None
0.044464s
0.082873s
Success
getsockname.c
Success
None
0.049944s
0.086122s
Success
getsockopt.c
Success
None
0.047144s
0.129586s
Success
ipv6_basic.c
Success
None
0.047258s
0.121325s
Success
makepipe.c
Success
None
0.038638s
0.071455s
Success
nonblocking_eagain.c
Success
None
0.047058s
0.137751s
Success
pipe.c
Success
None
0.046647s
0.091310s
Success
pipe2.c
Success
None
0.045479s
0.085540s
Success
pipeinput.c
Success
None
0.046233s
0.101385s
Success
pipeinput2.c
Success
None
0.046203s
0.101637s
Success
pipeonestring.c
Success
None
0.047010s
0.102935s
Success
pipepong.c
Success
None
0.045726s
0.102756s
Success
pipewrite.c
Success
None
0.041172s
0.087302s
Success
poll.c
Success
None
0.045423s
0.080822s
Success
recvfrom-sendto.c
Success
None
0.044935s
0.090107s
Success
sendmsg_recvmsg_test.c
Success
None
0.045628s
0.092863s
Success
serverclient.c
Success
None
0.044610s
0.088731s
Success
shutdown.c
Success
None
0.046738s
0.088319s
Success
shutdown_fork.c
Success
None
0.044891s
0.092459s
Success
simple-select.c
Success
None
0.046080s
0.103664s
Success
simple_epoll.c
Success
None
0.045484s
0.087805s
Success
socket.c
Success
None
0.043089s
0.079905s
Success
socket_cloexec.c
Success
None
0.042645s
0.080285s
Success
socket_options_advanced.c
Success
None
0.048489s
0.149602s
Success
socketepoll.c
Success
None
0.043147s
0.081858s
Success
socketpair.c
Success
None
0.043557s
0.088818s
Success
socketselect.c
Success
None
0.043017s
0.086567s
Success
udp_send_recv.c
Success
None
0.149462s
0.237263s
Success
uds-getsockname.c
Success
None
0.044323s
0.081385s
Success
uds-nb-select.c
Success
None
2.051606s
2.128989s
Success
uds-serverclient.c
Success
None
0.047064s
0.109463s
Success
uds-socketselect.c
Success
None
0.044431s
0.086636s
Success
writev_socket.c
Success
None
0.047074s
0.117831s
Success
Process Tests
barrier_test.c
Success
None
0.044585s
0.087363s
Success
chain_thread.c
Success
None
1.046266s
1.093519s
Success
ctor_syscall_test.c
Success
None
0.037424s
0.072466s
Success
cxa_atexit_test.c
Success
None
0.041509s
0.076965s
Success
execve_shebang.c
Success
None
0.044083s
0.082639s
Success
exit.c
Success
None
0.042575s
0.077298s
Success
exit_failure.c
Success
None
0.043240s
0.085986s
Success
exit_group_thread.c
Success
None
0.045638s
0.091972s
Success
flockfile_test.c
Success
None
0.043405s
0.091621s
Success
fork2malloc.c
Success
None
0.046716s
0.092666s
Success
fork_select.c
Success
None
0.042476s
0.093508s
Success
fork_simple.c
Success
None
0.041940s
0.082632s
Success
fork_syscall.c
Success
None
0.047059s
0.228235s
Success
fork_tls_ctype.c
Success
None
0.046886s
0.120125s
Success
forkandopen.c
Success
None
0.045193s
0.099881s
Success
forkdup.c
Success
None
0.049824s
0.091146s
Success
forkexecuid.c
Success
None
0.042087s
0.096291s
Success
forkexecv-arg.c
Success
None
0.042599s
0.086421s
Success
forkexecv.c
Success
None
0.041795s
0.083952s
Success
forkfiles.c
Success
None
0.044633s
0.094724s
Success
forkmalloc.c
Success
None
0.045726s
0.088839s
Success
forknodup.c
Success
None
0.045888s
0.097046s
Success
function-ptr.c
Success
None
0.039551s
0.076438s
Success
getegid_syscall.c
Success
None
0.044979s
0.197180s
Success
getgid_syscall.c
Success
None
0.045101s
0.207065s
Success
getpid.c
Success
None
0.038175s
0.072673s
Success
getpid_syscall.c
Success
None
0.045992s
0.219856s
Success
getppid.c
Success
None
0.043891s
0.087547s
Success
getppid_syscall.c
Success
None
0.047423s
0.174414s
Success
getuid.c
Success
None
0.044480s
0.081202s
Success
getuid_syscall.c
Success
None
0.044022s
0.131320s
Success
hello-arg.c
Success
None
0.037658s
0.074634s
Success
hello.c
Success
None
0.037162s
0.071097s
Success
longjmp.c
Success
None
0.036312s
0.074085s
Success
mutex.c
Success
None
2.047701s
2.090260s
Success
printf_deadlock_smoke.c
Success
None
0.052245s
0.109892s
Success
printf_thread_test.c
Success
None
0.042043s
0.088083s
Success
sem_forks.c
Success
None
0.048160s
0.102866s
Success
setsid.c
Success
None
0.038976s
0.073461s
Success
template.c
Success
None
0.044434s
0.105080s
Success
test_exec_nofork.c
Success
None
0.042855s
0.086340s
Success
test_unlink_open_file.c
Success
None
0.040963s
0.075737s
Success
thread-guard.c
Success
None
0.041491s
0.082901s
Success
thread-test.c
Success
None
0.040304s
0.081144s
Success
thread.c
Success
None
0.040879s
0.078607s
Success
thread_cageid_race.c
Success
None
0.041053s
0.097939s
Success
tls_test.c
Success
None
0.043489s
0.088319s
Success
uname.c
Success
None
0.039823s
0.073859s
Success
wait.c
Success
None
2.041827s
2.088800s
Success
waitpid_anychild.c
Success
None
0.044369s
0.087334s
Success
waitpid_syscall.c
Success
None
1.045602s
1.125987s
Success
waitpid_wnohang.c
Success
None
0.045985s
0.088435s
Success
Signal Tests
alarm.c
Success
None
7.042225s
7.110718s
Success
eintr_fork_signal.c
Success
None
1.044075s
1.095330s
Success
kill.c
Success
None
1.045446s
1.088058s
Success
setitimer.c
Success
None
7.049221s
7.110231s
Success
sigalrm.c
Success
None
2.043029s
2.092761s
Success
sigaltstack.c
Success
None
0.044942s
0.088010s
Success
sigchld.c
Success
None
1.045392s
1.087987s
Success
signal-fork.c
Success
None
4.045515s
4.090676s
Success
signal-simple.c
Success
None
0.044244s
0.081679s
Success
signal_SIGCHLD.c
Success
None
0.042752s
0.086993s
Success
signal_fork.c
Success
None
0.041352s
0.090485s
Success
signal_int_ignored.c
Success
None
2.043019s
2.090202s
Success
signal_kill_cleanup.c
Success
None
1.043154s
1.085752s
Success
signal_procmask.c
Success
None
0.038663s
0.079146s
Success
signal_read_interrupt.c
Success
None
0.546120s
0.592675s
Success
signal_recursive.c
Success
None
0.040510s
0.084730s
Success
signal_sa_mask.c
Success
None
0.038884s
0.078595s
Success
signal_select_interrupt.c
Success
None
0.546851s
0.597622s
Success
signal_write_interrupt.c
Success
None
1.046574s
1.094751s
Success
sigpipe.c
Success
None
1.046347s
1.092403s
Success
sigprocmask.c
Success
None
1.044811s
1.084591s
Success
Fail Tests
Summary
Metric
Count
Total Test Cases
4
Number of Successes
4
Number of Failures
0
Number of Compilation Failure Native
0
Number of Runtime Failure Native
0
Number of Segmentation Fault Native
0
Number of Timeout During Native
0
Number of Lind Wasm Compile Failure
0
Number of Lind Wasm Runtime Failure
0
Number of Lind Wasm Segmentation Failure
0
Number of Timeout During Lind Wasm run
0
Number of Unknown Failure
0
Number of C Compiler and Wasm Output mismatch
0
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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sanitize waitpid syscall arguments (issue #612). Introduced a WaitpidChildSelector enum to interpret raw inputs at the entry point, ensuring special values (e.g., -1) are handled correctly before reaching core logic. This resolves bugs like #543, where -1 was incorrectly passed to get_cage().