Skip to content

munmap: consult vmmap before PROT_NONE to avoid unlinking adjacent mappings#1075

Open
rishabhBudhouliya wants to merge 33 commits intomainfrom
munmap-fix
Open

munmap: consult vmmap before PROT_NONE to avoid unlinking adjacent mappings#1075
rishabhBudhouliya wants to merge 33 commits intomainfrom
munmap-fix

Conversation

@rishabhBudhouliya
Copy link
Copy Markdown
Contributor

@rishabhBudhouliya rishabhBudhouliya commented Apr 16, 2026

Purpose

  • munmap_syscall blindly called mmap(MAP_FIXED|PROT_NONE) over the rounded-up byte range without checking what pages the caller actually owns. When the rounded length extended into an adjacent shm page, it got wiped.
  • Now intersects the requested range with vmmap entries and only PROT_NONEs pages belonging to anonymous mappings. SharedMemory-backed entries are left to shmdt.
  • Fixes the dead read-lock/drop at the top of the function (the lock is now a single write lock used for both lookup and mutation).

Fixes #1062 and #1052
Also fixes: #1076 and #1085

Concern

I was reading Linux's behavior around this un-mapping logic and it seems like for the calling process, the kernel would unlink even the shared memory reference (alongside the anonymous backed region). In our case, we simply ignore that problem.
I suspect this could cause a divergence in the state of shm at the cage level. However, I couldn't conceptualize/didn't invest enough time to read how that state works.
I was also reading that it is unlikely for VMAs of anonymous and shared memory being adjacent to each other.

Please let me know if I should dig deeper if this fix isn't optimal for our use-case.

@rishabhBudhouliya rishabhBudhouliya requested review from qianxichen233 and rennergade and removed request for qianxichen233 April 16, 2026 02:09
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases199
Number of Successes199
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
File Tests
chartests.cSuccessNone0.045097s0.180668s
Success
chdir_getcwd.cSuccessNone0.045555s0.139975s
Success
chmod.cSuccessNone0.050744s0.150923s
Success
clock_gettime_highlevel.cSuccessNone0.115855s0.316689s
Success
clock_gettime_simple.cSuccessNone0.039962s0.124094s
Success
cloexec.cSuccessNone0.049265s0.206599s
Success
close.cSuccessNone0.056016s0.161347s
Success
creat_access.cSuccessNone0.048403s0.141009s
Success
doubleclose.cSuccessNone0.040569s0.123508s
Success
dup.cSuccessNone0.041735s0.139088s
Success
dup2.cSuccessNone0.047014s0.137658s
Success
dup3.cSuccessNone0.045185s0.140294s
Success
dupwrite.cSuccessNone0.048635s0.133600s
Success
etc_conf.cSuccessNone0.043547s0.142509s
Success
fchdir.cSuccessNone0.051381s0.151452s
Success
fchmod.cSuccessNone0.050154s0.152808s
Success
fcntl.cSuccessNone0.047595s0.143527s
Success
fdatasync.cSuccessNone0.047163s0.134973s
Success
filetest.cSuccessNone0.047757s0.135104s
Success
filetest1000.cSuccessNone0.056206s0.146522s
Success
flock.cSuccessNone0.061876s0.176182s
Success
fstat.cSuccessNone0.050709s0.150249s
Success
fstatfs.cSuccessNone0.043140s0.129573s
Success
fsync.cSuccessNone0.046930s0.132607s
Success
ftruncate.cSuccessNone0.052266s0.256393s
Success
getcwd.cSuccessNone0.044608s0.129981s
Success
getrandom.cSuccessNone0.047759s0.139841s
Success
ioctl.cSuccessNone0.050269s0.140201s
Success
link.cSuccessNone0.051639s0.199307s
Success
locale_test.cSuccessNone0.061719s0.621227s
Success
lseek.cSuccessNone0.052505s0.253511s
Success
mkdir_rmdir.cSuccessNone0.049250s0.143441s
Success
mkfifo_test.cSuccessNone0.054418s0.186983s
Success
mknod.cSuccessNone0.047261s0.148541s
Success
nocancel_io.cSuccessNone0.051343s0.170738s
Success
open.cSuccessNone0.044037s0.124731s
Success
openat.cSuccessNone0.043282s0.133547s
Success
path_conversion_safety.cSuccessNone0.052805s0.168618s
Success
pread_pwrite.cSuccessNone0.045465s0.146346s
Success
preadv_pwritev.cSuccessNone0.050588s0.155728s
Success
printf.cSuccessNone0.039726s0.119084s
Success
prlimit64.cSuccessNone0.041604s0.126617s
Success
read.cSuccessNone0.048721s0.143423s
Success
readbytes.cSuccessNone0.045112s0.128900s
Success
readdir_basic.cSuccessNone0.052156s0.164751s
Success
readlink.cSuccessNone0.048205s0.140693s
Success
readlinkat.cSuccessNone0.049942s0.155810s
Success
readv_writev_test.cSuccessNone0.050526s0.153036s
Success
rename.cSuccessNone0.050484s0.140318s
Success
sc-writev.cSuccessNone0.046312s0.137095s
Success
stat.cSuccessNone0.049421s0.145227s
Success
statfs.cSuccessNone0.042725s0.130414s
Success
sync_file_range.cSuccessNone0.046464s0.140801s
Success
timespec_time_t_compat.cSuccessNone0.046367s0.129703s
Success
truncate.cSuccessNone0.050079s0.157955s
Success
unlink.cSuccessNone0.050784s0.188142s
Success
unlinkat.cSuccessNone0.050116s0.160690s
Success
write.cSuccessNone0.041581s0.120876s
Success
writeloop.cSuccessNone0.051174s0.131871s
Success
writepartial.cSuccessNone0.048704s0.127943s
Success
writev.cSuccessNone0.049951s0.151829s
Success
Math Tests
math_link_smoke.cSuccessNone0.052064s0.131041s
Success
math_tests.cSuccessNone0.055125s0.163590s
Success
Memory Tests
brk.cSuccessNone0.046163s0.132388s
Success
fork_large_memory.cSuccessNone0.077232s0.388700s
Success
malloc.cSuccessNone0.044296s0.122895s
Success
malloc_large.cSuccessNone0.045328s0.128011s
Success
memcpy.cSuccessNone0.044450s0.124866s
Success
memory_error_test.cSuccessNone0.050277s0.167897s
Success
mmap.cSuccessNone0.041716s0.128343s
Success
mmap_aligned.cSuccessNone0.042921s0.141582s
Success
mmap_complicated.cSuccessNone0.048949s0.146226s
Success
mmap_file.cSuccessNone0.048877s0.140518s
Success
mmap_shared.cSuccessNone0.048093s0.143202s
Success
mmaptest.cSuccessNone0.044131s0.133646s
Success
mprotect.cSuccessNone0.042400s0.128022s
Success
mprotect_boundary.cSuccessNone0.042683s0.142904s
Success
mprotect_end_region.cSuccessNone0.041776s0.134838s
Success
mprotect_middle_region.cSuccessNone0.042267s0.137094s
Success
mprotect_multiple_times.cSuccessNone0.042301s0.137651s
Success
mprotect_same_value.cSuccessNone0.042074s0.133157s
Success
mprotect_spanning_regions.cSuccessNone0.043378s0.150430s
Success
sbrk.cSuccessNone0.044308s0.126502s
Success
segfault.cSuccessNone0.049898s0.158035s
Success
shm.cSuccessNone0.048224s0.149039s
Success
shmtest.cSuccessNone0.043027s0.133291s
Success
thread_malloc_sequential.cSuccessNone0.050725s0.158270s
Success
vtable.cSuccessNone0.053457s0.144480s
Success
Networking Tests
accept4.cSuccessNone0.054026s0.160814s
Success
dns_resolve_test.cSuccessNone0.048214s0.138413s
Success
dnstest.cSuccessNone0.048919s0.147785s
Success
epoll_edge_triggered.cSuccessNone0.206245s0.481395s
Success
epollcreate1.cSuccessNone0.051048s0.149359s
Success
error_handling_net.cSuccessNone0.056691s0.253646s
Success
getaddrinfo_test.cSuccessNone0.052328s0.182818s
Success
getaddrinfo_unspec.cSuccessNone0.048614s0.186096s
Success
gethostname.cSuccessNone0.042688s0.121845s
Success
getifaddrs.cSuccessNone0.050888s0.143893s
Success
getsockname.cSuccessNone0.054195s0.143692s
Success
getsockopt.cSuccessNone0.052781s0.193063s
Success
ipv6_basic.cSuccessNone0.054515s0.195022s
Success
makepipe.cSuccessNone0.042129s0.120407s
Success
nonblocking_eagain.cSuccessNone0.054027s0.204726s
Success
pipe.cSuccessNone0.051713s0.152030s
Success
pipe2.cSuccessNone0.051048s0.140417s
Success
pipeinput.cSuccessNone0.052070s0.160894s
Success
pipeinput2.cSuccessNone0.052236s0.161395s
Success
pipeonestring.cSuccessNone0.052156s0.162986s
Success
pipepong.cSuccessNone0.050777s0.164758s
Success
pipewrite.cSuccessNone0.045272s0.141246s
Success
poll.cSuccessNone0.049368s0.134298s
Success
recvfrom-sendto.cSuccessNone0.050703s0.154444s
Success
sendmsg_recvmsg_test.cSuccessNone0.050347s0.149421s
Success
serverclient.cSuccessNone0.049993s0.143898s
Success
shutdown.cSuccessNone0.052992s0.147497s
Success
shutdown_fork.cSuccessNone0.050533s0.149541s
Success
simple-select.cSuccessNone0.051500s0.163445s
Success
simple_epoll.cSuccessNone0.049664s0.147610s
Success
socket.cSuccessNone0.047802s0.133611s
Success
socket_cloexec.cSuccessNone0.048104s0.134707s
Success
socket_options_advanced.cSuccessNone0.055064s0.215524s
Success
socketepoll.cSuccessNone0.048358s0.137616s
Success
socketpair.cSuccessNone0.048407s0.145208s
Success
socketselect.cSuccessNone0.048465s0.141769s
Success
udp_send_recv.cSuccessNone0.156578s0.307725s
Success
uds-getsockname.cSuccessNone0.049506s0.139723s
Success
uds-nb-select.cSuccessNone2.057715s2.212918s
Success
uds-serverclient.cSuccessNone0.053732s0.177253s
Success
uds-socketselect.cSuccessNone0.049948s0.144391s
Success
writev_socket.cSuccessNone0.052517s0.181998s
Success
Process Tests
barrier_test.cSuccessNone0.048051s0.144119s
Success
chain_thread.cSuccessNone1.050595s1.148581s
Success
ctor_syscall_test.cSuccessNone0.039927s0.121816s
Success
cxa_atexit_test.cSuccessNone0.045669s0.127539s
Success
execve_shebang.cSuccessNone0.049568s0.139375s
Success
exit.cSuccessNone0.046734s0.125229s
Success
exit_failure.cSuccessNone0.048364s0.135398s
Success
exit_group_thread.cSuccessNone0.050684s0.147250s
Success
flockfile_test.cSuccessNone0.049730s0.159214s
Success
fork2malloc.cSuccessNone0.050537s0.144122s
Success
fork_select.cSuccessNone0.048434s0.149429s
Success
fork_simple.cSuccessNone0.046970s0.135884s
Success
fork_syscall.cSuccessNone0.053167s0.280817s
Success
fork_tls_ctype.cSuccessNone0.051745s0.167043s
Success
forkandopen.cSuccessNone0.050793s0.160065s
Success
forkdup.cSuccessNone0.052755s0.152952s
Success
forkexecuid.cSuccessNone0.047593s0.211282s
Success
forkexecv-arg.cSuccessNone0.048023s0.195454s
Success
forkexecv.cSuccessNone0.046149s0.187357s
Success
forkfiles.cSuccessNone0.050479s0.154234s
Success
forkmalloc.cSuccessNone0.057165s0.139587s
Success
forknodup.cSuccessNone0.050448s0.155704s
Success
function-ptr.cSuccessNone0.044310s0.128850s
Success
getegid_syscall.cSuccessNone0.049690s0.246634s
Success
getgid_syscall.cSuccessNone0.050076s0.252216s
Success
getpid.cSuccessNone0.042323s0.123073s
Success
getpid_syscall.cSuccessNone0.051444s0.263808s
Success
getppid.cSuccessNone0.050089s0.144309s
Success
getppid_syscall.cSuccessNone0.052717s0.228085s
Success
getuid.cSuccessNone0.050001s0.134074s
Success
getuid_syscall.cSuccessNone0.049040s0.178498s
Success
hello-arg.cSuccessNone0.041745s0.124539s
Success
hello.cSuccessNone0.040173s0.118210s
Success
longjmp.cSuccessNone0.041373s0.125347s
Success
mutex.cSuccessNone2.051952s2.153107s
Success
printf_deadlock_smoke.cSuccessNone0.058148s0.183874s
Success
printf_thread_test.cSuccessNone0.051002s0.154096s
Success
sem_forks.cSuccessNone0.051980s0.157813s
Success
setsid.cSuccessNone0.042270s0.123331s
Success
template.cSuccessNone0.049283s0.155419s
Success
test_exec_nofork.cSuccessNone0.049136s0.186485s
Success
test_unlink_open_file.cSuccessNone0.044467s0.125556s
Success
thread-test.cSuccessNone0.044687s0.132492s
Success
thread.cSuccessNone0.044550s0.130841s
Success
thread_cageid_race.cSuccessNone0.044992s0.164709s
Success
tls_test.cSuccessNone0.047432s0.145215s
Success
uname.cSuccessNone0.042591s0.124627s
Success
wait.cSuccessNone2.046227s2.145179s
Success
waitpid_anychild.cSuccessNone0.049470s0.141105s
Success
waitpid_syscall.cSuccessNone1.049201s1.174327s
Success
waitpid_wnohang.cSuccessNone0.049625s0.140975s
Success
Signal Tests
alarm.cSuccessNone7.048407s7.160983s
Success
eintr_fork_signal.cSuccessNone1.051370s1.159338s
Success
kill.cSuccessNone1.048674s1.144869s
Success
setitimer.cSuccessNone7.049424s7.166639s
Success
sigalrm.cSuccessNone2.049111s2.152224s
Success
sigaltstack.cSuccessNone0.050873s0.148415s
Success
sigchld.cSuccessNone1.050809s1.144684s
Success
signal-fork.cSuccessNone4.050780s4.150043s
Success
signal-simple.cSuccessNone0.049870s0.140380s
Success
signal_SIGCHLD.cSuccessNone0.048121s0.144957s
Success
signal_fork.cSuccessNone0.046571s0.150601s
Success
signal_int_ignored.cSuccessNone2.049450s2.148720s
Success
signal_kill_cleanup.cSuccessNone1.047108s1.140506s
Success
signal_procmask.cSuccessNone0.044355s0.139008s
Success
signal_recursive.cSuccessNone0.044357s0.138889s
Success
signal_sa_mask.cSuccessNone0.043775s0.131429s
Success
sigpipe.cSuccessNone1.051358s1.163072s
Success
sigprocmask.cSuccessNone1.049284s1.148119s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.040952s0.124036s
Success
Memory Tests
mmap-negative1.cSuccessNone0.108216s0.128843s
Success
mmap-negative2.cSuccessNone0.118040s0.130888s
Success
Signal Tests
signal_resethand.cSuccessNone1.049451s1.144885s
Success

@rennergade
Copy link
Copy Markdown
Contributor

This is a really good find/PR. Thanks @rishabhBudhouliya.

It would be good to add a test that would have failed before this fix to confirm this.

As for your questions, I think the inconsistency is only visible if the same cage tries to re-access the address after munmap, which is undefined behavior anyway. I don't think we really need to worry about that.

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases200
Number of Successes199
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native1
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
File Tests
chartests.cSuccessNone0.047762s0.190149s
Success
chdir_getcwd.cSuccessNone0.047488s0.146455s
Success
chmod.cSuccessNone0.053088s0.155173s
Success
clock_gettime_highlevel.cSuccessNone0.118674s0.326628s
Success
clock_gettime_simple.cSuccessNone0.042620s0.135427s
Success
cloexec.cSuccessNone0.052283s0.215974s
Success
close.cSuccessNone0.060182s0.174144s
Success
creat_access.cSuccessNone0.050905s0.147982s
Success
doubleclose.cSuccessNone0.042901s0.128055s
Success
dup.cSuccessNone0.042516s0.146683s
Success
dup2.cSuccessNone0.048213s0.145550s
Success
dup3.cSuccessNone0.048056s0.149815s
Success
dupwrite.cSuccessNone0.051033s0.141964s
Success
etc_conf.cSuccessNone0.044849s0.151165s
Success
fchdir.cSuccessNone0.052812s0.157675s
Success
fchmod.cSuccessNone0.052177s0.158754s
Success
fcntl.cSuccessNone0.049592s0.153778s
Success
fdatasync.cSuccessNone0.050762s0.143285s
Success
filetest.cSuccessNone0.049917s0.142820s
Success
filetest1000.cSuccessNone0.057218s0.153831s
Success
flock.cSuccessNone0.059865s0.184965s
Success
fstat.cSuccessNone0.051318s0.155169s
Success
fstatfs.cSuccessNone0.046652s0.136546s
Success
fsync.cSuccessNone0.048246s0.137238s
Success
ftruncate.cSuccessNone0.054103s0.270707s
Success
getcwd.cSuccessNone0.046873s0.139547s
Success
getrandom.cSuccessNone0.050916s0.147798s
Success
ioctl.cSuccessNone0.052238s0.147933s
Success
link.cSuccessNone0.053929s0.205303s
Success
locale_test.cSuccessNone0.065240s0.661489s
Success
lseek.cSuccessNone0.053929s0.261901s
Success
mkdir_rmdir.cSuccessNone0.051129s0.150090s
Success
mkfifo_test.cSuccessNone0.056302s0.196517s
Success
mknod.cSuccessNone0.049550s0.155440s
Success
nocancel_io.cSuccessNone0.052822s0.177450s
Success
open.cSuccessNone0.045503s0.131273s
Success
openat.cSuccessNone0.045601s0.141948s
Success
path_conversion_safety.cSuccessNone0.054420s0.176981s
Success
pread_pwrite.cSuccessNone0.047054s0.153342s
Success
preadv_pwritev.cSuccessNone0.054289s0.163298s
Success
printf.cSuccessNone0.041116s0.126507s
Success
prlimit64.cSuccessNone0.044366s0.133513s
Success
read.cSuccessNone0.050126s0.147904s
Success
readbytes.cSuccessNone0.046590s0.139184s
Success
readdir_basic.cSuccessNone0.053742s0.173272s
Success
readlink.cSuccessNone0.050953s0.151479s
Success
readlinkat.cSuccessNone0.052393s0.157257s
Success
readv_writev_test.cSuccessNone0.053461s0.158828s
Success
rename.cSuccessNone0.052440s0.145316s
Success
sc-writev.cSuccessNone0.048700s0.147423s
Success
stat.cSuccessNone0.053609s0.153605s
Success
statfs.cSuccessNone0.047228s0.141141s
Success
sync_file_range.cSuccessNone0.049244s0.146733s
Success
timespec_time_t_compat.cSuccessNone0.047801s0.134101s
Success
truncate.cSuccessNone0.051479s0.162087s
Success
unlink.cSuccessNone0.053989s0.201476s
Success
unlinkat.cSuccessNone0.052819s0.166726s
Success
write.cSuccessNone0.043942s0.129492s
Success
writeloop.cSuccessNone0.052669s0.137525s
Success
writepartial.cSuccessNone0.053309s0.139080s
Success
writev.cSuccessNone0.052343s0.156008s
Success
Math Tests
math_link_smoke.cSuccessNone0.054581s0.142955s
Success
math_tests.cSuccessNone0.061356s0.170857s
Success
Memory Tests
brk.cSuccessNone0.047268s0.136671s
Success
fork_large_memory.cSuccessNone0.078881s0.387898s
Success
malloc.cSuccessNone0.045818s0.126400s
Success
malloc_large.cSuccessNone0.047495s0.132260s
Success
memcpy.cSuccessNone0.046686s0.129507s
Success
memory_error_test.cSuccessNone0.051381s0.169390s
Success
mmap.cSuccessNone0.041375s0.133329s
Success
mmap_aligned.cSuccessNone0.043691s0.146241s
Success
mmap_complicated.cSuccessNone0.051073s0.153656s
Success
mmap_file.cSuccessNone0.049905s0.144338s
Success
mmap_shared.cSuccessNone0.048748s0.146598s
Success
mmaptest.cSuccessNone0.045418s0.137904s
Success
mprotect.cSuccessNone0.043953s0.132612s
Success
mprotect_boundary.cSuccessNone0.044047s0.146593s
Success
mprotect_end_region.cSuccessNone0.042526s0.142284s
Success
mprotect_middle_region.cSuccessNone0.043712s0.141832s
Success
mprotect_multiple_times.cSuccessNone0.043153s0.142297s
Success
mprotect_same_value.cSuccessNone0.043116s0.138071s
Success
mprotect_spanning_regions.cSuccessNone0.044228s0.158292s
Success
munmap_adjacent_shm.cFailureFailure_native_running0.046669sN/A
Native execution: DIAG: shm  = 0x7f94125fa000
DIAG: anon = 0x7f94125b3000  (anon + PAGE = 0x7f94125b4000, gap = 286720 bytes)
FAIL: could not create adjacent anon+shm layout; allocator did not place anon immediately before shm.
sbrk.cSuccessNone0.046006s0.130754s
Success
segfault.cSuccessNone0.051181s0.163317s
Success
shm.cSuccessNone0.049273s0.154659s
Success
shmtest.cSuccessNone0.044225s0.136563s
Success
thread_malloc_sequential.cSuccessNone0.052403s0.162022s
Success
vtable.cSuccessNone0.054721s0.155323s
Success
Networking Tests
accept4.cSuccessNone0.057337s0.169005s
Success
dns_resolve_test.cSuccessNone0.050361s0.144404s
Success
dnstest.cSuccessNone0.052161s0.157454s
Success
epoll_edge_triggered.cSuccessNone0.208134s0.509564s
Success
epollcreate1.cSuccessNone0.051128s0.153337s
Success
error_handling_net.cSuccessNone0.058404s0.271840s
Success
getaddrinfo_test.cSuccessNone0.053990s0.190424s
Success
getaddrinfo_unspec.cSuccessNone0.051496s0.161808s
Success
gethostname.cSuccessNone0.043570s0.129233s
Success
getifaddrs.cSuccessNone0.053206s0.151011s
Success
getsockname.cSuccessNone0.057522s0.148847s
Success
getsockopt.cSuccessNone0.053673s0.201158s
Success
ipv6_basic.cSuccessNone0.056412s0.205107s
Success
makepipe.cSuccessNone0.043086s0.125413s
Success
nonblocking_eagain.cSuccessNone0.055283s0.216910s
Success
pipe.cSuccessNone0.052700s0.157355s
Success
pipe2.cSuccessNone0.052483s0.148207s
Success
pipeinput.cSuccessNone0.053277s0.166810s
Success
pipeinput2.cSuccessNone0.055081s0.173291s
Success
pipeonestring.cSuccessNone0.053210s0.169058s
Success
pipepong.cSuccessNone0.051735s0.171795s
Success
pipewrite.cSuccessNone0.046883s0.152704s
Success
poll.cSuccessNone0.051670s0.141283s
Success
recvfrom-sendto.cSuccessNone0.052217s0.158556s
Success
sendmsg_recvmsg_test.cSuccessNone0.054003s0.184471s
Success
serverclient.cSuccessNone0.052355s0.154961s
Success
shutdown.cSuccessNone0.053766s0.152038s
Success
shutdown_fork.cSuccessNone0.051137s0.156739s
Success
simple-select.cSuccessNone0.053689s0.172760s
Success
simple_epoll.cSuccessNone0.051219s0.152650s
Success
socket.cSuccessNone0.051946s0.141842s
Success
socket_cloexec.cSuccessNone0.049189s0.141368s
Success
socket_options_advanced.cSuccessNone0.056588s0.222157s
Success
socketepoll.cSuccessNone0.050151s0.145772s
Success
socketpair.cSuccessNone0.049271s0.149900s
Success
socketselect.cSuccessNone0.049844s0.148156s
Success
udp_send_recv.cSuccessNone0.157802s0.315983s
Success
uds-getsockname.cSuccessNone0.054169s0.149248s
Success
uds-nb-select.cSuccessNone2.062062s2.219366s
Success
uds-serverclient.cSuccessNone0.055108s0.218520s
Success
uds-socketselect.cSuccessNone0.051044s0.149375s
Success
writev_socket.cSuccessNone0.054934s0.189169s
Success
Process Tests
barrier_test.cSuccessNone0.050739s0.159253s
Success
chain_thread.cSuccessNone1.052080s1.159432s
Success
ctor_syscall_test.cSuccessNone0.042638s0.131694s
Success
cxa_atexit_test.cSuccessNone0.048064s0.134991s
Success
execve_shebang.cSuccessNone0.050700s0.146275s
Success
exit.cSuccessNone0.049326s0.130927s
Success
exit_failure.cSuccessNone0.051361s0.144314s
Success
exit_group_thread.cSuccessNone0.052854s0.157134s
Success
flockfile_test.cSuccessNone0.054158s0.172553s
Success
fork2malloc.cSuccessNone0.053841s0.150413s
Success
fork_select.cSuccessNone0.051116s0.158027s
Success
fork_simple.cSuccessNone0.049826s0.150313s
Success
fork_syscall.cSuccessNone0.055235s0.304285s
Success
fork_tls_ctype.cSuccessNone0.054981s0.177568s
Success
forkandopen.cSuccessNone0.053607s0.171258s
Success
forkdup.cSuccessNone0.061036s0.164196s
Success
forkexecuid.cSuccessNone0.049351s0.219008s
Success
forkexecv-arg.cSuccessNone0.050022s0.201644s
Success
forkexecv.cSuccessNone0.048714s0.199289s
Success
forkfiles.cSuccessNone0.051122s0.160206s
Success
forkmalloc.cSuccessNone0.065231s0.146546s
Success
forknodup.cSuccessNone0.052591s0.165658s
Success
function-ptr.cSuccessNone0.047698s0.133589s
Success
getegid_syscall.cSuccessNone0.053515s0.261314s
Success
getgid_syscall.cSuccessNone0.052406s0.258756s
Success
getpid.cSuccessNone0.044051s0.127104s
Success
getpid_syscall.cSuccessNone0.053472s0.286546s
Success
getppid.cSuccessNone0.051873s0.153940s
Success
getppid_syscall.cSuccessNone0.053772s0.236824s
Success
getuid.cSuccessNone0.051126s0.140083s
Success
getuid_syscall.cSuccessNone0.050258s0.186250s
Success
hello-arg.cSuccessNone0.041342s0.129122s
Success
hello.cSuccessNone0.041604s0.130103s
Success
longjmp.cSuccessNone0.043102s0.131385s
Success
mutex.cSuccessNone2.054502s2.160126s
Success
printf_deadlock_smoke.cSuccessNone0.059608s0.193391s
Success
printf_thread_test.cSuccessNone0.050509s0.161751s
Success
sem_forks.cSuccessNone0.055306s0.165864s
Success
setsid.cSuccessNone0.043809s0.128317s
Success
template.cSuccessNone0.051660s0.166416s
Success
test_exec_nofork.cSuccessNone0.048949s0.202851s
Success
test_unlink_open_file.cSuccessNone0.047753s0.135479s
Success
thread-test.cSuccessNone0.047398s0.141082s
Success
thread.cSuccessNone0.045209s0.137014s
Success
thread_cageid_race.cSuccessNone0.048772s0.171078s
Success
tls_test.cSuccessNone0.048629s0.151819s
Success
uname.cSuccessNone0.045207s0.135627s
Success
wait.cSuccessNone2.049683s2.147357s
Success
waitpid_anychild.cSuccessNone0.051941s0.150120s
Success
waitpid_syscall.cSuccessNone1.050975s1.193090s
Success
waitpid_wnohang.cSuccessNone0.051411s0.152849s
Success
Signal Tests
alarm.cSuccessNone7.050261s7.171628s
Success
eintr_fork_signal.cSuccessNone1.055376s1.173880s
Success
kill.cSuccessNone1.050980s1.150416s
Success
setitimer.cSuccessNone7.054273s7.180253s
Success
sigalrm.cSuccessNone2.050756s2.167937s
Success
sigaltstack.cSuccessNone0.053257s0.158663s
Success
sigchld.cSuccessNone1.054318s1.156477s
Success
signal-fork.cSuccessNone4.053396s4.158329s
Success
signal-simple.cSuccessNone0.053187s0.151588s
Success
signal_SIGCHLD.cSuccessNone0.050723s0.153712s
Success
signal_fork.cSuccessNone0.048251s0.160464s
Success
signal_int_ignored.cSuccessNone2.051741s2.157131s
Success
signal_kill_cleanup.cSuccessNone1.049166s1.148970s
Success
signal_procmask.cSuccessNone0.046360s0.148122s
Success
signal_recursive.cSuccessNone0.045575s0.145299s
Success
signal_sa_mask.cSuccessNone0.046026s0.143225s
Success
sigpipe.cSuccessNone1.053916s1.175650s
Success
sigprocmask.cSuccessNone1.053811s1.159405s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.041992s0.128046s
Success
Memory Tests
mmap-negative1.cSuccessNone0.144628s0.129390s
Success
mmap-negative2.cSuccessNone0.112172s0.138614s
Success
Signal Tests
signal_resethand.cSuccessNone1.049860s1.153629s
Success

@rishabhBudhouliya rishabhBudhouliya marked this pull request as draft April 16, 2026 16:32
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases200
Number of Successes198
Number of Failures2
Number of Compilation Failure Native0
Number of Runtime Failure Native1
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 mismatch1
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.050105s0.197128s
Success
chdir_getcwd.cSuccessNone0.050489s0.153971s
Success
chmod.cSuccessNone0.054688s0.164687s
Success
clock_gettime_highlevel.cSuccessNone0.121779s0.356971s
Success
clock_gettime_simple.cSuccessNone0.045116s0.139249s
Success
cloexec.cSuccessNone0.053445s0.228145s
Success
close.cSuccessNone0.062619s0.178244s
Success
creat_access.cSuccessNone0.053135s0.153649s
Success
doubleclose.cSuccessNone0.045907s0.136272s
Success
dup.cSuccessNone0.047185s0.154175s
Success
dup2.cSuccessNone0.051987s0.151292s
Success
dup3.cSuccessNone0.050057s0.155984s
Success
dupwrite.cSuccessNone0.052859s0.148749s
Success
etc_conf.cSuccessNone0.048385s0.155699s
Success
fchdir.cSuccessNone0.054863s0.166779s
Success
fchmod.cSuccessNone0.054608s0.165856s
Success
fcntl.cSuccessNone0.052472s0.159852s
Success
fdatasync.cSuccessNone0.052186s0.145862s
Success
filetest.cSuccessNone0.052246s0.148899s
Success
filetest1000.cSuccessNone0.063124s0.163952s
Success
flock.cSuccessNone0.062954s0.192596s
Success
fstat.cSuccessNone0.054548s0.163394s
Success
fstatfs.cSuccessNone0.048554s0.144563s
Success
fsync.cSuccessNone0.051880s0.147130s
Success
ftruncate.cSuccessNone0.056091s0.276436s
Success
getcwd.cSuccessNone0.049479s0.142920s
Success
getrandom.cSuccessNone0.052568s0.155272s
Success
ioctl.cSuccessNone0.054489s0.154540s
Success
link.cSuccessNone0.056369s0.211708s
Success
locale_test.cSuccessNone0.063415s0.625310s
Success
lseek.cSuccessNone0.056349s0.272100s
Success
mkdir_rmdir.cSuccessNone0.053369s0.155578s
Success
mkfifo_test.cSuccessNone0.057729s0.200929s
Success
mknod.cSuccessNone0.053704s0.165060s
Success
nocancel_io.cSuccessNone0.056129s0.185157s
Success
open.cSuccessNone0.047993s0.138951s
Success
openat.cSuccessNone0.048631s0.148338s
Success
path_conversion_safety.cSuccessNone0.056227s0.183021s
Success
pread_pwrite.cSuccessNone0.050692s0.162463s
Success
preadv_pwritev.cSuccessNone0.054974s0.170123s
Success
printf.cSuccessNone0.045378s0.132638s
Success
prlimit64.cSuccessNone0.047021s0.140070s
Success
read.cSuccessNone0.053659s0.158030s
Success
readbytes.cSuccessNone0.049824s0.142115s
Success
readdir_basic.cSuccessNone0.056822s0.180289s
Success
readlink.cSuccessNone0.053237s0.155436s
Success
readlinkat.cSuccessNone0.054515s0.162012s
Success
readv_writev_test.cSuccessNone0.054557s0.168165s
Success
rename.cSuccessNone0.054403s0.152465s
Success
sc-writev.cSuccessNone0.051468s0.152347s
Success
stat.cSuccessNone0.054011s0.158885s
Success
statfs.cSuccessNone0.047807s0.145831s
Success
sync_file_range.cSuccessNone0.051342s0.152899s
Success
timespec_time_t_compat.cSuccessNone0.050209s0.142665s
Success
truncate.cSuccessNone0.055046s0.173441s
Success
unlink.cSuccessNone0.054964s0.203977s
Success
unlinkat.cSuccessNone0.054564s0.172530s
Success
write.cSuccessNone0.047268s0.135650s
Success
writeloop.cSuccessNone0.056180s0.145007s
Success
writepartial.cSuccessNone0.053861s0.143022s
Success
writev.cSuccessNone0.054517s0.162872s
Success
Math Tests
math_link_smoke.cSuccessNone0.057259s0.144259s
Success
math_tests.cSuccessNone0.060430s0.175911s
Success
Memory Tests
brk.cSuccessNone0.050811s0.146752s
Success
fork_large_memory.cSuccessNone0.082568s0.402589s
Success
malloc.cSuccessNone0.049550s0.135282s
Success
malloc_large.cSuccessNone0.051073s0.146308s
Success
memcpy.cSuccessNone0.048876s0.138166s
Success
memory_error_test.cSuccessNone0.054451s0.181739s
Success
mmap.cSuccessNone0.044726s0.141884s
Success
mmap_aligned.cSuccessNone0.047651s0.155053s
Success
mmap_complicated.cSuccessNone0.053700s0.162522s
Success
mmap_file.cSuccessNone0.053300s0.154999s
Success
mmap_shared.cSuccessNone0.052013s0.156187s
Success
mmaptest.cSuccessNone0.049036s0.148198s
Success
mprotect.cSuccessNone0.047976s0.140854s
Success
mprotect_boundary.cSuccessNone0.047604s0.158387s
Success
mprotect_end_region.cSuccessNone0.046904s0.148697s
Success
mprotect_middle_region.cSuccessNone0.047102s0.152171s
Success
mprotect_multiple_times.cSuccessNone0.047230s0.151508s
Success
mprotect_same_value.cSuccessNone0.047200s0.147235s
Success
mprotect_spanning_regions.cSuccessNone0.048048s0.164941s
Success
munmap_adjacent_shm.cFailureFailure_native_running0.049779sN/A
Native execution: DIAG: shm  = 0x7f79e4756000
DIAG: anon = 0x7f79e470f000  (anon + PAGE = 0x7f79e4710000, gap = 286720 bytes)
FAIL: could not create adjacent anon+shm layout; allocator did not place anon immediately before shm.
sbrk.cSuccessNone0.048908s0.139451s
Success
segfault.cSuccessNone0.054138s0.173660s
Success
shm.cSuccessNone0.053071s0.163979s
Success
shmtest.cSuccessNone0.047995s0.145961s
Success
thread_malloc_sequential.cSuccessNone0.054038s0.171885s
Success
vtable.cSuccessNone0.058238s0.158493s
Success
Networking Tests
accept4.cSuccessNone0.058422s0.175755s
Success
dns_resolve_test.cSuccessNone0.052497s0.152313s
Success
dnstest.cSuccessNone0.053406s0.162334s
Success
epoll_edge_triggered.cSuccessNone0.209546s0.502623s
Success
epollcreate1.cSuccessNone0.054501s0.162475s
Success
error_handling_net.cSuccessNone0.060202s0.271486s
Success
getaddrinfo_test.cSuccessNone0.056545s0.198386s
Success
getaddrinfo_unspec.cSuccessNone0.056023s0.158738s
Success
gethostname.cSuccessNone0.047596s0.137007s
Success
getifaddrs.cSuccessNone0.054964s0.157670s
Success
getsockname.cSuccessNone0.057913s0.157222s
Success
getsockopt.cSuccessNone0.056195s0.207958s
Success
ipv6_basic.cSuccessNone0.058017s0.208012s
Success
makepipe.cSuccessNone0.047244s0.134319s
Success
nonblocking_eagain.cSuccessNone0.057797s0.222018s
Success
pipe.cSuccessNone0.055671s0.165733s
Success
pipe2.cSuccessNone0.055063s0.154688s
Success
pipeinput.cSuccessNone0.056067s0.179206s
Success
pipeinput2.cSuccessNone0.056743s0.176610s
Success
pipeonestring.cSuccessNone0.055962s0.175147s
Success
pipepong.cSuccessNone0.055349s0.180352s
Success
pipewrite.cSuccessNone0.050245s0.155985s
Success
poll.cSuccessNone0.054124s0.146978s
Success
recvfrom-sendto.cSuccessNone0.055173s0.169357s
Success
sendmsg_recvmsg_test.cSuccessNone0.054468s0.163608s
Success
serverclient.cSuccessNone0.054119s0.157512s
Success
shutdown.cSuccessNone0.056042s0.159991s
Success
shutdown_fork.cSuccessNone0.054400s0.165037s
Success
simple-select.cSuccessNone0.055591s0.181065s
Success
simple_epoll.cSuccessNone0.054578s0.160488s
Success
socket.cSuccessNone0.052751s0.146751s
Success
socket_cloexec.cSuccessNone0.052859s0.149341s
Success
socket_options_advanced.cSuccessNone0.058437s0.230052s
Success
socketepoll.cSuccessNone0.052854s0.155334s
Success
socketpair.cSuccessNone0.052909s0.160478s
Success
socketselect.cSuccessNone0.053497s0.156881s
Success
udp_send_recv.cSuccessNone0.160283s0.325602s
Success
uds-getsockname.cSuccessNone0.053735s0.154327s
Success
uds-nb-select.cSuccessNone2.061445s2.226924s
Success
uds-serverclient.cSuccessNone0.057698s0.191892s
Success
uds-socketselect.cSuccessNone0.054822s0.157538s
Success
writev_socket.cSuccessNone0.056424s0.195394s
Success
Process Tests
barrier_test.cSuccessNone0.053114s0.158321s
Success
chain_thread.cSuccessNone1.054922s1.163086s
Success
ctor_syscall_test.cSuccessNone0.044786s0.137333s
Success
cxa_atexit_test.cSuccessNone0.050160s0.141063s
Success
execve_shebang.cSuccessNone0.054037s0.153652s
Success
exit.cSuccessNone0.051603s0.138563s
Success
exit_failure.cSuccessNone0.052642s0.151666s
Success
exit_group_thread.cSuccessNone0.054805s0.162024s
Success
flockfile_test.cSuccessNone0.054026s0.174548s
Success
fork2malloc.cSuccessNone0.054793s0.158196s
Success
fork_select.cSuccessNone0.053722s0.166464s
Success
fork_simple.cSuccessNone0.051786s0.149918s
Success
fork_syscall.cSuccessNone0.057633s0.303036s
Success
fork_tls_ctype.cSuccessNone0.055692s0.180537s
Success
forkandopen.cSuccessNone0.054844s0.174627s
Success
forkdup.cSuccessNone0.057146s0.168486s
Success
forkexecuid.cSuccessNone0.051881s0.232435s
Success
forkexecv-arg.cSuccessNone0.052251s0.214437s
Success
forkexecv.cSuccessNone0.050378s0.211979s
Success
forkfiles.cSuccessNone0.054853s0.169668s
Success
forkmalloc.cSuccessNone0.060605s0.155059s
Success
forknodup.cSuccessNone0.054644s0.170070s
Success
function-ptr.cSuccessNone0.049167s0.143000s
Success
getegid_syscall.cSuccessNone0.053939s0.265295s
Success
getgid_syscall.cSuccessNone0.054862s0.272108s
Success
getpid.cSuccessNone0.047558s0.135062s
Success
getpid_syscall.cSuccessNone0.055463s0.286539s
Success
getppid.cSuccessNone0.054052s0.158042s
Success
getppid_syscall.cSuccessNone0.056894s0.244177s
Success
getuid.cSuccessNone0.053804s0.147997s
Success
getuid_syscall.cSuccessNone0.053113s0.195969s
Success
hello-arg.cSuccessNone0.046316s0.144790s
Success
hello.cSuccessNone0.045741s0.132348s
Success
longjmp.cSuccessNone0.045953s0.139780s
Success
mutex.cSuccessNone2.056346s2.170520s
Success
printf_deadlock_smoke.cSuccessNone0.061324s0.197569s
Success
printf_thread_test.cSuccessNone0.053179s0.165921s
Success
sem_forks.cSuccessNone0.056095s0.171356s
Success
setsid.cSuccessNone0.047595s0.135813s
Success
template.cSuccessNone0.054096s0.172071s
Success
test_exec_nofork.cSuccessNone0.052693s0.210189s
Success
test_unlink_open_file.cSuccessNone0.049522s0.140474s
Success
thread-test.cSuccessNone0.049274s0.145156s
Success
thread.cSuccessNone0.049152s0.146269s
Success
thread_cageid_race.cSuccessNone0.050630s0.180360s
Success
tls_test.cSuccessNone0.052257s0.157124s
Success
uname.cSuccessNone0.047817s0.137642s
Success
wait.cSuccessNone2.051521s2.157250s
Success
waitpid_anychild.cSuccessNone0.054305s0.155525s
Success
waitpid_syscall.cSuccessNone1.054022s1.192472s
Success
waitpid_wnohang.cSuccessNone0.054690s0.155310s
Success
Signal Tests
alarm.cSuccessNone7.053450s7.180570s
Success
eintr_fork_signal.cSuccessNone1.055828s1.177295s
Success
kill.cSuccessNone1.053394s1.160185s
Success
setitimer.cSuccessNone7.054699s7.185741s
Success
sigalrm.cSuccessNone2.054612s2.169713s
Success
sigaltstack.cSuccessNone0.055029s0.163164s
Success
sigchld.cFailureOutput_mismatch1.055156s1.160938s
=== Expected Output ===
Signal Child Test!

=== WASM Output ===

signal-fork.cSuccessNone4.055897s4.166611s
Success
signal-simple.cSuccessNone0.055020s0.152778s
Success
signal_SIGCHLD.cSuccessNone0.052427s0.160289s
Success
signal_fork.cSuccessNone0.050488s0.167404s
Success
signal_int_ignored.cSuccessNone2.054443s2.163965s
Success
signal_kill_cleanup.cSuccessNone1.052509s1.156755s
Success
signal_procmask.cSuccessNone0.049724s0.153417s
Success
signal_recursive.cSuccessNone0.049007s0.154902s
Success
signal_sa_mask.cSuccessNone0.049008s0.143898s
Success
sigpipe.cSuccessNone1.056516s1.179379s
Success
sigprocmask.cSuccessNone1.055160s1.161529s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.046294s0.136847s
Success
Memory Tests
mmap-negative1.cSuccessNone0.122859s0.150446s
Success
mmap-negative2.cSuccessNone0.111594s0.144880s
Success
Signal Tests
signal_resethand.cSuccessNone1.053806s1.162488s
Success

@rishabhBudhouliya rishabhBudhouliya marked this pull request as ready for review April 17, 2026 16:32
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native1
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
File Tests
chartests.cSuccessNone0.046460s0.184206s
Success
chdir_getcwd.cSuccessNone0.046353s0.142856s
Success
chmod.cSuccessNone0.052659s0.162253s
Success
clock_gettime_highlevel.cSuccessNone0.117651s0.326143s
Success
clock_gettime_simple.cSuccessNone0.040995s0.129385s
Success
cloexec.cSuccessNone0.051124s0.217499s
Success
close.cSuccessNone0.057480s0.173745s
Success
creat_access.cSuccessNone0.049421s0.145721s
Success
doubleclose.cSuccessNone0.042658s0.126114s
Success
dup.cSuccessNone0.042394s0.143266s
Success
dup2.cSuccessNone0.048065s0.144658s
Success
dup3.cSuccessNone0.047357s0.148364s
Success
dupwrite.cSuccessNone0.050404s0.141651s
Success
etc_conf.cSuccessNone0.044803s0.150604s
Success
fchdir.cSuccessNone0.053125s0.163396s
Success
fchmod.cSuccessNone0.051043s0.157221s
Success
fcntl.cSuccessNone0.049597s0.150760s
Success
fdatasync.cSuccessNone0.048369s0.138081s
Success
filetest.cSuccessNone0.050793s0.141333s
Success
filetest1000.cSuccessNone0.056931s0.156801s
Success
flock.cSuccessNone0.060213s0.186850s
Success
fstat.cSuccessNone0.052862s0.157490s
Success
fstatfs.cSuccessNone0.044364s0.136121s
Success
fsync.cSuccessNone0.047827s0.136473s
Success
ftruncate.cSuccessNone0.054765s0.268810s
Success
getcwd.cSuccessNone0.046077s0.135279s
Success
getrandom.cSuccessNone0.049084s0.145325s
Success
ioctl.cSuccessNone0.051754s0.146760s
Success
link.cSuccessNone0.054800s0.212498s
Success
locale_test.cSuccessNone0.063960s0.646994s
Success
lseek.cSuccessNone0.054016s0.263540s
Success
lstat.cSuccessNone0.054055s0.164877s
Success
mkdir_rmdir.cSuccessNone0.049756s0.149835s
Success
mkfifo_test.cSuccessNone0.055512s0.197059s
Success
mknod.cSuccessNone0.049386s0.157809s
Success
nocancel_io.cSuccessNone0.052384s0.176492s
Success
open.cSuccessNone0.047788s0.131840s
Success
openat.cSuccessNone0.044307s0.136793s
Success
path_conversion_safety.cSuccessNone0.053557s0.175610s
Success
pread_pwrite.cSuccessNone0.046256s0.152481s
Success
preadv_pwritev.cSuccessNone0.052160s0.162128s
Success
printf.cSuccessNone0.041374s0.124131s
Success
prlimit64.cSuccessNone0.043807s0.134091s
Success
read.cSuccessNone0.050678s0.147556s
Success
readbytes.cSuccessNone0.047485s0.137148s
Success
readdir_basic.cSuccessNone0.054424s0.176580s
Success
readlink.cSuccessNone0.050909s0.151659s
Success
readlinkat.cSuccessNone0.051249s0.157038s
Success
readv_writev_test.cSuccessNone0.053360s0.161368s
Success
rename.cSuccessNone0.051849s0.145074s
Success
sc-writev.cSuccessNone0.047612s0.144800s
Success
stat.cSuccessNone0.051787s0.151414s
Success
statfs.cSuccessNone0.044736s0.140116s
Success
symlink.cSuccessNone0.055926s0.194536s
Success
sync_file_range.cSuccessNone0.047955s0.149871s
Success
timespec_time_t_compat.cSuccessNone0.048820s0.141597s
Success
truncate.cSuccessNone0.050393s0.162535s
Success
unlink.cSuccessNone0.052283s0.197669s
Success
unlinkat.cSuccessNone0.052903s0.168062s
Success
write.cSuccessNone0.043112s0.124867s
Success
writeloop.cSuccessNone0.051883s0.142294s
Success
writepartial.cSuccessNone0.051657s0.137192s
Success
writev.cSuccessNone0.050588s0.153715s
Success
Math Tests
math_link_smoke.cSuccessNone0.053045s0.136213s
Success
math_tests.cSuccessNone0.058041s0.168903s
Success
Memory Tests
brk.cSuccessNone0.047669s0.137292s
Success
fork_large_memory.cSuccessNone0.081795s0.445639s
Success
malloc.cSuccessNone0.045210s0.123827s
Success
malloc_large.cSuccessNone0.045621s0.128296s
Success
memcpy.cSuccessNone0.045215s0.129921s
Success
memory_error_test.cSuccessNone0.052559s0.177576s
Success
mmap.cSuccessNone0.050321s0.137081s
Success
mmap_aligned.cSuccessNone0.044616s0.152331s
Success
mmap_complicated.cSuccessNone0.049191s0.149672s
Success
mmap_file.cSuccessNone0.049821s0.145622s
Success
mmap_shared.cSuccessNone0.050963s0.156842s
Success
mmaptest.cSuccessNone0.045509s0.137635s
Success
mprotect.cSuccessNone0.042945s0.132719s
Success
mprotect_boundary.cSuccessNone0.045445s0.150227s
Success
mprotect_end_region.cSuccessNone0.043717s0.143494s
Success
mprotect_middle_region.cSuccessNone0.042394s0.140795s
Success
mprotect_multiple_times.cSuccessNone0.042917s0.141757s
Success
mprotect_same_value.cSuccessNone0.042575s0.136853s
Success
mprotect_spanning_regions.cSuccessNone0.043967s0.153071s
Success
munmap_adjacent_shm.cFailureFailure_native_running0.121323sN/A
Native execution: munmap_adjacent_shm.o: /tmp/wasmtest_artifacts_qwhlfc50/memory_tests/deterministic/munmap_adjacent_shm.c:34: int main(void): Assertion `shm == anon + 2 * PAGE_SIZE && "allocator layout changed: anon is not at shm - 2*PAGE"' failed.
sbrk.cSuccessNone0.045357s0.131155s
Success
segfault.cSuccessNone0.050619s0.161072s
Success
shm.cSuccessNone0.049748s0.159598s
Success
shmtest.cSuccessNone0.043191s0.137708s
Success
thread_malloc_sequential.cSuccessNone0.050581s0.159396s
Success
vtable.cSuccessNone0.054869s0.155284s
Success
Networking Tests
accept4.cSuccessNone0.054749s0.170036s
Success
dns_resolve_test.cSuccessNone0.050078s0.144227s
Success
dnstest.cSuccessNone0.055487s0.154519s
Success
epoll_edge_triggered.cSuccessNone0.209242s0.499951s
Success
epollcreate1.cSuccessNone0.050816s0.153686s
Success
error_handling_net.cSuccessNone0.058293s0.263661s
Success
getaddrinfo_test.cSuccessNone0.053759s0.191664s
Success
getaddrinfo_unspec.cSuccessNone0.054161s0.178768s
Success
gethostname.cSuccessNone0.044904s0.127430s
Success
getifaddrs.cSuccessNone0.052647s0.153488s
Success
getsockname.cSuccessNone0.056626s0.151812s
Success
getsockopt.cSuccessNone0.055302s0.209851s
Success
ipv6_basic.cSuccessNone0.055663s0.200437s
Success
makepipe.cSuccessNone0.044750s0.126198s
Success
nonblocking_eagain.cSuccessNone0.056254s0.218151s
Success
pipe.cSuccessNone0.053891s0.158883s
Success
pipe2.cSuccessNone0.052373s0.148292s
Success
pipeinput.cSuccessNone0.052993s0.172487s
Success
pipeinput2.cSuccessNone0.053298s0.173296s
Success
pipeonestring.cSuccessNone0.053288s0.169562s
Success
pipepong.cSuccessNone0.052338s0.170927s
Success
pipewrite.cSuccessNone0.047867s0.151574s
Success
poll.cSuccessNone0.051960s0.144129s
Success
recvfrom-sendto.cSuccessNone0.053564s0.162889s
Success
sendmsg_recvmsg_test.cSuccessNone0.051434s0.161182s
Success
serverclient.cSuccessNone0.050690s0.148966s
Success
shutdown.cSuccessNone0.054472s0.154565s
Success
shutdown_fork.cSuccessNone0.052584s0.166941s
Success
simple-select.cSuccessNone0.053620s0.174946s
Success
simple_epoll.cSuccessNone0.051559s0.156309s
Success
socket.cSuccessNone0.049259s0.139375s
Success
socket_cloexec.cSuccessNone0.049067s0.140237s
Success
socket_options_advanced.cSuccessNone0.055835s0.218969s
Success
socketepoll.cSuccessNone0.048956s0.142428s
Success
socketpair.cSuccessNone0.049943s0.151567s
Success
socketselect.cSuccessNone0.050479s0.150544s
Success
udp_send_recv.cSuccessNone0.158739s0.317973s
Success
uds-getsockname.cSuccessNone0.051413s0.145108s
Success
uds-nb-select.cSuccessNone2.059432s2.217476s
Success
uds-serverclient.cSuccessNone0.054840s0.182369s
Success
uds-socketselect.cSuccessNone0.051458s0.154130s
Success
writev_socket.cSuccessNone0.053984s0.187827s
Success
Process Tests
barrier_test.cSuccessNone0.049439s0.150115s
Success
chain_thread.cSuccessNone1.050823s1.151489s
Success
ctor_syscall_test.cSuccessNone0.041253s0.124964s
Success
cxa_atexit_test.cSuccessNone0.046388s0.131586s
Success
execve_shebang.cSuccessNone0.052581s0.147082s
Success
exit.cSuccessNone0.049186s0.131697s
Success
exit_failure.cSuccessNone0.049521s0.139401s
Success
exit_group_thread.cSuccessNone0.051793s0.157048s
Success
flockfile_test.cSuccessNone0.049884s0.166856s
Success
fork2malloc.cSuccessNone0.052040s0.150479s
Success
fork_select.cSuccessNone0.050823s0.155128s
Success
fork_simple.cSuccessNone0.048060s0.137857s
Success
fork_syscall.cSuccessNone0.053994s0.287001s
Success
fork_tls_ctype.cSuccessNone0.052988s0.172702s
Success
forkandopen.cSuccessNone0.052697s0.169795s
Success
forkdup.cSuccessNone0.053876s0.160360s
Success
forkexecuid.cSuccessNone0.048934s0.222155s
Success
forkexecv-arg.cSuccessNone0.048787s0.202565s
Success
forkexecv.cSuccessNone0.046701s0.198958s
Success
forkfiles.cSuccessNone0.052154s0.159785s
Success
forkmalloc.cSuccessNone0.058600s0.153851s
Success
forknodup.cSuccessNone0.051160s0.160451s
Success
function-ptr.cSuccessNone0.045523s0.134924s
Success
getegid_syscall.cSuccessNone0.050964s0.258788s
Success
getgid_syscall.cSuccessNone0.050591s0.258780s
Success
getpid.cSuccessNone0.043526s0.127441s
Success
getpid_syscall.cSuccessNone0.052017s0.276285s
Success
getppid.cSuccessNone0.051549s0.155618s
Success
getppid_syscall.cSuccessNone0.054572s0.232738s
Success
getuid.cSuccessNone0.051532s0.142765s
Success
getuid_syscall.cSuccessNone0.050043s0.185790s
Success
hello-arg.cSuccessNone0.041209s0.128787s
Success
hello.cSuccessNone0.041619s0.127908s
Success
longjmp.cSuccessNone0.042299s0.130285s
Success
mutex.cSuccessNone2.053511s2.160450s
Success
printf_deadlock_smoke.cSuccessNone0.058655s0.186543s
Success
printf_thread_test.cSuccessNone0.049875s0.155319s
Success
sem_forks.cSuccessNone0.053409s0.160102s
Success
setsid.cSuccessNone0.043287s0.125244s
Success
template.cSuccessNone0.050573s0.163368s
Success
test_exec_nofork.cSuccessNone0.049892s0.197393s
Success
test_unlink_open_file.cSuccessNone0.046193s0.130804s
Success
thread-guard.cSuccessNone0.047328s0.148643s
Success
thread-test.cSuccessNone0.045216s0.138560s
Success
thread.cSuccessNone0.046015s0.133837s
Success
thread_cageid_race.cSuccessNone0.046906s0.171174s
Success
tls_test.cSuccessNone0.049380s0.151830s
Success
uname.cSuccessNone0.043862s0.128062s
Success
wait.cSuccessNone2.049116s2.150022s
Success
waitpid_anychild.cSuccessNone0.051788s0.150554s
Success
waitpid_syscall.cSuccessNone1.050353s1.179627s
Success
waitpid_wnohang.cSuccessNone0.050984s0.149598s
Success
Signal Tests
alarm.cSuccessNone7.049423s7.168522s
Success
eintr_fork_signal.cSuccessNone1.052557s1.162758s
Success
kill.cSuccessNone1.050542s1.151451s
Success
setitimer.cSuccessNone7.052149s7.178397s
Success
sigalrm.cSuccessNone2.050440s2.158058s
Success
sigaltstack.cSuccessNone0.052306s0.149597s
Success
sigchld.cSuccessNone1.052096s1.152357s
Success
signal-fork.cSuccessNone4.051665s4.153801s
Success
signal-simple.cSuccessNone0.051273s0.140821s
Success
signal_SIGCHLD.cSuccessNone0.049786s0.150515s
Success
signal_fork.cSuccessNone0.046444s0.153970s
Success
signal_int_ignored.cSuccessNone2.050324s2.152241s
Success
signal_kill_cleanup.cSuccessNone1.047899s1.146716s
Success
signal_procmask.cSuccessNone0.044933s0.141740s
Success
signal_read_interrupt.cSuccessNone0.554116s0.667931s
Success
signal_recursive.cSuccessNone0.045409s0.147145s
Success
signal_sa_mask.cSuccessNone0.044794s0.137034s
Success
signal_select_interrupt.cSuccessNone0.554569s0.669349s
Success
signal_write_interrupt.cSuccessNone1.052768s1.163736s
Success
sigpipe.cSuccessNone1.052213s1.168890s
Success
sigprocmask.cSuccessNone1.049180s1.150787s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.042843s0.131200s
Success
Memory Tests
mmap-negative1.cSuccessNone0.110962s0.139065s
Success
mmap-negative2.cSuccessNone0.105734s0.189110s
Success
Signal Tests
signal_resethand.cSuccessNone1.050289s1.149263s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f5288000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f5387fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f5387fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f5288802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f4e70000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f4f6ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f4f6ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f4e70802000

interposing-calls/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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f6e44000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f6f43fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f6f43fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f6e44802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f6a2c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f6b2bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f6b2bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f6a2c802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f682c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f692bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f692bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f682c802000

interposing-calls/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] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f52cac00000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f53cabd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f53cabb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f52cb402000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f4eb4000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f4fb3fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f4fb3fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f4eb4802000

interposing-calls/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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fc164000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fc263fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fc263fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fc164802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fbd50000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fbe4ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fbe4ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fbd50802000

interposing-calls/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
[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
[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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fac02c00000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fad02bd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fad02bb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fac03402000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fa7ec000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fa8ebfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fa8ebfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fa7ec802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb7000 -> sysaddr=0x7fa8ebfb7000

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fac24000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fad23fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fad23fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fac24802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fa80c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fa90bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fa90bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fa80c802000

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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f9220000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f931ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f931ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f9220802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f8e08000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f8f07fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f8f07fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f8e08802000

race-test_grate.cSuccess
STDOUT:
pass

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f946c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f956bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f956bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f946c802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f9054000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f9153fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f9153fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f9054802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7f8f4bf98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7f8f4bf77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7f8f4bf56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7f8f4bf35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7f8f4bf14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7f8f4bef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7f8f4bed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7f8d43f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7f8f4beb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7f8d43f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7f8f4be90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7f8d43f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7f8d43f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7f8f4be6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7f8d43f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7f8d43ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7f8d43ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7f8d43eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7f8d43e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7f8d43e6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7f8b17f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7f8b17f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7f8b17f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7f8b17f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7f8b17f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7f8b17ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7f8b17ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7f8917f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7f8917f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7f8917f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7f8b17eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7f8917f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7f8b17e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7f8917f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7f8917ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7f8917ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7f8917eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7f8917e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7f8917e6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7f8b17e6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7f8717f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7f8717f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7f8717f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7f8717f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7f8717f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7f8717ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7f8717ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7f8717eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7f8717e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7f8717e6f000

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

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fa7f4000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fa8f3fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fa8f3fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fa7f4802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fa3dc000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fa4dbfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fa4dbfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fa3dc802000

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f1c08000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f1d07fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f1d07fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f1c08802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f17f0000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f18effd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f18effb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f17f0802000

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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f31a4000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f32a3fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f32a3fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f31a4802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f2d8c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f2e8bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f2e8bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f2d8c802000

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native1
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
File Tests
chartests.cSuccessNone0.048549s0.189219s
Success
chdir_getcwd.cSuccessNone0.048866s0.152523s
Success
chmod.cSuccessNone0.054570s0.167999s
Success
clock_gettime_highlevel.cSuccessNone0.122588s0.326364s
Success
clock_gettime_simple.cSuccessNone0.042838s0.135546s
Success
cloexec.cSuccessNone0.057001s0.221636s
Success
close.cSuccessNone0.060055s0.184176s
Success
creat_access.cSuccessNone0.054057s0.151261s
Success
doubleclose.cSuccessNone0.042801s0.128523s
Success
dup.cSuccessNone0.046365s0.149655s
Success
dup2.cSuccessNone0.051829s0.154398s
Success
dup3.cSuccessNone0.048022s0.152975s
Success
dupwrite.cSuccessNone0.051171s0.145126s
Success
etc_conf.cSuccessNone0.047738s0.153345s
Success
fchdir.cSuccessNone0.056507s0.170204s
Success
fchmod.cSuccessNone0.054290s0.162496s
Success
fcntl.cSuccessNone0.051473s0.157012s
Success
fdatasync.cSuccessNone0.051199s0.145184s
Success
filetest.cSuccessNone0.051657s0.143426s
Success
filetest1000.cSuccessNone0.058795s0.164224s
Success
flock.cSuccessNone0.063924s0.187642s
Success
fstat.cSuccessNone0.052674s0.157971s
Success
fstatfs.cSuccessNone0.046561s0.140594s
Success
fsync.cSuccessNone0.050315s0.140781s
Success
ftruncate.cSuccessNone0.055653s0.275538s
Success
getcwd.cSuccessNone0.048601s0.145052s
Success
getrandom.cSuccessNone0.051721s0.153943s
Success
ioctl.cSuccessNone0.057942s0.164277s
Success
link.cSuccessNone0.055983s0.214477s
Success
locale_test.cSuccessNone0.065256s0.644789s
Success
lseek.cSuccessNone0.055750s0.276125s
Success
lstat.cSuccessNone0.055710s0.174504s
Success
mkdir_rmdir.cSuccessNone0.052456s0.154521s
Success
mkfifo_test.cSuccessNone0.060546s0.208701s
Success
mknod.cSuccessNone0.050542s0.156952s
Success
nocancel_io.cSuccessNone0.057845s0.187199s
Success
open.cSuccessNone0.047291s0.135194s
Success
openat.cSuccessNone0.047076s0.147862s
Success
path_conversion_safety.cSuccessNone0.056307s0.185611s
Success
pread_pwrite.cSuccessNone0.048484s0.158466s
Success
preadv_pwritev.cSuccessNone0.053814s0.165781s
Success
printf.cSuccessNone0.042258s0.130805s
Success
prlimit64.cSuccessNone0.044618s0.138381s
Success
read.cSuccessNone0.052421s0.153510s
Success
readbytes.cSuccessNone0.050134s0.141205s
Success
readdir_basic.cSuccessNone0.056200s0.177685s
Success
readlink.cSuccessNone0.055257s0.154087s
Success
readlinkat.cSuccessNone0.053964s0.168764s
Success
readv_writev_test.cSuccessNone0.054020s0.165950s
Success
rename.cSuccessNone0.054972s0.165112s
Success
sc-writev.cSuccessNone0.051560s0.152327s
Success
stat.cSuccessNone0.052482s0.158997s
Success
statfs.cSuccessNone0.048189s0.141593s
Success
symlink.cSuccessNone0.057575s0.199068s
Success
sync_file_range.cSuccessNone0.051808s0.150186s
Success
timespec_time_t_compat.cSuccessNone0.051873s0.147000s
Success
truncate.cSuccessNone0.053161s0.168301s
Success
unlink.cSuccessNone0.054614s0.202486s
Success
unlinkat.cSuccessNone0.053425s0.172768s
Success
write.cSuccessNone0.044607s0.129297s
Success
writeloop.cSuccessNone0.054030s0.144738s
Success
writepartial.cSuccessNone0.051613s0.138375s
Success
writev.cSuccessNone0.055143s0.167074s
Success
Math Tests
math_link_smoke.cSuccessNone0.056206s0.139462s
Success
math_tests.cSuccessNone0.062167s0.173018s
Success
Memory Tests
brk.cSuccessNone0.051214s0.145412s
Success
fork_large_memory.cSuccessNone0.085036s0.430174s
Success
malloc.cSuccessNone0.048111s0.134414s
Success
malloc_large.cSuccessNone0.048291s0.138778s
Success
memcpy.cSuccessNone0.046863s0.134188s
Success
memory_error_test.cSuccessNone0.055851s0.183132s
Success
mmap.cSuccessNone0.055213s0.147355s
Success
mmap_aligned.cSuccessNone0.048164s0.155854s
Success
mmap_complicated.cSuccessNone0.052462s0.163776s
Success
mmap_file.cSuccessNone0.051704s0.154139s
Success
mmap_shared.cSuccessNone0.051682s0.156726s
Success
mmaptest.cSuccessNone0.046736s0.145294s
Success
mprotect.cSuccessNone0.046421s0.138019s
Success
mprotect_boundary.cSuccessNone0.046432s0.162905s
Success
mprotect_end_region.cSuccessNone0.044694s0.154264s
Success
mprotect_middle_region.cSuccessNone0.045308s0.148501s
Success
mprotect_multiple_times.cSuccessNone0.044859s0.153123s
Success
mprotect_same_value.cSuccessNone0.044755s0.148065s
Success
mprotect_spanning_regions.cSuccessNone0.046590s0.162062s
Success
munmap_adjacent_shm.cFailureFailure_native_running0.132767sN/A
Native execution: === munmap_adjacent_shm test ===
[1] Creating shm segment with key=4242, size=4096
    shmid = 1
[2] Attaching shm (NULL hint, let allocator pick)
    shm attached at 0x7f50075fa000
[3] Filling shm with 0xAB pattern
[4] Mapping anon at 0x7f50075f8000 (shm - 2*PAGE) with MAP_FIXED
    anon mapped at 0x7f50075f8000
[5] Filling anon with 0xCD pattern
Memory layout:
[0x7f50075f8000 - 0x7f50075fa000): anon (2 pages, 0xCD)
[0x7f50075fa000 - 0x7f50075fb000): shm  (1 page,  0xAB)

[6] Triggering munmap(anon=0x7f50075f8000, len=8193)
len rounds up to 12288 bytes (3 pages)
Range covered: [0x7f50075f8000 - 0x7f50075fb000)
WARNING: This range includes shm at 0x7f50075fa000!
munmap returned 0 (success)

[7] Verifying shm contents are intact...

sbrk.cSuccessNone0.047300s0.136946s
Success
segfault.cSuccessNone0.053722s0.172024s
Success
shm.cSuccessNone0.052485s0.167868s
Success
shmtest.cSuccessNone0.046602s0.146811s
Success
thread_malloc_sequential.cSuccessNone0.055771s0.178840s
Success
vtable.cSuccessNone0.056114s0.157282s
Success
Networking Tests
accept4.cSuccessNone0.057452s0.179027s
Success
dns_resolve_test.cSuccessNone0.050977s0.148976s
Success
dnstest.cSuccessNone0.051845s0.157464s
Success
epoll_edge_triggered.cSuccessNone0.209562s0.506230s
Success
epollcreate1.cSuccessNone0.053910s0.161011s
Success
error_handling_net.cSuccessNone0.061973s0.266808s
Success
getaddrinfo_test.cSuccessNone0.055394s0.194222s
Success
getaddrinfo_unspec.cSuccessNone0.058493s0.205698s
Success
gethostname.cSuccessNone0.047920s0.135268s
Success
getifaddrs.cSuccessNone0.054473s0.155268s
Success
getsockname.cSuccessNone0.055624s0.151952s
Success
getsockopt.cSuccessNone0.055194s0.200555s
Success
ipv6_basic.cSuccessNone0.057809s0.211921s
Success
makepipe.cSuccessNone0.046132s0.133770s
Success
nonblocking_eagain.cSuccessNone0.057854s0.216757s
Success
pipe.cSuccessNone0.055550s0.165357s
Success
pipe2.cSuccessNone0.054165s0.150285s
Success
pipeinput.cSuccessNone0.055397s0.178183s
Success
pipeinput2.cSuccessNone0.055114s0.174156s
Success
pipeonestring.cSuccessNone0.057612s0.176714s
Success
pipepong.cSuccessNone0.053617s0.179333s
Success
pipewrite.cSuccessNone0.048727s0.150823s
Success
poll.cSuccessNone0.054293s0.145051s
Success
recvfrom-sendto.cSuccessNone0.054889s0.169663s
Success
sendmsg_recvmsg_test.cSuccessNone0.054640s0.162946s
Success
serverclient.cSuccessNone0.054335s0.160116s
Success
shutdown.cSuccessNone0.055085s0.155585s
Success
shutdown_fork.cSuccessNone0.055026s0.160586s
Success
simple-select.cSuccessNone0.056123s0.179311s
Success
simple_epoll.cSuccessNone0.054084s0.161007s
Success
socket.cSuccessNone0.049906s0.140312s
Success
socket_cloexec.cSuccessNone0.052204s0.147684s
Success
socket_options_advanced.cSuccessNone0.058563s0.231749s
Success
socketepoll.cSuccessNone0.050319s0.153107s
Success
socketpair.cSuccessNone0.052123s0.155581s
Success
socketselect.cSuccessNone0.050993s0.153437s
Success
udp_send_recv.cSuccessNone0.162060s0.333997s
Success
uds-getsockname.cSuccessNone0.053470s0.149720s
Success
uds-nb-select.cSuccessNone2.060646s2.229359s
Success
uds-serverclient.cSuccessNone0.058265s0.188155s
Success
uds-socketselect.cSuccessNone0.052866s0.152398s
Success
writev_socket.cSuccessNone0.055398s0.193189s
Success
Process Tests
barrier_test.cSuccessNone0.050174s0.150944s
Success
chain_thread.cSuccessNone1.053832s1.163180s
Success
ctor_syscall_test.cSuccessNone0.041618s0.130253s
Success
cxa_atexit_test.cSuccessNone0.049397s0.137341s
Success
execve_shebang.cSuccessNone0.052788s0.149194s
Success
exit.cSuccessNone0.050596s0.134234s
Success
exit_failure.cSuccessNone0.050353s0.148288s
Success
exit_group_thread.cSuccessNone0.052908s0.159269s
Success
flockfile_test.cSuccessNone0.052881s0.173625s
Success
fork2malloc.cSuccessNone0.053451s0.155748s
Success
fork_select.cSuccessNone0.052145s0.162092s
Success
fork_simple.cSuccessNone0.053723s0.150986s
Success
fork_syscall.cSuccessNone0.057316s0.337605s
Success
fork_tls_ctype.cSuccessNone0.054245s0.182215s
Success
forkandopen.cSuccessNone0.054988s0.171846s
Success
forkdup.cSuccessNone0.056467s0.169823s
Success
forkexecuid.cSuccessNone0.052230s0.228930s
Success
forkexecv-arg.cSuccessNone0.054463s0.223564s
Success
forkexecv.cSuccessNone0.049328s0.199734s
Success
forkfiles.cSuccessNone0.052159s0.167013s
Success
forkmalloc.cSuccessNone0.061981s0.158600s
Success
forknodup.cSuccessNone0.054209s0.171119s
Success
function-ptr.cSuccessNone0.047708s0.138216s
Success
getegid_syscall.cSuccessNone0.052211s0.297109s
Success
getgid_syscall.cSuccessNone0.056001s0.281287s
Success
getpid.cSuccessNone0.047667s0.138409s
Success
getpid_syscall.cSuccessNone0.054602s0.283621s
Success
getppid.cSuccessNone0.053694s0.150496s
Success
getppid_syscall.cSuccessNone0.057466s0.240894s
Success
getuid.cSuccessNone0.053467s0.149490s
Success
getuid_syscall.cSuccessNone0.051652s0.199301s
Success
hello-arg.cSuccessNone0.043725s0.137232s
Success
hello.cSuccessNone0.042861s0.126028s
Success
longjmp.cSuccessNone0.043158s0.130706s
Success
mutex.cSuccessNone2.058198s2.174262s
Success
printf_deadlock_smoke.cSuccessNone0.064670s0.192895s
Success
printf_thread_test.cSuccessNone0.054167s0.179011s
Success
sem_forks.cSuccessNone0.055856s0.168546s
Success
setsid.cSuccessNone0.045152s0.132987s
Success
template.cSuccessNone0.053119s0.167761s
Success
test_exec_nofork.cSuccessNone0.051780s0.198766s
Success
test_unlink_open_file.cSuccessNone0.046302s0.130677s
Success
thread-guard.cSuccessNone0.051885s0.155261s
Success
thread-test.cSuccessNone0.047495s0.138311s
Success
thread.cSuccessNone0.046582s0.142757s
Success
thread_cageid_race.cSuccessNone0.048912s0.183461s
Success
tls_test.cSuccessNone0.052316s0.154948s
Success
uname.cSuccessNone0.045989s0.133695s
Success
wait.cSuccessNone2.048920s2.150896s
Success
waitpid_anychild.cSuccessNone0.050186s0.149240s
Success
waitpid_syscall.cSuccessNone1.053296s1.192671s
Success
waitpid_wnohang.cSuccessNone0.052335s0.152154s
Success
Signal Tests
alarm.cSuccessNone7.052610s7.185585s
Success
eintr_fork_signal.cSuccessNone1.055523s1.179256s
Success
kill.cSuccessNone1.052804s1.158183s
Success
setitimer.cSuccessNone7.054577s7.187834s
Success
sigalrm.cSuccessNone2.051711s2.161245s
Success
sigaltstack.cSuccessNone0.054122s0.165391s
Success
sigchld.cSuccessNone1.057350s1.158960s
Success
signal-fork.cSuccessNone4.056984s4.164247s
Success
signal-simple.cSuccessNone0.053911s0.147123s
Success
signal_SIGCHLD.cSuccessNone0.050847s0.160045s
Success
signal_fork.cSuccessNone0.050298s0.160373s
Success
signal_int_ignored.cSuccessNone2.053522s2.162679s
Success
signal_kill_cleanup.cSuccessNone1.051790s1.154434s
Success
signal_procmask.cSuccessNone0.048287s0.150588s
Success
signal_read_interrupt.cSuccessNone0.555972s0.674814s
Success
signal_recursive.cSuccessNone0.047870s0.157448s
Success
signal_sa_mask.cSuccessNone0.048235s0.153522s
Success
signal_select_interrupt.cSuccessNone0.558219s0.676062s
Success
signal_write_interrupt.cSuccessNone1.057512s1.175400s
Success
sigpipe.cSuccessNone1.055651s1.172064s
Success
sigprocmask.cSuccessNone1.051942s1.156415s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.045095s0.131608s
Success
Memory Tests
mmap-negative1.cSuccessNone0.117048s0.142846s
Success
mmap-negative2.cSuccessNone0.110895s0.153850s
Success
Signal Tests
signal_resethand.cSuccessNone1.052460s1.157676s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fa048000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fa147fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fa147fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fa048802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f9c34000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f9d33fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f9d33fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f9c34802000

interposing-calls/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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fd250000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fd34ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fd34ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fd250802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fce38000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fcf37fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fcf37fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fce38802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fcc38000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fcd37fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fcd37fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fcc38802000

interposing-calls/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] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f7a43c00000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f7b43bd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f7b43bb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f7a44402000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f762c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f772bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f772bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f762c802000

interposing-calls/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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f3bc8000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f3cc7fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f3cc7fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f3bc8802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f37b0000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f38affd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f38affb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f37b0802000

interposing-calls/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
[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
[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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7efaa4000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7efba3fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7efba3fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7efaa4802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7ef68c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7ef78bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7ef78bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7ef68c802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb7000 -> sysaddr=0x7ef78bfb7000

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f6b86c00000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f6c86bd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f6c86bb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f6b87402000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f6770000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f686ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f686ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f6770802000

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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fe594000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fe693fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fe693fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fe594802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fe17c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fe27bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fe27bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fe17c802000

race-test_grate.cSuccess
STDOUT:
pass

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fc9b8000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fcab7fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fcab7fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fc9b8802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7fc5a0000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7fc69ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7fc69ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7fc5a0802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7fc49bf98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7fc49bf77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7fc49bf56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7fc49bf35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7fc49bf14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7fc49bef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7fc49bed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7fc49beb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7fc49be90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7fc49be6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7fc273f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7fc273f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7fc273f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7fc273f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7fc273f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7fc273ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7fc273ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7fc273eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7fc273e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7fc273e6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7fc06bf98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7fc06bf77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7fc06bf56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7fc06bf35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7fc06bf14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7fc06bef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7fc06bed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7fc06beb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7fc06be90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7fc06be6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7fc273f98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7fc273f77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7fc273f56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7fc273f35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7fc273f14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7fc273ef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7fc273ed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7fc273eb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7fc273e90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff98000 -> sysaddr=0x7fc06bf98000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff77000 -> sysaddr=0x7fc06bf77000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff56000 -> sysaddr=0x7fc06bf56000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff35000 -> sysaddr=0x7fc06bf35000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfff14000 -> sysaddr=0x7fc06bf14000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffef3000 -> sysaddr=0x7fc06bef3000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffed2000 -> sysaddr=0x7fc06bed2000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffeb1000 -> sysaddr=0x7fc06beb1000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7fc273e6f000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe90000 -> sysaddr=0x7fc06be90000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xffe6f000 -> sysaddr=0x7fc06be6f000

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

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f604c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f614bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f614bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f604c802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f5c34000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f5d33fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f5d33fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f5c34802000

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f1898000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f1997fd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f1997fb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f1898802000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f1480000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f157ffd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f157ffb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f1480802000

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:
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f0f43c00000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f1043bd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f1043bb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f0f44402000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=true
[mmap] useraddr=0x0 -> sysaddr=0x7f0b2c000000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffd4000 -> sysaddr=0x7f0c2bfd4000
[mmap] addr_arg=0x0, addr=0x0, useraddr=0x0, MAP_FIXED=false
[mmap] useraddr=0xfffb9000 -> sysaddr=0x7f0c2bfb9000
[mmap] addr_arg=0x802000, addr=0x802000, useraddr=0x802000, MAP_FIXED=true
[mmap] useraddr=0x802000 -> sysaddr=0x7f0b2c802000

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch1
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.047748s0.193039s
Success
chdir_getcwd.cSuccessNone0.048266s0.151444s
Success
chmod.cSuccessNone0.053780s0.158738s
Success
clock_gettime_highlevel.cSuccessNone0.118152s0.320487s
Success
clock_gettime_simple.cSuccessNone0.041347s0.133994s
Success
cloexec.cSuccessNone0.054179s0.224202s
Success
close.cSuccessNone0.059362s0.179937s
Success
creat_access.cSuccessNone0.050707s0.146196s
Success
doubleclose.cSuccessNone0.045296s0.130906s
Success
dup.cSuccessNone0.042656s0.143956s
Success
dup2.cSuccessNone0.050322s0.145393s
Success
dup3.cSuccessNone0.047254s0.150094s
Success
dupwrite.cSuccessNone0.051491s0.141013s
Success
etc_conf.cSuccessNone0.046402s0.153784s
Success
fchdir.cSuccessNone0.052852s0.160903s
Success
fchmod.cSuccessNone0.053009s0.157436s
Success
fcntl.cSuccessNone0.048513s0.153034s
Success
fdatasync.cSuccessNone0.050576s0.139632s
Success
filetest.cSuccessNone0.049891s0.141347s
Success
filetest1000.cSuccessNone0.057834s0.153744s
Success
flock.cSuccessNone0.060680s0.189313s
Success
fstat.cSuccessNone0.054236s0.162473s
Success
fstatfs.cSuccessNone0.045681s0.137035s
Success
fsync.cSuccessNone0.049954s0.143403s
Success
ftruncate.cSuccessNone0.054243s0.268099s
Success
getcwd.cSuccessNone0.045645s0.134046s
Success
getrandom.cSuccessNone0.049556s0.149544s
Success
ioctl.cSuccessNone0.053002s0.150389s
Success
link.cSuccessNone0.053430s0.209636s
Success
locale_test.cSuccessNone0.065589s0.718768s
Success
lseek.cSuccessNone0.054793s0.268868s
Success
lstat.cSuccessNone0.053278s0.169850s
Success
mkdir_rmdir.cSuccessNone0.051061s0.146551s
Success
mkfifo_test.cSuccessNone0.055882s0.193218s
Success
mknod.cSuccessNone0.048834s0.158473s
Success
nocancel_io.cSuccessNone0.055453s0.181947s
Success
open.cSuccessNone0.046315s0.131065s
Success
openat.cSuccessNone0.044754s0.139981s
Success
path_conversion_safety.cSuccessNone0.055573s0.177572s
Success
pread_pwrite.cSuccessNone0.048013s0.153360s
Success
preadv_pwritev.cSuccessNone0.052039s0.163384s
Success
printf.cSuccessNone0.042863s0.125788s
Success
prlimit64.cSuccessNone0.045068s0.137593s
Success
read.cSuccessNone0.052960s0.156249s
Success
readbytes.cSuccessNone0.046216s0.137012s
Success
readdir_basic.cSuccessNone0.056013s0.172946s
Success
readlink.cSuccessNone0.051612s0.148781s
Success
readlinkat.cSuccessNone0.052157s0.156447s
Success
readv_writev_test.cSuccessNone0.052886s0.164727s
Success
rename.cSuccessNone0.053163s0.145224s
Success
sc-writev.cSuccessNone0.050038s0.151374s
Success
stat.cSuccessNone0.052146s0.154183s
Success
statfs.cSuccessNone0.044710s0.139826s
Success
symlink.cSuccessNone0.052183s0.192928s
Success
sync_file_range.cSuccessNone0.050531s0.149272s
Success
timespec_time_t_compat.cSuccessNone0.047272s0.134278s
Success
truncate.cSuccessNone0.052454s0.163212s
Success
unlink.cSuccessNone0.053676s0.202288s
Success
unlinkat.cSuccessNone0.052930s0.168095s
Success
write.cSuccessNone0.043888s0.131509s
Success
writeloop.cSuccessNone0.054075s0.143047s
Success
writepartial.cSuccessNone0.050801s0.139810s
Success
writev.cSuccessNone0.051682s0.158132s
Success
Math Tests
math_link_smoke.cSuccessNone0.054215s0.137361s
Success
math_tests.cSuccessNone0.062660s0.172256s
Success
Memory Tests
brk.cSuccessNone0.047267s0.138999s
Success
fork_large_memory.cSuccessNone0.079006s0.392934s
Success
malloc.cSuccessNone0.046224s0.129417s
Success
malloc_large.cSuccessNone0.045974s0.129813s
Success
memcpy.cSuccessNone0.044427s0.126854s
Success
memory_error_test.cSuccessNone0.051917s0.171071s
Success
mmap.cSuccessNone0.041619s0.133386s
Success
mmap_aligned.cSuccessNone0.044231s0.146269s
Success
mmap_complicated.cSuccessNone0.049388s0.150755s
Success
mmap_file.cSuccessNone0.050668s0.145167s
Success
mmap_shared.cSuccessNone0.048396s0.145347s
Success
mmaptest.cSuccessNone0.044831s0.138336s
Success
mprotect.cSuccessNone0.043311s0.133141s
Success
mprotect_boundary.cSuccessNone0.043397s0.147126s
Success
mprotect_end_region.cSuccessNone0.045029s0.136177s
Success
mprotect_middle_region.cSuccessNone0.043148s0.141533s
Success
mprotect_multiple_times.cSuccessNone0.043254s0.140511s
Success
mprotect_same_value.cSuccessNone0.042585s0.135418s
Success
mprotect_spanning_regions.cSuccessNone0.043795s0.153103s
Success
munmap_adjacent_shm.cFailureOutput_mismatch0.046200s0.170066s
=== Expected Output ===
=== munmap_adjacent_shm test ===
[1] Creating shm segment with key=4242, size=4096
    shmid = 1
[2] Attaching shm (NULL hint, let allocator pick)
    shm attached at 0x7f5aaa7b2000
[3] Filling shm with 0xAB pattern
[4] Mapping anon at 0x7f5aaa7b0000 (shm - 2*PAGE) with MAP_FIXED
    anon mapped at 0x7f5aaa7b0000
[5] Filling anon with 0xCD pattern
Memory layout:
[0x7f5aaa7b0000 - 0x7f5aaa7b2000): anon (2 pages, 0xCD)
[0x7f5aaa7b2000 - 0x7f5aaa7b3000): shm  (1 page,  0xAB)

[6] Triggering munmap(anon=0x7f5aaa7b0000, len=8193)
len rounds up to 12288 bytes (3 pages)
Range covered: [0x7f5aaa7b0000 - 0x7f5aaa7b3000)
WARNING: This range includes shm at 0x7f5aaa7b2000!
munmap returned 0 (success)

[7] Verifying shm segment still exists...
shm segment exists (nattch=0)

[8] Re-attaching to shm to verify data...
re-attached at 0x7f5aaa7b2000

[9] Cleanup: detaching and removing shm

PASS: shm segment and data intact after unaligned munmap

=== WASM Output ===
=== munmap_adjacent_shm test ===
[1] Creating shm segment with key=4242, size=4096
shmid = 1
[2] Attaching shm (NULL hint, let allocator pick)
shm attached at 0xfffb7000
[3] Filling shm with 0xAB pattern
[4] Mapping anon at 0xfffb5000 (shm - 2*PAGE) with MAP_FIXED
anon mapped at 0xfffb5000
[5] Filling anon with 0xCD pattern

Memory layout:
[0xfffb5000 - 0xfffb7000): anon (2 pages, 0xCD)
[0xfffb7000 - 0xfffb8000): shm  (1 page,  0xAB)

[6] Triggering munmap(anon=0xfffb5000, len=8193)
len rounds up to 12288 bytes (3 pages)
Range covered: [0xfffb5000 - 0xfffb8000)
WARNING: This range includes shm at 0xfffb7000!
munmap returned 0 (success)

[7] Verifying shm segment still exists...
shm segment exists (nattch=1)

[8] Re-attaching to shm to verify data...
re-attached at 0xfffb7000

[9] Cleanup: detaching and removing shm

PASS: shm segment and data intact after unaligned munmap

sbrk.cSuccessNone0.044857s0.130892s
Success
segfault.cSuccessNone0.050800s0.160759s
Success
shm.cSuccessNone0.050155s0.157120s
Success
shmtest.cSuccessNone0.043833s0.137973s
Success
thread_malloc_sequential.cSuccessNone0.051468s0.161758s
Success
vtable.cSuccessNone0.054673s0.149533s
Success
Networking Tests
accept4.cSuccessNone0.060093s0.170313s
Success
dns_resolve_test.cSuccessNone0.051359s0.147608s
Success
dnstest.cSuccessNone0.051362s0.155917s
Success
epoll_edge_triggered.cSuccessNone0.209238s0.509396s
Success
epollcreate1.cSuccessNone0.053948s0.158506s
Success
error_handling_net.cSuccessNone0.061366s0.276810s
Success
getaddrinfo_test.cSuccessNone0.056429s0.199416s
Success
getaddrinfo_unspec.cSuccessNone0.053483s0.164249s
Success
gethostname.cSuccessNone0.184996s0.194320s
Success
getifaddrs.cSuccessNone0.053808s0.152724s
Success
getsockname.cSuccessNone0.060966s0.157022s
Success
getsockopt.cSuccessNone0.056515s0.205928s
Success
ipv6_basic.cSuccessNone0.056237s0.206740s
Success
makepipe.cSuccessNone0.069709s0.204485s
Success
nonblocking_eagain.cSuccessNone0.056343s0.220413s
Success
pipe.cSuccessNone0.054842s0.167382s
Success
pipe2.cSuccessNone0.055113s0.149543s
Success
pipeinput.cSuccessNone0.054742s0.177266s
Success
pipeinput2.cSuccessNone0.055625s0.173098s
Success
pipeonestring.cSuccessNone0.077560s0.569858s
Success
pipepong.cSuccessNone0.053354s0.178220s
Success
pipewrite.cSuccessNone0.046965s0.152165s
Success
poll.cSuccessNone0.053444s0.142018s
Success
recvfrom-sendto.cSuccessNone0.053366s0.161262s
Success
sendmsg_recvmsg_test.cSuccessNone0.052298s0.157515s
Success
serverclient.cSuccessNone0.053072s0.152799s
Success
shutdown.cSuccessNone0.054605s0.155416s
Success
shutdown_fork.cSuccessNone0.051774s0.164704s
Success
simple-select.cSuccessNone0.055448s0.182704s
Success
simple_epoll.cSuccessNone0.052011s0.167287s
Success
socket.cSuccessNone0.051008s0.144715s
Success
socket_cloexec.cSuccessNone0.050701s0.143371s
Success
socket_options_advanced.cSuccessNone0.059117s0.233324s
Success
socketepoll.cSuccessNone0.052103s0.156149s
Success
socketpair.cSuccessNone0.050727s0.160135s
Success
socketselect.cSuccessNone0.051099s0.150640s
Success
udp_send_recv.cSuccessNone0.159089s0.329846s
Success
uds-getsockname.cSuccessNone0.053025s0.151595s
Success
uds-nb-select.cSuccessNone2.060642s2.221777s
Success
uds-serverclient.cSuccessNone0.056565s0.191877s
Success
uds-socketselect.cSuccessNone0.053160s0.153264s
Success
writev_socket.cSuccessNone0.056883s0.192342s
Success
Process Tests
barrier_test.cSuccessNone0.050776s0.154170s
Success
chain_thread.cSuccessNone1.054460s1.164142s
Success
ctor_syscall_test.cSuccessNone0.040429s0.130505s
Success
cxa_atexit_test.cSuccessNone0.048813s0.136744s
Success
execve_shebang.cSuccessNone0.052527s0.148569s
Success
exit.cSuccessNone0.048691s0.135071s
Success
exit_failure.cSuccessNone0.050019s0.148101s
Success
exit_group_thread.cSuccessNone0.052403s0.154628s
Success
flockfile_test.cSuccessNone0.052950s0.170335s
Success
fork2malloc.cSuccessNone0.054009s0.151797s
Success
fork_select.cSuccessNone0.053038s0.163597s
Success
fork_simple.cSuccessNone0.050071s0.145720s
Success
fork_syscall.cSuccessNone0.056266s0.315949s
Success
fork_tls_ctype.cSuccessNone0.054695s0.178069s
Success
forkandopen.cSuccessNone0.054280s0.167281s
Success
forkdup.cSuccessNone0.057005s0.163456s
Success
forkexecuid.cSuccessNone0.050682s0.222607s
Success
forkexecv-arg.cSuccessNone0.051382s0.202803s
Success
forkexecv.cSuccessNone0.049498s0.199690s
Success
forkfiles.cSuccessNone0.052395s0.167854s
Success
forkmalloc.cSuccessNone0.080172s0.148880s
Success
forknodup.cSuccessNone0.051203s0.157979s
Success
function-ptr.cSuccessNone0.048125s0.134172s
Success
getegid_syscall.cSuccessNone0.052621s0.308879s
Success
getgid_syscall.cSuccessNone0.052052s0.300595s
Success
getpid.cSuccessNone0.044998s0.130768s
Success
getpid_syscall.cSuccessNone0.052880s0.287285s
Success
getppid.cSuccessNone0.051584s0.148677s
Success
getppid_syscall.cSuccessNone0.054104s0.260659s
Success
getuid.cSuccessNone0.053089s0.144982s
Success
getuid_syscall.cSuccessNone0.051346s0.206189s
Success
hello-arg.cSuccessNone0.042210s0.134089s
Success
hello.cSuccessNone0.043732s0.128322s
Success
longjmp.cSuccessNone0.043523s0.134118s
Success
mutex.cSuccessNone2.055301s2.166079s
Success
printf_deadlock_smoke.cSuccessNone0.062564s0.196251s
Success
printf_thread_test.cSuccessNone0.051442s0.162663s
Success
sem_forks.cSuccessNone0.055849s0.174041s
Success
setsid.cSuccessNone0.044016s0.129491s
Success
template.cSuccessNone0.051505s0.168832s
Success
test_exec_nofork.cSuccessNone0.049060s0.197011s
Success
test_unlink_open_file.cSuccessNone0.047020s0.133265s
Success
thread-guard.cSuccessNone0.054057s0.155433s
Success
thread-test.cSuccessNone0.046426s0.140380s
Success
thread.cSuccessNone0.047478s0.140508s
Success
thread_cageid_race.cSuccessNone0.051147s0.181257s
Success
tls_test.cSuccessNone0.050028s0.152326s
Success
uname.cSuccessNone0.044692s0.132847s
Success
wait.cSuccessNone2.049081s2.148809s
Success
waitpid_anychild.cSuccessNone0.052258s0.152134s
Success
waitpid_syscall.cSuccessNone1.052071s1.188167s
Success
waitpid_wnohang.cSuccessNone0.051107s0.153228s
Success
Signal Tests
alarm.cSuccessNone7.053236s7.171150s
Success
eintr_fork_signal.cSuccessNone1.052509s1.163743s
Success
kill.cSuccessNone1.050354s1.148700s
Success
setitimer.cSuccessNone7.052477s7.175375s
Success
sigalrm.cSuccessNone2.051193s2.160379s
Success
sigaltstack.cSuccessNone0.052449s0.153598s
Success
sigchld.cSuccessNone1.051925s1.171613s
Success
signal-fork.cSuccessNone4.051286s4.153945s
Success
signal-simple.cSuccessNone0.051542s0.141613s
Success
signal_SIGCHLD.cSuccessNone0.049107s0.155749s
Success
signal_fork.cSuccessNone0.047650s0.156501s
Success
signal_int_ignored.cSuccessNone2.051738s2.154882s
Success
signal_kill_cleanup.cSuccessNone1.048499s1.149006s
Success
signal_procmask.cSuccessNone0.046246s0.147448s
Success
signal_read_interrupt.cSuccessNone0.555075s0.670970s
Success
signal_recursive.cSuccessNone0.045422s0.146698s
Success
signal_sa_mask.cSuccessNone0.046466s0.139481s
Success
signal_select_interrupt.cSuccessNone0.554257s0.667184s
Success
signal_write_interrupt.cSuccessNone1.053696s1.160164s
Success
sigpipe.cSuccessNone1.052086s1.168806s
Success
sigprocmask.cSuccessNone1.049253s1.151155s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.042642s0.130624s
Success
Memory Tests
mmap-negative1.cSuccessNone0.126650s0.129770s
Success
mmap-negative2.cSuccessNone0.118762s0.136491s
Success
Signal Tests
signal_resethand.cSuccessNone1.050725s1.149381s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch1
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.051641s0.202458s
Success
chdir_getcwd.cSuccessNone0.051419s0.163035s
Success
chmod.cSuccessNone0.057545s0.171261s
Success
clock_gettime_highlevel.cSuccessNone0.123795s0.361148s
Success
clock_gettime_simple.cSuccessNone0.046749s0.145560s
Success
cloexec.cSuccessNone0.056392s0.238750s
Success
close.cSuccessNone0.063147s0.189896s
Success
creat_access.cSuccessNone0.054683s0.162262s
Success
doubleclose.cSuccessNone0.048312s0.142159s
Success
dup.cSuccessNone0.048413s0.162133s
Success
dup2.cSuccessNone0.053883s0.160191s
Success
dup3.cSuccessNone0.050683s0.161354s
Success
dupwrite.cSuccessNone0.054539s0.156716s
Success
etc_conf.cSuccessNone0.052212s0.165880s
Success
fchdir.cSuccessNone0.058015s0.175288s
Success
fchmod.cSuccessNone0.055685s0.170071s
Success
fcntl.cSuccessNone0.054049s0.161880s
Success
fdatasync.cSuccessNone0.052769s0.148535s
Success
filetest.cSuccessNone0.054676s0.152981s
Success
filetest1000.cSuccessNone0.064073s0.172186s
Success
flock.cSuccessNone0.062243s0.198536s
Success
fstat.cSuccessNone0.056682s0.174302s
Success
fstatfs.cSuccessNone0.050620s0.152197s
Success
fsync.cSuccessNone0.052982s0.152518s
Success
ftruncate.cSuccessNone0.058074s0.279568s
Success
getcwd.cSuccessNone0.051024s0.149692s
Success
getrandom.cSuccessNone0.054544s0.160815s
Success
ioctl.cSuccessNone0.057660s0.161935s
Success
link.cSuccessNone0.058922s0.221229s
Success
locale_test.cSuccessNone0.064977s0.636528s
Success
lseek.cSuccessNone0.058694s0.286891s
Success
lstat.cSuccessNone0.056890s0.180053s
Success
mkdir_rmdir.cSuccessNone0.054032s0.161332s
Success
mkfifo_test.cSuccessNone0.060411s0.205016s
Success
mknod.cSuccessNone0.054255s0.169322s
Success
nocancel_io.cSuccessNone0.058168s0.196515s
Success
open.cSuccessNone0.050899s0.145257s
Success
openat.cSuccessNone0.050888s0.155550s
Success
path_conversion_safety.cSuccessNone0.058041s0.190704s
Success
pread_pwrite.cSuccessNone0.052584s0.170369s
Success
preadv_pwritev.cSuccessNone0.056818s0.176946s
Success
printf.cSuccessNone0.046205s0.138825s
Success
prlimit64.cSuccessNone0.048200s0.147985s
Success
read.cSuccessNone0.055656s0.165303s
Success
readbytes.cSuccessNone0.050045s0.146041s
Success
readdir_basic.cSuccessNone0.057334s0.183787s
Success
readlink.cSuccessNone0.055499s0.163202s
Success
readlinkat.cSuccessNone0.057016s0.173899s
Success
readv_writev_test.cSuccessNone0.056187s0.174216s
Success
rename.cSuccessNone0.057871s0.162954s
Success
sc-writev.cSuccessNone0.054235s0.158206s
Success
stat.cSuccessNone0.056685s0.165595s
Success
statfs.cSuccessNone0.049683s0.155577s
Success
symlink.cSuccessNone0.057461s0.205704s
Success
sync_file_range.cSuccessNone0.053702s0.160928s
Success
timespec_time_t_compat.cSuccessNone0.052444s0.149331s
Success
truncate.cSuccessNone0.056946s0.184245s
Success
unlink.cSuccessNone0.056529s0.208976s
Success
unlinkat.cSuccessNone0.056768s0.181704s
Success
write.cSuccessNone0.048008s0.139013s
Success
writeloop.cSuccessNone0.057615s0.156213s
Success
writepartial.cSuccessNone0.054682s0.147890s
Success
writev.cSuccessNone0.056231s0.173436s
Success
Math Tests
math_link_smoke.cSuccessNone0.059236s0.147262s
Success
math_tests.cSuccessNone0.062354s0.182841s
Success
Memory Tests
brk.cSuccessNone0.051692s0.148664s
Success
fork_large_memory.cSuccessNone0.084206s0.409163s
Success
malloc.cSuccessNone0.050596s0.139117s
Success
malloc_large.cSuccessNone0.051080s0.146637s
Success
memcpy.cSuccessNone0.049632s0.141813s
Success
memory_error_test.cSuccessNone0.055076s0.183354s
Success
mmap.cSuccessNone0.046882s0.145951s
Success
mmap_aligned.cSuccessNone0.048772s0.160148s
Success
mmap_complicated.cSuccessNone0.054825s0.165421s
Success
mmap_file.cSuccessNone0.054172s0.161390s
Success
mmap_shared.cSuccessNone0.053399s0.161583s
Success
mmaptest.cSuccessNone0.049781s0.152087s
Success
mprotect.cSuccessNone0.049274s0.144303s
Success
mprotect_boundary.cSuccessNone0.048474s0.159347s
Success
mprotect_end_region.cSuccessNone0.047915s0.150705s
Success
mprotect_middle_region.cSuccessNone0.048231s0.156131s
Success
mprotect_multiple_times.cSuccessNone0.048853s0.156300s
Success
mprotect_same_value.cSuccessNone0.049299s0.151337s
Success
mprotect_spanning_regions.cSuccessNone0.049029s0.171131s
Success
munmap_adjacent_shm.cFailureOutput_mismatch0.049708s0.163181s
=== Expected Output ===
Layout: anon=[0x7f4d529a9000-0x7f4d529ab000) shm=[0x7f4d529ab000-0x7f4d529ac000)
PASS: shm intact after unaligned munmap

=== WASM Output ===
Layout: anon=[0xfffb5000-0xfffb7000) shm=[0xfffb7000-0xfffb8000)
PASS: shm intact after unaligned munmap

sbrk.cSuccessNone0.050055s0.141173s
Success
segfault.cSuccessNone0.055207s0.175921s
Success
shm.cSuccessNone0.054826s0.165220s
Success
shmtest.cSuccessNone0.048582s0.150123s
Success
thread_malloc_sequential.cSuccessNone0.055086s0.176981s
Success
vtable.cSuccessNone0.058745s0.161288s
Success
Networking Tests
accept4.cSuccessNone0.059437s0.182608s
Success
dns_resolve_test.cSuccessNone0.054366s0.162431s
Success
dnstest.cSuccessNone0.055501s0.168640s
Success
epoll_edge_triggered.cSuccessNone0.211595s0.513653s
Success
epollcreate1.cSuccessNone0.056603s0.168064s
Success
error_handling_net.cSuccessNone0.062905s0.283388s
Success
getaddrinfo_test.cSuccessNone0.057755s0.206769s
Success
getaddrinfo_unspec.cSuccessNone0.058821s0.172229s
Success
gethostname.cSuccessNone0.049585s0.145824s
Success
getifaddrs.cSuccessNone0.058090s0.164478s
Success
getsockname.cSuccessNone0.060379s0.168780s
Success
getsockopt.cSuccessNone0.058725s0.218338s
Success
ipv6_basic.cSuccessNone0.060776s0.219937s
Success
makepipe.cSuccessNone0.048386s0.143221s
Success
nonblocking_eagain.cSuccessNone0.061126s0.230722s
Success
pipe.cSuccessNone0.059049s0.175996s
Success
pipe2.cSuccessNone0.056694s0.162167s
Success
pipeinput.cSuccessNone0.058124s0.184069s
Success
pipeinput2.cSuccessNone0.058043s0.184720s
Success
pipeonestring.cSuccessNone0.058390s0.184337s
Success
pipepong.cSuccessNone0.056951s0.190318s
Success
pipewrite.cSuccessNone0.051667s0.162896s
Success
poll.cSuccessNone0.056465s0.155482s
Success
recvfrom-sendto.cSuccessNone0.056829s0.176857s
Success
sendmsg_recvmsg_test.cSuccessNone0.055813s0.171696s
Success
serverclient.cSuccessNone0.055683s0.166976s
Success
shutdown.cSuccessNone0.057912s0.167840s
Success
shutdown_fork.cSuccessNone0.056956s0.175064s
Success
simple-select.cSuccessNone0.058187s0.184568s
Success
simple_epoll.cSuccessNone0.056772s0.169819s
Success
socket.cSuccessNone0.054097s0.154083s
Success
socket_cloexec.cSuccessNone0.054143s0.156332s
Success
socket_options_advanced.cSuccessNone0.060940s0.240268s
Success
socketepoll.cSuccessNone0.055199s0.162887s
Success
socketpair.cSuccessNone0.054761s0.166142s
Success
socketselect.cSuccessNone0.055338s0.165475s
Success
udp_send_recv.cSuccessNone0.162450s0.378222s
Success
uds-getsockname.cSuccessNone0.056042s0.161385s
Success
uds-nb-select.cSuccessNone2.062458s2.234028s
Success
uds-serverclient.cSuccessNone0.060358s0.197841s
Success
uds-socketselect.cSuccessNone0.056213s0.169194s
Success
writev_socket.cSuccessNone0.059586s0.207940s
Success
Process Tests
barrier_test.cSuccessNone0.054079s0.167128s
Success
chain_thread.cSuccessNone1.055960s1.171279s
Success
ctor_syscall_test.cSuccessNone0.046910s0.142119s
Success
cxa_atexit_test.cSuccessNone0.050978s0.144270s
Success
execve_shebang.cSuccessNone0.055307s0.161054s
Success
exit.cSuccessNone0.052252s0.143147s
Success
exit_failure.cSuccessNone0.054706s0.155541s
Success
exit_group_thread.cSuccessNone0.056222s0.166992s
Success
flockfile_test.cSuccessNone0.055291s0.183684s
Success
fork2malloc.cSuccessNone0.056550s0.167587s
Success
fork_select.cSuccessNone0.054775s0.173667s
Success
fork_simple.cSuccessNone0.053571s0.158250s
Success
fork_syscall.cSuccessNone0.060555s0.319916s
Success
fork_tls_ctype.cSuccessNone0.056048s0.184353s
Success
forkandopen.cSuccessNone0.055709s0.181616s
Success
forkdup.cSuccessNone0.057437s0.173204s
Success
forkexecuid.cSuccessNone0.053737s0.243793s
Success
forkexecv-arg.cSuccessNone0.055235s0.221457s
Success
forkexecv.cSuccessNone0.053155s0.214126s
Success
forkfiles.cSuccessNone0.056197s0.176308s
Success
forkmalloc.cSuccessNone0.061173s0.157043s
Success
forknodup.cSuccessNone0.055589s0.173360s
Success
function-ptr.cSuccessNone0.050731s0.148822s
Success
getegid_syscall.cSuccessNone0.055851s0.273052s
Success
getgid_syscall.cSuccessNone0.056239s0.280077s
Success
getpid.cSuccessNone0.049357s0.147010s
Success
getpid_syscall.cSuccessNone0.057670s0.310470s
Success
getppid.cSuccessNone0.055322s0.163780s
Success
getppid_syscall.cSuccessNone0.058560s0.262932s
Success
getuid.cSuccessNone0.055859s0.155997s
Success
getuid_syscall.cSuccessNone0.054962s0.213321s
Success
hello-arg.cSuccessNone0.046596s0.143025s
Success
hello.cSuccessNone0.047186s0.139013s
Success
longjmp.cSuccessNone0.047756s0.156880s
Success
mutex.cSuccessNone2.059112s2.175927s
Success
printf_deadlock_smoke.cSuccessNone0.062637s0.204502s
Success
printf_thread_test.cSuccessNone0.055240s0.175529s
Success
sem_forks.cSuccessNone0.057746s0.173871s
Success
setsid.cSuccessNone0.048869s0.144062s
Success
template.cSuccessNone0.055038s0.178168s
Success
test_exec_nofork.cSuccessNone0.055081s0.220433s
Success
test_unlink_open_file.cSuccessNone0.051623s0.145226s
Success
thread-guard.cSuccessNone0.053282s0.167858s
Success
thread-test.cSuccessNone0.050844s0.155034s
Success
thread.cSuccessNone0.050950s0.154490s
Success
thread_cageid_race.cSuccessNone0.051385s0.183510s
Success
tls_test.cSuccessNone0.054142s0.163641s
Success
uname.cSuccessNone0.050073s0.146486s
Success
wait.cSuccessNone2.060458s2.164151s
Success
waitpid_anychild.cSuccessNone0.054522s0.157790s
Success
waitpid_syscall.cSuccessNone1.056811s1.202562s
Success
waitpid_wnohang.cSuccessNone0.055250s0.158090s
Success
Signal Tests
alarm.cSuccessNone7.059533s7.186463s
Success
eintr_fork_signal.cSuccessNone1.057348s1.181199s
Success
kill.cSuccessNone1.054453s1.165273s
Success
setitimer.cSuccessNone7.055541s7.185357s
Success
sigalrm.cSuccessNone2.055783s2.172944s
Success
sigaltstack.cSuccessNone0.057672s0.170155s
Success
sigchld.cSuccessNone1.056099s1.165076s
Success
signal-fork.cSuccessNone4.056186s4.169518s
Success
signal-simple.cSuccessNone0.056895s0.159645s
Success
signal_SIGCHLD.cSuccessNone0.054133s0.166055s
Success
signal_fork.cSuccessNone0.051248s0.171124s
Success
signal_int_ignored.cSuccessNone2.056318s2.169005s
Success
signal_kill_cleanup.cSuccessNone1.053114s1.204632s
Success
signal_procmask.cSuccessNone0.052153s0.161881s
Success
signal_read_interrupt.cSuccessNone0.557739s0.682152s
Success
signal_recursive.cSuccessNone0.049691s0.160466s
Success
signal_sa_mask.cSuccessNone0.049935s0.150715s
Success
signal_select_interrupt.cSuccessNone0.559141s0.683034s
Success
signal_write_interrupt.cSuccessNone1.057572s1.177904s
Success
sigpipe.cSuccessNone1.057495s1.187300s
Success
sigprocmask.cSuccessNone1.054595s1.165674s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.048691s0.145840s
Success
Memory Tests
mmap-negative1.cSuccessNone0.119477s0.144351s
Success
mmap-negative2.cSuccessNone0.119975s0.199371s
Success
Signal Tests
signal_resethand.cSuccessNone1.054195s1.166232s
Success

// }

// Edit: Dennis
// Fix: Do NOT translate addr - it's a guest virtual address (offset in WASM linear memory),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this probably needs a bit more context in the comments that this is handled in rawposix and why

Comment thread src/rawposix/src/fs_calls.rs Outdated

// Collect owned page ranges first to release the iterator borrow before mutating.
// interval.end() is inclusive, so +1 converts to exclusive to match req_end.
let overlaps: Vec<(usize, usize)> = vmmap
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this is worth refactoring into a function in the vmmap i think.

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes206
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
File Tests
chartests.cSuccessNone0.049325s0.185300s
Success
chdir_getcwd.cSuccessNone0.047513s0.147794s
Success
chmod.cSuccessNone0.053667s0.157076s
Success
clock_gettime_highlevel.cSuccessNone0.120178s0.320942s
Success
clock_gettime_simple.cSuccessNone0.041682s0.133265s
Success
cloexec.cSuccessNone0.051867s0.217277s
Success
close.cSuccessNone0.058735s0.174016s
Success
creat_access.cSuccessNone0.051081s0.146571s
Success
doubleclose.cSuccessNone0.043063s0.129131s
Success
dup.cSuccessNone0.043886s0.143504s
Success
dup2.cSuccessNone0.050269s0.145365s
Success
dup3.cSuccessNone0.047051s0.148626s
Success
dupwrite.cSuccessNone0.052277s0.141501s
Success
etc_conf.cSuccessNone0.044608s0.144232s
Success
fchdir.cSuccessNone0.053527s0.163026s
Success
fchmod.cSuccessNone0.051159s0.161959s
Success
fcntl.cSuccessNone0.049938s0.155051s
Success
fdatasync.cSuccessNone0.049565s0.137450s
Success
filetest.cSuccessNone0.049231s0.140154s
Success
filetest1000.cSuccessNone0.058395s0.156912s
Success
flock.cSuccessNone0.060675s0.184044s
Success
fstat.cSuccessNone0.052779s0.153238s
Success
fstatfs.cSuccessNone0.044806s0.137665s
Success
fsync.cSuccessNone0.049022s0.136870s
Success
ftruncate.cSuccessNone0.054355s0.265931s
Success
getcwd.cSuccessNone0.046836s0.139976s
Success
getrandom.cSuccessNone0.050239s0.148024s
Success
ioctl.cSuccessNone0.053264s0.149405s
Success
link.cSuccessNone0.053779s0.206128s
Success
locale_test.cSuccessNone0.064754s0.662027s
Success
lseek.cSuccessNone0.058788s0.270517s
Success
lstat.cSuccessNone0.054335s0.172251s
Success
mkdir_rmdir.cSuccessNone0.050459s0.147741s
Success
mkfifo_test.cSuccessNone0.055856s0.197580s
Success
mknod.cSuccessNone0.050009s0.157938s
Success
nocancel_io.cSuccessNone0.054294s0.180994s
Success
open.cSuccessNone0.045553s0.134490s
Success
openat.cSuccessNone0.045550s0.139344s
Success
path_conversion_safety.cSuccessNone0.054564s0.178834s
Success
pread_pwrite.cSuccessNone0.047650s0.154522s
Success
preadv_pwritev.cSuccessNone0.053211s0.163968s
Success
printf.cSuccessNone0.041300s0.127050s
Success
prlimit64.cSuccessNone0.044192s0.132657s
Success
read.cSuccessNone0.050208s0.151629s
Success
readbytes.cSuccessNone0.047526s0.134708s
Success
readdir_basic.cSuccessNone0.054769s0.173215s
Success
readlink.cSuccessNone0.050264s0.149321s
Success
readlinkat.cSuccessNone0.052945s0.160356s
Success
readv_writev_test.cSuccessNone0.053249s0.162586s
Success
rename.cSuccessNone0.054407s0.148525s
Success
sc-writev.cSuccessNone0.048458s0.143870s
Success
stat.cSuccessNone0.050611s0.148107s
Success
statfs.cSuccessNone0.045331s0.142027s
Success
symlink.cSuccessNone0.053787s0.189061s
Success
sync_file_range.cSuccessNone0.048954s0.147093s
Success
timespec_time_t_compat.cSuccessNone0.048071s0.140146s
Success
truncate.cSuccessNone0.053196s0.164764s
Success
unlink.cSuccessNone0.053648s0.197155s
Success
unlinkat.cSuccessNone0.052059s0.167489s
Success
write.cSuccessNone0.043881s0.125800s
Success
writeloop.cSuccessNone0.052789s0.139137s
Success
writepartial.cSuccessNone0.051142s0.131527s
Success
writev.cSuccessNone0.052750s0.157756s
Success
Math Tests
math_link_smoke.cSuccessNone0.055042s0.135576s
Success
math_tests.cSuccessNone0.061310s0.171473s
Success
Memory Tests
brk.cSuccessNone0.048099s0.136252s
Success
fork_large_memory.cSuccessNone0.080682s0.413291s
Success
malloc.cSuccessNone0.045656s0.126955s
Success
malloc_large.cSuccessNone0.046285s0.133341s
Success
memcpy.cSuccessNone0.045656s0.132519s
Success
memory_error_test.cSuccessNone0.052433s0.171854s
Success
mmap.cSuccessNone0.043024s0.136159s
Success
mmap_aligned.cSuccessNone0.045092s0.150867s
Success
mmap_complicated.cSuccessNone0.051558s0.153399s
Success
mmap_file.cSuccessNone0.051058s0.146487s
Success
mmap_shared.cSuccessNone0.050057s0.152824s
Success
mmaptest.cSuccessNone0.045834s0.137757s
Success
mprotect.cSuccessNone0.044228s0.134025s
Success
mprotect_boundary.cSuccessNone0.044390s0.150301s
Success
mprotect_end_region.cSuccessNone0.043276s0.139079s
Success
mprotect_middle_region.cSuccessNone0.043480s0.141024s
Success
mprotect_multiple_times.cSuccessNone0.044153s0.143845s
Success
mprotect_same_value.cSuccessNone0.044812s0.144441s
Success
mprotect_spanning_regions.cSuccessNone0.044961s0.158736s
Success
munmap_adjacent_shm.cSuccessNone0.046108s0.150747s
Success
sbrk.cSuccessNone0.045400s0.130993s
Success
segfault.cSuccessNone0.051657s0.163100s
Success
shm.cSuccessNone0.050344s0.156178s
Success
shmtest.cSuccessNone0.044550s0.138898s
Success
thread_malloc_sequential.cSuccessNone0.051728s0.168761s
Success
vtable.cSuccessNone0.055327s0.150693s
Success
Networking Tests
accept4.cSuccessNone0.056647s0.172836s
Success
dns_resolve_test.cSuccessNone0.049388s0.149122s
Success
dnstest.cSuccessNone0.050168s0.155732s
Success
epoll_edge_triggered.cSuccessNone0.208396s0.497378s
Success
epollcreate1.cSuccessNone0.051486s0.152591s
Success
error_handling_net.cSuccessNone0.058634s0.263544s
Success
getaddrinfo_test.cSuccessNone0.054807s0.192382s
Success
getaddrinfo_unspec.cSuccessNone0.052803s0.148685s
Success
gethostname.cSuccessNone0.044975s0.135285s
Success
getifaddrs.cSuccessNone0.052126s0.150833s
Success
getsockname.cSuccessNone0.056340s0.150779s
Success
getsockopt.cSuccessNone0.054526s0.201565s
Success
ipv6_basic.cSuccessNone0.055086s0.198213s
Success
makepipe.cSuccessNone0.043276s0.128798s
Success
nonblocking_eagain.cSuccessNone0.055416s0.217231s
Success
pipe.cSuccessNone0.053853s0.157226s
Success
pipe2.cSuccessNone0.052652s0.147499s
Success
pipeinput.cSuccessNone0.054074s0.171158s
Success
pipeinput2.cSuccessNone0.054694s0.167486s
Success
pipeonestring.cSuccessNone0.053752s0.166963s
Success
pipepong.cSuccessNone0.052438s0.171482s
Success
pipewrite.cSuccessNone0.047484s0.146856s
Success
poll.cSuccessNone0.051860s0.138942s
Success
recvfrom-sendto.cSuccessNone0.053900s0.160310s
Success
sendmsg_recvmsg_test.cSuccessNone0.053009s0.157921s
Success
serverclient.cSuccessNone0.051938s0.151538s
Success
shutdown.cSuccessNone0.053560s0.153121s
Success
shutdown_fork.cSuccessNone0.052820s0.159725s
Success
simple-select.cSuccessNone0.053818s0.175383s
Success
simple_epoll.cSuccessNone0.051123s0.149395s
Success
socket.cSuccessNone0.051031s0.140411s
Success
socket_cloexec.cSuccessNone0.049931s0.143481s
Success
socket_options_advanced.cSuccessNone0.057090s0.220741s
Success
socketepoll.cSuccessNone0.052480s0.147906s
Success
socketpair.cSuccessNone0.049519s0.152603s
Success
socketselect.cSuccessNone0.050552s0.146137s
Success
udp_send_recv.cSuccessNone0.158774s0.315311s
Success
uds-getsockname.cSuccessNone0.051838s0.149882s
Success
uds-nb-select.cSuccessNone2.059187s2.216827s
Success
uds-serverclient.cSuccessNone0.056099s0.183932s
Success
uds-socketselect.cSuccessNone0.051722s0.150661s
Success
writev_socket.cSuccessNone0.054745s0.186417s
Success
Process Tests
barrier_test.cSuccessNone0.050391s0.151334s
Success
chain_thread.cSuccessNone1.055155s1.155917s
Success
ctor_syscall_test.cSuccessNone0.041463s0.127663s
Success
cxa_atexit_test.cSuccessNone0.047254s0.132348s
Success
execve_shebang.cSuccessNone0.051123s0.143935s
Success
exit.cSuccessNone0.049140s0.132367s
Success
exit_failure.cSuccessNone0.050016s0.143373s
Success
exit_group_thread.cSuccessNone0.053387s0.159476s
Success
flockfile_test.cSuccessNone0.051062s0.162086s
Success
fork2malloc.cSuccessNone0.053781s0.155822s
Success
fork_select.cSuccessNone0.049657s0.159411s
Success
fork_simple.cSuccessNone0.048634s0.141241s
Success
fork_syscall.cSuccessNone0.054757s0.336070s
Success
fork_tls_ctype.cSuccessNone0.054137s0.176773s
Success
forkandopen.cSuccessNone0.053325s0.172273s
Success
forkdup.cSuccessNone0.056687s0.162588s
Success
forkexecuid.cSuccessNone0.050334s0.218122s
Success
forkexecv-arg.cSuccessNone0.049430s0.202512s
Success
forkexecv.cSuccessNone0.050638s0.194211s
Success
forkfiles.cSuccessNone0.051733s0.162661s
Success
forkmalloc.cSuccessNone0.075863s0.158149s
Success
forknodup.cSuccessNone0.052773s0.168487s
Success
function-ptr.cSuccessNone0.046919s0.132138s
Success
getegid_syscall.cSuccessNone0.051399s0.352475s
Success
getgid_syscall.cSuccessNone0.052304s0.363911s
Success
getpid.cSuccessNone0.043913s0.135268s
Success
getpid_syscall.cSuccessNone0.053190s0.371822s
Success
getppid.cSuccessNone0.053535s0.159574s
Success
getppid_syscall.cSuccessNone0.055499s0.301302s
Success
getuid.cSuccessNone0.051202s0.140733s
Success
getuid_syscall.cSuccessNone0.050469s0.188823s
Success
hello-arg.cSuccessNone0.041990s0.130988s
Success
hello.cSuccessNone0.041920s0.123383s
Success
longjmp.cSuccessNone0.042675s0.133921s
Success
mutex.cSuccessNone2.054893s2.160481s
Success
printf_deadlock_smoke.cSuccessNone0.059579s0.186224s
Success
printf_thread_test.cSuccessNone0.052207s0.156865s
Success
sem_forks.cSuccessNone0.054070s0.177390s
Success
setsid.cSuccessNone0.045083s0.130700s
Success
template.cSuccessNone0.051836s0.167895s
Success
test_exec_nofork.cSuccessNone0.050799s0.196341s
Success
test_unlink_open_file.cSuccessNone0.046319s0.132571s
Success
thread-guard.cSuccessNone0.050165s0.149006s
Success
thread-test.cSuccessNone0.045645s0.143320s
Success
thread.cSuccessNone0.046934s0.138659s
Success
thread_cageid_race.cSuccessNone0.049969s0.173262s
Success
tls_test.cSuccessNone0.051254s0.156596s
Success
uname.cSuccessNone0.044577s0.130552s
Success
wait.cSuccessNone2.048385s2.149690s
Success
waitpid_anychild.cSuccessNone0.051874s0.154045s
Success
waitpid_syscall.cSuccessNone1.051278s1.208390s
Success
waitpid_wnohang.cSuccessNone0.053425s0.153829s
Success
Signal Tests
alarm.cSuccessNone7.049822s7.174262s
Success
eintr_fork_signal.cSuccessNone1.053009s1.172102s
Success
kill.cSuccessNone1.050642s1.150616s
Success
setitimer.cSuccessNone7.053352s7.178724s
Success
sigalrm.cSuccessNone2.051063s2.160348s
Success
sigaltstack.cSuccessNone0.052739s0.152738s
Success
sigchld.cSuccessNone1.052817s1.152027s
Success
signal-fork.cSuccessNone4.052380s4.155789s
Success
signal-simple.cSuccessNone0.053060s0.144905s
Success
signal_SIGCHLD.cSuccessNone0.049582s0.154393s
Success
signal_fork.cSuccessNone0.047611s0.155129s
Success
signal_int_ignored.cSuccessNone2.051747s2.155737s
Success
signal_kill_cleanup.cSuccessNone1.049404s1.148843s
Success
signal_procmask.cSuccessNone0.045142s0.144023s
Success
signal_read_interrupt.cSuccessNone0.555479s0.664883s
Success
signal_recursive.cSuccessNone0.045110s0.145580s
Success
signal_sa_mask.cSuccessNone0.045773s0.136594s
Success
signal_select_interrupt.cSuccessNone0.554882s0.668104s
Success
signal_write_interrupt.cSuccessNone1.054433s1.166402s
Success
sigpipe.cSuccessNone1.053261s1.174186s
Success
sigprocmask.cSuccessNone1.049923s1.152332s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.042064s0.128574s
Success
Memory Tests
mmap-negative1.cSuccessNone0.137893s0.148327s
Success
mmap-negative2.cSuccessNone0.108053s0.146925s
Success
Signal Tests
signal_resethand.cSuccessNone1.050493s1.150156s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch1
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.049311s0.198649s
Success
chdir_getcwd.cSuccessNone0.048035s0.148395s
Success
chmod.cSuccessNone0.053631s0.158378s
Success
clock_gettime_highlevel.cSuccessNone0.117988s0.322049s
Success
clock_gettime_simple.cSuccessNone0.041589s0.129850s
Success
cloexec.cSuccessNone0.053099s0.221424s
Success
close.cSuccessNone0.058369s0.175469s
Success
creat_access.cSuccessNone0.051586s0.155498s
Success
doubleclose.cSuccessNone0.043606s0.132549s
Success
dup.cSuccessNone0.044945s0.153114s
Success
dup2.cSuccessNone0.050392s0.149441s
Success
dup3.cSuccessNone0.048533s0.157260s
Success
dupwrite.cSuccessNone0.051874s0.143319s
Success
etc_conf.cSuccessNone0.046449s0.153979s
Success
fchdir.cSuccessNone0.053528s0.162617s
Success
fchmod.cSuccessNone0.052797s0.158689s
Success
fcntl.cSuccessNone0.050076s0.151900s
Success
fdatasync.cSuccessNone0.049587s0.139398s
Success
filetest.cSuccessNone0.051689s0.145337s
Success
filetest1000.cSuccessNone0.059747s0.159883s
Success
flock.cSuccessNone0.059636s0.191950s
Success
fstat.cSuccessNone0.052001s0.159139s
Success
fstatfs.cSuccessNone0.044427s0.139639s
Success
fsync.cSuccessNone0.050507s0.142649s
Success
ftruncate.cSuccessNone0.057206s0.277026s
Success
getcwd.cSuccessNone0.046683s0.140632s
Success
getrandom.cSuccessNone0.052210s0.150310s
Success
ioctl.cSuccessNone0.053306s0.152669s
Success
link.cSuccessNone0.056163s0.213151s
Success
locale_test.cSuccessNone0.065558s0.654397s
Success
lseek.cSuccessNone0.054558s0.268639s
Success
lstat.cSuccessNone0.055991s0.173892s
Success
mkdir_rmdir.cSuccessNone0.050820s0.150969s
Success
mkfifo_test.cSuccessNone0.056597s0.195350s
Success
mknod.cSuccessNone0.049179s0.162939s
Success
nocancel_io.cSuccessNone0.055374s0.184114s
Success
open.cSuccessNone0.047151s0.132894s
Success
openat.cSuccessNone0.046886s0.145780s
Success
path_conversion_safety.cSuccessNone0.056101s0.182414s
Success
pread_pwrite.cSuccessNone0.049261s0.159045s
Success
preadv_pwritev.cSuccessNone0.053926s0.167174s
Success
printf.cSuccessNone0.043579s0.127542s
Success
prlimit64.cSuccessNone0.045172s0.133948s
Success
read.cSuccessNone0.052304s0.154773s
Success
readbytes.cSuccessNone0.047934s0.149509s
Success
readdir_basic.cSuccessNone0.056315s0.179523s
Success
readlink.cSuccessNone0.050597s0.152546s
Success
readlinkat.cSuccessNone0.053303s0.162739s
Success
readv_writev_test.cSuccessNone0.054563s0.161777s
Success
rename.cSuccessNone0.052879s0.156015s
Success
sc-writev.cSuccessNone0.049055s0.153532s
Success
stat.cSuccessNone0.052300s0.155973s
Success
statfs.cSuccessNone0.044464s0.137508s
Success
symlink.cSuccessNone0.054325s0.191518s
Success
sync_file_range.cSuccessNone0.047765s0.144110s
Success
timespec_time_t_compat.cSuccessNone0.048376s0.134928s
Success
truncate.cSuccessNone0.053423s0.165827s
Success
unlink.cSuccessNone0.053029s0.201420s
Success
unlinkat.cSuccessNone0.053450s0.170168s
Success
write.cSuccessNone0.046726s0.131449s
Success
writeloop.cSuccessNone0.053954s0.141394s
Success
writepartial.cSuccessNone0.051873s0.136945s
Success
writev.cSuccessNone0.052396s0.157412s
Success
Math Tests
math_link_smoke.cSuccessNone0.056567s0.148639s
Success
math_tests.cSuccessNone0.061848s0.175742s
Success
Memory Tests
brk.cSuccessNone0.048552s0.139288s
Success
fork_large_memory.cSuccessNone0.080894s0.410400s
Success
malloc.cSuccessNone0.045635s0.130658s
Success
malloc_large.cSuccessNone0.047486s0.137357s
Success
memcpy.cSuccessNone0.045009s0.130251s
Success
memory_error_test.cSuccessNone0.052078s0.176981s
Success
mmap.cSuccessNone0.042759s0.136058s
Success
mmap_aligned.cSuccessNone0.044976s0.149108s
Success
mmap_complicated.cSuccessNone0.051453s0.155584s
Success
mmap_file.cSuccessNone0.051295s0.152176s
Success
mmap_shared.cSuccessNone0.049169s0.148913s
Success
mmaptest.cSuccessNone0.046050s0.142350s
Success
mprotect.cSuccessNone0.044332s0.133996s
Success
mprotect_boundary.cSuccessNone0.043960s0.148940s
Success
mprotect_end_region.cSuccessNone0.043649s0.141864s
Success
mprotect_middle_region.cSuccessNone0.044227s0.145249s
Success
mprotect_multiple_times.cSuccessNone0.044324s0.145823s
Success
mprotect_same_value.cSuccessNone0.044166s0.137404s
Success
mprotect_spanning_regions.cSuccessNone0.045248s0.158227s
Success
munmap_adjacent_shm.cSuccessNone0.046763s0.151505s
Success
sbrk.cSuccessNone0.046758s0.135785s
Success
segfault.cSuccessNone0.051127s0.164728s
Success
shm.cSuccessNone0.050248s0.154666s
Success
shmtest.cSuccessNone0.044383s0.145551s
Success
thread_malloc_sequential.cSuccessNone0.052183s0.167156s
Success
vtable.cSuccessNone0.056447s0.155230s
Success
Networking Tests
accept4.cSuccessNone0.056309s0.169984s
Success
dns_resolve_test.cSuccessNone0.050614s0.148016s
Success
dnstest.cSuccessNone0.052567s0.162052s
Success
epoll_edge_triggered.cSuccessNone0.208899s0.507140s
Success
epollcreate1.cSuccessNone0.054100s0.161478s
Success
error_handling_net.cSuccessNone0.059860s0.271019s
Success
getaddrinfo_test.cSuccessNone0.055156s0.197125s
Success
getaddrinfo_unspec.cSuccessNone0.052220s0.152396s
Success
gethostname.cSuccessNone0.044710s0.132033s
Success
getifaddrs.cSuccessNone0.052105s0.151834s
Success
getsockname.cSuccessNone0.058329s0.155410s
Success
getsockopt.cSuccessNone0.057479s0.207264s
Success
ipv6_basic.cSuccessNone0.057404s0.206276s
Success
makepipe.cSuccessNone0.044369s0.128839s
Success
nonblocking_eagain.cSuccessNone0.057198s0.219999s
Success
pipe.cSuccessNone0.053516s0.160556s
Success
pipe2.cSuccessNone0.052385s0.151087s
Success
pipeinput.cSuccessNone0.054419s0.176208s
Success
pipeinput2.cSuccessNone0.056285s0.173732s
Success
pipeonestring.cSuccessNone0.054768s0.173910s
Success
pipepong.cSuccessNone0.053584s0.178378s
Success
pipewrite.cSuccessNone0.047737s0.148655s
Success
poll.cSuccessNone0.052199s0.144190s
Success
recvfrom-sendto.cSuccessNone0.052801s0.163889s
Success
sendmsg_recvmsg_test.cSuccessNone0.053412s0.160294s
Success
serverclient.cSuccessNone0.053896s0.162629s
Success
shutdown.cSuccessNone0.053474s0.155390s
Success
shutdown_fork.cSuccessNone0.053077s0.161688s
Success
simple-select.cSuccessNone0.055120s0.175628s
Success
simple_epoll.cSuccessNone0.053167s0.155361s
Success
socket.cSuccessNone0.051433s0.142964s
Success
socket_cloexec.cSuccessNone0.050927s0.148679s
Success
socket_options_advanced.cSuccessNone0.057997s0.232798s
Success
socketepoll.cSuccessNone0.051791s0.148690s
Success
socketpair.cSuccessNone0.051375s0.163040s
Success
socketselect.cSuccessNone0.051123s0.152627s
Success
udp_send_recv.cSuccessNone0.161451s0.320007s
Success
uds-getsockname.cSuccessNone0.052441s0.150161s
Success
uds-nb-select.cSuccessNone2.060001s2.224828s
Success
uds-serverclient.cSuccessNone0.057793s0.194304s
Success
uds-socketselect.cSuccessNone0.052407s0.154351s
Success
writev_socket.cSuccessNone0.056204s0.189053s
Success
Process Tests
barrier_test.cSuccessNone0.050326s0.160898s
Success
chain_thread.cSuccessNone1.053004s1.156560s
Success
ctor_syscall_test.cSuccessNone0.041595s0.129167s
Success
cxa_atexit_test.cSuccessNone0.047227s0.133514s
Success
execve_shebang.cSuccessNone0.051431s0.148990s
Success
exit.cSuccessNone0.049046s0.133847s
Success
exit_failure.cSuccessNone0.051148s0.147426s
Success
exit_group_thread.cSuccessNone0.052884s0.154412s
Success
flockfile_test.cSuccessNone0.052518s0.169103s
Success
fork2malloc.cSuccessNone0.052068s0.156045s
Success
fork_select.cSuccessNone0.051277s0.162629s
Success
fork_simple.cSuccessNone0.048643s0.143296s
Success
fork_syscall.cSuccessNone0.056073s0.301247s
Success
fork_tls_ctype.cSuccessNone0.056093s0.181994s
Success
forkandopen.cSuccessNone0.054405s0.175666s
Success
forkdup.cSuccessNone0.057152s0.163219s
Success
forkexecuid.cSuccessNone0.051063s0.222900s
Success
forkexecv-arg.cSuccessNone0.051256s0.202711s
Success
forkexecv.cSuccessNone0.048505s0.205210s
Success
forkfiles.cSuccessNone0.053481s0.165252s
Success
forkmalloc.cSuccessNone0.063271s0.151418s
Success
forknodup.cSuccessNone0.052512s0.165730s
Success
function-ptr.cSuccessNone0.047687s0.134668s
Success
getegid_syscall.cSuccessNone0.051986s0.269224s
Success
getgid_syscall.cSuccessNone0.052893s0.272315s
Success
getpid.cSuccessNone0.044871s0.134111s
Success
getpid_syscall.cSuccessNone0.054482s0.290882s
Success
getppid.cSuccessNone0.051922s0.153796s
Success
getppid_syscall.cSuccessNone0.054738s0.237341s
Success
getuid.cSuccessNone0.052777s0.143085s
Success
getuid_syscall.cSuccessNone0.050984s0.191255s
Success
hello-arg.cSuccessNone0.041980s0.130544s
Success
hello.cSuccessNone0.042532s0.126820s
Success
longjmp.cSuccessNone0.044547s0.137227s
Success
mutex.cSuccessNone2.055485s2.163589s
Success
printf_deadlock_smoke.cSuccessNone0.061918s0.195218s
Success
printf_thread_test.cSuccessNone0.049699s0.160569s
Success
sem_forks.cSuccessNone0.056141s0.163645s
Success
setsid.cSuccessNone0.044320s0.131574s
Success
template.cSuccessNone0.051181s0.164627s
Success
test_exec_nofork.cSuccessNone0.049708s0.197791s
Success
test_unlink_open_file.cSuccessNone0.046716s0.139267s
Success
thread-guard.cSuccessNone0.048856s0.153659s
Success
thread-test.cSuccessNone0.046113s0.143004s
Success
thread.cSuccessNone0.046026s0.140269s
Success
thread_cageid_race.cSuccessNone0.050178s0.175179s
Success
tls_test.cSuccessNone0.049991s0.158334s
Success
uname.cSuccessNone0.044655s0.132329s
Success
wait.cSuccessNone2.048578s2.148969s
Success
waitpid_anychild.cSuccessNone0.051901s0.149098s
Success
waitpid_syscall.cSuccessNone1.051680s1.185739s
Success
waitpid_wnohang.cSuccessNone0.051992s0.155858s
Success
Signal Tests
alarm.cSuccessNone7.050694s7.170536s
Success
eintr_fork_signal.cSuccessNone1.054061s1.170200s
Success
kill.cSuccessNone1.051582s1.153507s
Success
setitimer.cSuccessNone7.051796s7.182063s
Success
sigalrm.cSuccessNone2.051173s2.160322s
Success
sigaltstack.cSuccessNone0.052666s0.154452s
Success
sigchld.cFailureOutput_mismatch1.053661s1.152038s
=== Expected Output ===
Signal Child Test!

=== WASM Output ===

signal-fork.cSuccessNone4.053652s4.156238s
Success
signal-simple.cSuccessNone0.052485s0.146826s
Success
signal_SIGCHLD.cSuccessNone0.050592s0.174645s
Success
signal_fork.cSuccessNone0.047812s0.158902s
Success
signal_int_ignored.cSuccessNone2.051356s2.157351s
Success
signal_kill_cleanup.cSuccessNone1.049795s1.151246s
Success
signal_procmask.cSuccessNone0.045613s0.144772s
Success
signal_read_interrupt.cSuccessNone0.553582s0.667027s
Success
signal_recursive.cSuccessNone0.046334s0.150910s
Success
signal_sa_mask.cSuccessNone0.046890s0.138659s
Success
signal_select_interrupt.cSuccessNone0.556789s0.668972s
Success
signal_write_interrupt.cSuccessNone1.055291s1.167301s
Success
sigpipe.cSuccessNone1.054046s1.171007s
Success
sigprocmask.cSuccessNone1.051700s1.154579s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.043627s0.134348s
Success
Memory Tests
mmap-negative1.cSuccessNone0.137092s0.149864s
Success
mmap-negative2.cSuccessNone0.117070s0.142077s
Success
Signal Tests
signal_resethand.cSuccessNone1.051135s1.154580s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes205
Number of Failures1
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch1
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.049311s0.198649s
Success
chdir_getcwd.cSuccessNone0.048035s0.148395s
Success
chmod.cSuccessNone0.053631s0.158378s
Success
clock_gettime_highlevel.cSuccessNone0.117988s0.322049s
Success
clock_gettime_simple.cSuccessNone0.041589s0.129850s
Success
cloexec.cSuccessNone0.053099s0.221424s
Success
close.cSuccessNone0.058369s0.175469s
Success
creat_access.cSuccessNone0.051586s0.155498s
Success
doubleclose.cSuccessNone0.043606s0.132549s
Success
dup.cSuccessNone0.044945s0.153114s
Success
dup2.cSuccessNone0.050392s0.149441s
Success
dup3.cSuccessNone0.048533s0.157260s
Success
dupwrite.cSuccessNone0.051874s0.143319s
Success
etc_conf.cSuccessNone0.046449s0.153979s
Success
fchdir.cSuccessNone0.053528s0.162617s
Success
fchmod.cSuccessNone0.052797s0.158689s
Success
fcntl.cSuccessNone0.050076s0.151900s
Success
fdatasync.cSuccessNone0.049587s0.139398s
Success
filetest.cSuccessNone0.051689s0.145337s
Success
filetest1000.cSuccessNone0.059747s0.159883s
Success
flock.cSuccessNone0.059636s0.191950s
Success
fstat.cSuccessNone0.052001s0.159139s
Success
fstatfs.cSuccessNone0.044427s0.139639s
Success
fsync.cSuccessNone0.050507s0.142649s
Success
ftruncate.cSuccessNone0.057206s0.277026s
Success
getcwd.cSuccessNone0.046683s0.140632s
Success
getrandom.cSuccessNone0.052210s0.150310s
Success
ioctl.cSuccessNone0.053306s0.152669s
Success
link.cSuccessNone0.056163s0.213151s
Success
locale_test.cSuccessNone0.065558s0.654397s
Success
lseek.cSuccessNone0.054558s0.268639s
Success
lstat.cSuccessNone0.055991s0.173892s
Success
mkdir_rmdir.cSuccessNone0.050820s0.150969s
Success
mkfifo_test.cSuccessNone0.056597s0.195350s
Success
mknod.cSuccessNone0.049179s0.162939s
Success
nocancel_io.cSuccessNone0.055374s0.184114s
Success
open.cSuccessNone0.047151s0.132894s
Success
openat.cSuccessNone0.046886s0.145780s
Success
path_conversion_safety.cSuccessNone0.056101s0.182414s
Success
pread_pwrite.cSuccessNone0.049261s0.159045s
Success
preadv_pwritev.cSuccessNone0.053926s0.167174s
Success
printf.cSuccessNone0.043579s0.127542s
Success
prlimit64.cSuccessNone0.045172s0.133948s
Success
read.cSuccessNone0.052304s0.154773s
Success
readbytes.cSuccessNone0.047934s0.149509s
Success
readdir_basic.cSuccessNone0.056315s0.179523s
Success
readlink.cSuccessNone0.050597s0.152546s
Success
readlinkat.cSuccessNone0.053303s0.162739s
Success
readv_writev_test.cSuccessNone0.054563s0.161777s
Success
rename.cSuccessNone0.052879s0.156015s
Success
sc-writev.cSuccessNone0.049055s0.153532s
Success
stat.cSuccessNone0.052300s0.155973s
Success
statfs.cSuccessNone0.044464s0.137508s
Success
symlink.cSuccessNone0.054325s0.191518s
Success
sync_file_range.cSuccessNone0.047765s0.144110s
Success
timespec_time_t_compat.cSuccessNone0.048376s0.134928s
Success
truncate.cSuccessNone0.053423s0.165827s
Success
unlink.cSuccessNone0.053029s0.201420s
Success
unlinkat.cSuccessNone0.053450s0.170168s
Success
write.cSuccessNone0.046726s0.131449s
Success
writeloop.cSuccessNone0.053954s0.141394s
Success
writepartial.cSuccessNone0.051873s0.136945s
Success
writev.cSuccessNone0.052396s0.157412s
Success
Math Tests
math_link_smoke.cSuccessNone0.056567s0.148639s
Success
math_tests.cSuccessNone0.061848s0.175742s
Success
Memory Tests
brk.cSuccessNone0.048552s0.139288s
Success
fork_large_memory.cSuccessNone0.080894s0.410400s
Success
malloc.cSuccessNone0.045635s0.130658s
Success
malloc_large.cSuccessNone0.047486s0.137357s
Success
memcpy.cSuccessNone0.045009s0.130251s
Success
memory_error_test.cSuccessNone0.052078s0.176981s
Success
mmap.cSuccessNone0.042759s0.136058s
Success
mmap_aligned.cSuccessNone0.044976s0.149108s
Success
mmap_complicated.cSuccessNone0.051453s0.155584s
Success
mmap_file.cSuccessNone0.051295s0.152176s
Success
mmap_shared.cSuccessNone0.049169s0.148913s
Success
mmaptest.cSuccessNone0.046050s0.142350s
Success
mprotect.cSuccessNone0.044332s0.133996s
Success
mprotect_boundary.cSuccessNone0.043960s0.148940s
Success
mprotect_end_region.cSuccessNone0.043649s0.141864s
Success
mprotect_middle_region.cSuccessNone0.044227s0.145249s
Success
mprotect_multiple_times.cSuccessNone0.044324s0.145823s
Success
mprotect_same_value.cSuccessNone0.044166s0.137404s
Success
mprotect_spanning_regions.cSuccessNone0.045248s0.158227s
Success
munmap_adjacent_shm.cSuccessNone0.046763s0.151505s
Success
sbrk.cSuccessNone0.046758s0.135785s
Success
segfault.cSuccessNone0.051127s0.164728s
Success
shm.cSuccessNone0.050248s0.154666s
Success
shmtest.cSuccessNone0.044383s0.145551s
Success
thread_malloc_sequential.cSuccessNone0.052183s0.167156s
Success
vtable.cSuccessNone0.056447s0.155230s
Success
Networking Tests
accept4.cSuccessNone0.056309s0.169984s
Success
dns_resolve_test.cSuccessNone0.050614s0.148016s
Success
dnstest.cSuccessNone0.052567s0.162052s
Success
epoll_edge_triggered.cSuccessNone0.208899s0.507140s
Success
epollcreate1.cSuccessNone0.054100s0.161478s
Success
error_handling_net.cSuccessNone0.059860s0.271019s
Success
getaddrinfo_test.cSuccessNone0.055156s0.197125s
Success
getaddrinfo_unspec.cSuccessNone0.052220s0.152396s
Success
gethostname.cSuccessNone0.044710s0.132033s
Success
getifaddrs.cSuccessNone0.052105s0.151834s
Success
getsockname.cSuccessNone0.058329s0.155410s
Success
getsockopt.cSuccessNone0.057479s0.207264s
Success
ipv6_basic.cSuccessNone0.057404s0.206276s
Success
makepipe.cSuccessNone0.044369s0.128839s
Success
nonblocking_eagain.cSuccessNone0.057198s0.219999s
Success
pipe.cSuccessNone0.053516s0.160556s
Success
pipe2.cSuccessNone0.052385s0.151087s
Success
pipeinput.cSuccessNone0.054419s0.176208s
Success
pipeinput2.cSuccessNone0.056285s0.173732s
Success
pipeonestring.cSuccessNone0.054768s0.173910s
Success
pipepong.cSuccessNone0.053584s0.178378s
Success
pipewrite.cSuccessNone0.047737s0.148655s
Success
poll.cSuccessNone0.052199s0.144190s
Success
recvfrom-sendto.cSuccessNone0.052801s0.163889s
Success
sendmsg_recvmsg_test.cSuccessNone0.053412s0.160294s
Success
serverclient.cSuccessNone0.053896s0.162629s
Success
shutdown.cSuccessNone0.053474s0.155390s
Success
shutdown_fork.cSuccessNone0.053077s0.161688s
Success
simple-select.cSuccessNone0.055120s0.175628s
Success
simple_epoll.cSuccessNone0.053167s0.155361s
Success
socket.cSuccessNone0.051433s0.142964s
Success
socket_cloexec.cSuccessNone0.050927s0.148679s
Success
socket_options_advanced.cSuccessNone0.057997s0.232798s
Success
socketepoll.cSuccessNone0.051791s0.148690s
Success
socketpair.cSuccessNone0.051375s0.163040s
Success
socketselect.cSuccessNone0.051123s0.152627s
Success
udp_send_recv.cSuccessNone0.161451s0.320007s
Success
uds-getsockname.cSuccessNone0.052441s0.150161s
Success
uds-nb-select.cSuccessNone2.060001s2.224828s
Success
uds-serverclient.cSuccessNone0.057793s0.194304s
Success
uds-socketselect.cSuccessNone0.052407s0.154351s
Success
writev_socket.cSuccessNone0.056204s0.189053s
Success
Process Tests
barrier_test.cSuccessNone0.050326s0.160898s
Success
chain_thread.cSuccessNone1.053004s1.156560s
Success
ctor_syscall_test.cSuccessNone0.041595s0.129167s
Success
cxa_atexit_test.cSuccessNone0.047227s0.133514s
Success
execve_shebang.cSuccessNone0.051431s0.148990s
Success
exit.cSuccessNone0.049046s0.133847s
Success
exit_failure.cSuccessNone0.051148s0.147426s
Success
exit_group_thread.cSuccessNone0.052884s0.154412s
Success
flockfile_test.cSuccessNone0.052518s0.169103s
Success
fork2malloc.cSuccessNone0.052068s0.156045s
Success
fork_select.cSuccessNone0.051277s0.162629s
Success
fork_simple.cSuccessNone0.048643s0.143296s
Success
fork_syscall.cSuccessNone0.056073s0.301247s
Success
fork_tls_ctype.cSuccessNone0.056093s0.181994s
Success
forkandopen.cSuccessNone0.054405s0.175666s
Success
forkdup.cSuccessNone0.057152s0.163219s
Success
forkexecuid.cSuccessNone0.051063s0.222900s
Success
forkexecv-arg.cSuccessNone0.051256s0.202711s
Success
forkexecv.cSuccessNone0.048505s0.205210s
Success
forkfiles.cSuccessNone0.053481s0.165252s
Success
forkmalloc.cSuccessNone0.063271s0.151418s
Success
forknodup.cSuccessNone0.052512s0.165730s
Success
function-ptr.cSuccessNone0.047687s0.134668s
Success
getegid_syscall.cSuccessNone0.051986s0.269224s
Success
getgid_syscall.cSuccessNone0.052893s0.272315s
Success
getpid.cSuccessNone0.044871s0.134111s
Success
getpid_syscall.cSuccessNone0.054482s0.290882s
Success
getppid.cSuccessNone0.051922s0.153796s
Success
getppid_syscall.cSuccessNone0.054738s0.237341s
Success
getuid.cSuccessNone0.052777s0.143085s
Success
getuid_syscall.cSuccessNone0.050984s0.191255s
Success
hello-arg.cSuccessNone0.041980s0.130544s
Success
hello.cSuccessNone0.042532s0.126820s
Success
longjmp.cSuccessNone0.044547s0.137227s
Success
mutex.cSuccessNone2.055485s2.163589s
Success
printf_deadlock_smoke.cSuccessNone0.061918s0.195218s
Success
printf_thread_test.cSuccessNone0.049699s0.160569s
Success
sem_forks.cSuccessNone0.056141s0.163645s
Success
setsid.cSuccessNone0.044320s0.131574s
Success
template.cSuccessNone0.051181s0.164627s
Success
test_exec_nofork.cSuccessNone0.049708s0.197791s
Success
test_unlink_open_file.cSuccessNone0.046716s0.139267s
Success
thread-guard.cSuccessNone0.048856s0.153659s
Success
thread-test.cSuccessNone0.046113s0.143004s
Success
thread.cSuccessNone0.046026s0.140269s
Success
thread_cageid_race.cSuccessNone0.050178s0.175179s
Success
tls_test.cSuccessNone0.049991s0.158334s
Success
uname.cSuccessNone0.044655s0.132329s
Success
wait.cSuccessNone2.048578s2.148969s
Success
waitpid_anychild.cSuccessNone0.051901s0.149098s
Success
waitpid_syscall.cSuccessNone1.051680s1.185739s
Success
waitpid_wnohang.cSuccessNone0.051992s0.155858s
Success
Signal Tests
alarm.cSuccessNone7.050694s7.170536s
Success
eintr_fork_signal.cSuccessNone1.054061s1.170200s
Success
kill.cSuccessNone1.051582s1.153507s
Success
setitimer.cSuccessNone7.051796s7.182063s
Success
sigalrm.cSuccessNone2.051173s2.160322s
Success
sigaltstack.cSuccessNone0.052666s0.154452s
Success
sigchld.cFailureOutput_mismatch1.053661s1.152038s
=== Expected Output ===
Signal Child Test!

=== WASM Output ===

signal-fork.cSuccessNone4.053652s4.156238s
Success
signal-simple.cSuccessNone0.052485s0.146826s
Success
signal_SIGCHLD.cSuccessNone0.050592s0.174645s
Success
signal_fork.cSuccessNone0.047812s0.158902s
Success
signal_int_ignored.cSuccessNone2.051356s2.157351s
Success
signal_kill_cleanup.cSuccessNone1.049795s1.151246s
Success
signal_procmask.cSuccessNone0.045613s0.144772s
Success
signal_read_interrupt.cSuccessNone0.553582s0.667027s
Success
signal_recursive.cSuccessNone0.046334s0.150910s
Success
signal_sa_mask.cSuccessNone0.046890s0.138659s
Success
signal_select_interrupt.cSuccessNone0.556789s0.668972s
Success
signal_write_interrupt.cSuccessNone1.055291s1.167301s
Success
sigpipe.cSuccessNone1.054046s1.171007s
Success
sigprocmask.cSuccessNone1.051700s1.154579s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.043627s0.134348s
Success
Memory Tests
mmap-negative1.cSuccessNone0.137092s0.149864s
Success
mmap-negative2.cSuccessNone0.117070s0.142077s
Success
Signal Tests
signal_resethand.cSuccessNone1.051135s1.154580s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes206
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
File Tests
chartests.cSuccessNone0.048000s0.187947s
Success
chdir_getcwd.cSuccessNone0.048282s0.147716s
Success
chmod.cSuccessNone0.051743s0.153526s
Success
clock_gettime_highlevel.cSuccessNone0.117758s0.318811s
Success
clock_gettime_simple.cSuccessNone0.041925s0.132025s
Success
cloexec.cSuccessNone0.059336s0.239213s
Success
close.cSuccessNone0.057652s0.177515s
Success
creat_access.cSuccessNone0.050524s0.147094s
Success
doubleclose.cSuccessNone0.042033s0.126917s
Success
dup.cSuccessNone0.043481s0.143304s
Success
dup2.cSuccessNone0.048234s0.145393s
Success
dup3.cSuccessNone0.046581s0.145434s
Success
dupwrite.cSuccessNone0.050111s0.138845s
Success
etc_conf.cSuccessNone0.045298s0.148526s
Success
fchdir.cSuccessNone0.052290s0.154640s
Success
fchmod.cSuccessNone0.053284s0.157619s
Success
fcntl.cSuccessNone0.048846s0.151182s
Success
fdatasync.cSuccessNone0.048675s0.136191s
Success
filetest.cSuccessNone0.050307s0.138473s
Success
filetest1000.cSuccessNone0.056579s0.159106s
Success
flock.cSuccessNone0.059893s0.183945s
Success
fstat.cSuccessNone0.052990s0.160787s
Success
fstatfs.cSuccessNone0.045878s0.136689s
Success
fsync.cSuccessNone0.050389s0.142463s
Success
ftruncate.cSuccessNone0.054426s0.268983s
Success
getcwd.cSuccessNone0.045397s0.132609s
Success
getrandom.cSuccessNone0.049475s0.144601s
Success
ioctl.cSuccessNone0.053998s0.149731s
Success
link.cSuccessNone0.053510s0.207115s
Success
locale_test.cSuccessNone0.062857s0.641783s
Success
lseek.cSuccessNone0.054463s0.265130s
Success
lstat.cSuccessNone0.053109s0.170570s
Success
mkdir_rmdir.cSuccessNone0.049865s0.145760s
Success
mkfifo_test.cSuccessNone0.055050s0.199127s
Success
mknod.cSuccessNone0.049142s0.154861s
Success
nocancel_io.cSuccessNone0.053023s0.174465s
Success
open.cSuccessNone0.044770s0.133331s
Success
openat.cSuccessNone0.045840s0.137205s
Success
path_conversion_safety.cSuccessNone0.054423s0.179141s
Success
pread_pwrite.cSuccessNone0.048618s0.157366s
Success
preadv_pwritev.cSuccessNone0.053831s0.165295s
Success
printf.cSuccessNone0.041478s0.127011s
Success
prlimit64.cSuccessNone0.043732s0.133469s
Success
read.cSuccessNone0.050381s0.150423s
Success
readbytes.cSuccessNone0.045605s0.133083s
Success
readdir_basic.cSuccessNone0.056198s0.172895s
Success
readlink.cSuccessNone0.049678s0.145341s
Success
readlinkat.cSuccessNone0.051928s0.153971s
Success
readv_writev_test.cSuccessNone0.052345s0.163977s
Success
rename.cSuccessNone0.052895s0.151119s
Success
sc-writev.cSuccessNone0.049110s0.148017s
Success
stat.cSuccessNone0.052000s0.150109s
Success
statfs.cSuccessNone0.044094s0.137501s
Success
symlink.cSuccessNone0.052273s0.184092s
Success
sync_file_range.cSuccessNone0.048249s0.143586s
Success
timespec_time_t_compat.cSuccessNone0.047088s0.134134s
Success
truncate.cSuccessNone0.051250s0.161066s
Success
unlink.cSuccessNone0.052901s0.197698s
Success
unlinkat.cSuccessNone0.052617s0.168721s
Success
write.cSuccessNone0.043329s0.125245s
Success
writeloop.cSuccessNone0.051787s0.136663s
Success
writepartial.cSuccessNone0.050153s0.133902s
Success
writev.cSuccessNone0.051387s0.156411s
Success
Math Tests
math_link_smoke.cSuccessNone0.053986s0.139238s
Success
math_tests.cSuccessNone0.056167s0.167445s
Success
Memory Tests
brk.cSuccessNone0.048306s0.136120s
Success
fork_large_memory.cSuccessNone0.080443s0.393608s
Success
malloc.cSuccessNone0.045296s0.126059s
Success
malloc_large.cSuccessNone0.046492s0.132316s
Success
memcpy.cSuccessNone0.046256s0.133239s
Success
memory_error_test.cSuccessNone0.051772s0.170536s
Success
mmap.cSuccessNone0.043518s0.136137s
Success
mmap_aligned.cSuccessNone0.043768s0.144462s
Success
mmap_complicated.cSuccessNone0.051571s0.152195s
Success
mmap_file.cSuccessNone0.050652s0.147435s
Success
mmap_shared.cSuccessNone0.049921s0.148811s
Success
mmaptest.cSuccessNone0.045655s0.138188s
Success
mprotect.cSuccessNone0.043717s0.134089s
Success
mprotect_boundary.cSuccessNone0.044600s0.152488s
Success
mprotect_end_region.cSuccessNone0.045575s0.138497s
Success
mprotect_middle_region.cSuccessNone0.043026s0.143520s
Success
mprotect_multiple_times.cSuccessNone0.044069s0.144387s
Success
mprotect_same_value.cSuccessNone0.044054s0.141303s
Success
mprotect_spanning_regions.cSuccessNone0.044974s0.156739s
Success
munmap_adjacent_shm.cSuccessNone0.046372s0.152177s
Success
sbrk.cSuccessNone0.045556s0.132862s
Success
segfault.cSuccessNone0.052414s0.164427s
Success
shm.cSuccessNone0.051633s0.154676s
Success
shmtest.cSuccessNone0.044177s0.136329s
Success
thread_malloc_sequential.cSuccessNone0.053170s0.165502s
Success
vtable.cSuccessNone0.055439s0.151621s
Success
Networking Tests
accept4.cSuccessNone0.054949s0.166995s
Success
dns_resolve_test.cSuccessNone0.050528s0.145099s
Success
dnstest.cSuccessNone0.049924s0.156036s
Success
epoll_edge_triggered.cSuccessNone0.209986s0.501504s
Success
epollcreate1.cSuccessNone0.051859s0.155050s
Success
error_handling_net.cSuccessNone0.059357s0.264589s
Success
getaddrinfo_test.cSuccessNone0.054990s0.188292s
Success
getaddrinfo_unspec.cSuccessNone0.064783s0.163014s
Success
gethostname.cSuccessNone0.043465s0.130900s
Success
getifaddrs.cSuccessNone0.052245s0.146677s
Success
getsockname.cSuccessNone0.058344s0.149177s
Success
getsockopt.cSuccessNone0.054224s0.199103s
Success
ipv6_basic.cSuccessNone0.056505s0.203848s
Success
makepipe.cSuccessNone0.044220s0.124061s
Success
nonblocking_eagain.cSuccessNone0.055305s0.216346s
Success
pipe.cSuccessNone0.054407s0.155701s
Success
pipe2.cSuccessNone0.051667s0.149764s
Success
pipeinput.cSuccessNone0.054188s0.166919s
Success
pipeinput2.cSuccessNone0.054164s0.169084s
Success
pipeonestring.cSuccessNone0.055453s0.171202s
Success
pipepong.cSuccessNone0.052085s0.169823s
Success
pipewrite.cSuccessNone0.047374s0.149478s
Success
poll.cSuccessNone0.054178s0.139139s
Success
recvfrom-sendto.cSuccessNone0.051829s0.158768s
Success
sendmsg_recvmsg_test.cSuccessNone0.051938s0.156098s
Success
serverclient.cSuccessNone0.053104s0.153852s
Success
shutdown.cSuccessNone0.054248s0.152517s
Success
shutdown_fork.cSuccessNone0.051599s0.161137s
Success
simple-select.cSuccessNone0.053191s0.166173s
Success
simple_epoll.cSuccessNone0.051079s0.153258s
Success
socket.cSuccessNone0.050345s0.140167s
Success
socket_cloexec.cSuccessNone0.049972s0.141238s
Success
socket_options_advanced.cSuccessNone0.056342s0.220553s
Success
socketepoll.cSuccessNone0.048929s0.142745s
Success
socketpair.cSuccessNone0.049210s0.151812s
Success
socketselect.cSuccessNone0.051622s0.146110s
Success
udp_send_recv.cSuccessNone0.158534s0.312808s
Success
uds-getsockname.cSuccessNone0.052059s0.145454s
Success
uds-nb-select.cSuccessNone2.059486s2.218604s
Success
uds-serverclient.cSuccessNone0.056109s0.184674s
Success
uds-socketselect.cSuccessNone0.051177s0.151461s
Success
writev_socket.cSuccessNone0.053810s0.193997s
Success
Process Tests
barrier_test.cSuccessNone0.049991s0.149064s
Success
chain_thread.cSuccessNone1.052348s1.159133s
Success
ctor_syscall_test.cSuccessNone0.041280s0.128755s
Success
cxa_atexit_test.cSuccessNone0.046784s0.132991s
Success
execve_shebang.cSuccessNone0.051363s0.146308s
Success
exit.cSuccessNone0.047741s0.137354s
Success
exit_failure.cSuccessNone0.051349s0.147688s
Success
exit_group_thread.cSuccessNone0.052517s0.156538s
Success
flockfile_test.cSuccessNone0.051278s0.165384s
Success
fork2malloc.cSuccessNone0.052562s0.152404s
Success
fork_select.cSuccessNone0.049329s0.154423s
Success
fork_simple.cSuccessNone0.049946s0.146456s
Success
fork_syscall.cSuccessNone0.055380s0.308316s
Success
fork_tls_ctype.cSuccessNone0.053734s0.174551s
Success
forkandopen.cSuccessNone0.052018s0.166055s
Success
forkdup.cSuccessNone0.056030s0.163365s
Success
forkexecuid.cSuccessNone0.048392s0.219066s
Success
forkexecv-arg.cSuccessNone0.050129s0.199808s
Success
forkexecv.cSuccessNone0.047810s0.199871s
Success
forkfiles.cSuccessNone0.053113s0.160849s
Success
forkmalloc.cSuccessNone0.060481s0.147457s
Success
forknodup.cSuccessNone0.052841s0.160861s
Success
function-ptr.cSuccessNone0.046196s0.133208s
Success
getegid_syscall.cSuccessNone0.052349s0.262565s
Success
getgid_syscall.cSuccessNone0.051538s0.266573s
Success
getpid.cSuccessNone0.044264s0.125437s
Success
getpid_syscall.cSuccessNone0.054060s0.286438s
Success
getppid.cSuccessNone0.052018s0.150862s
Success
getppid_syscall.cSuccessNone0.054670s0.233866s
Success
getuid.cSuccessNone0.051981s0.142250s
Success
getuid_syscall.cSuccessNone0.050371s0.187388s
Success
hello-arg.cSuccessNone0.041519s0.131639s
Success
hello.cSuccessNone0.044462s0.124907s
Success
longjmp.cSuccessNone0.043330s0.131310s
Success
mutex.cSuccessNone2.056079s2.160922s
Success
printf_deadlock_smoke.cSuccessNone0.059721s0.188983s
Success
printf_thread_test.cSuccessNone0.053139s0.161505s
Success
sem_forks.cSuccessNone0.054536s0.166199s
Success
setsid.cSuccessNone0.043739s0.129160s
Success
template.cSuccessNone0.050994s0.166194s
Success
test_exec_nofork.cSuccessNone0.049024s0.198092s
Success
test_unlink_open_file.cSuccessNone0.045893s0.139069s
Success
thread-guard.cSuccessNone0.050225s0.153573s
Success
thread-test.cSuccessNone0.047676s0.141875s
Success
thread.cSuccessNone0.046622s0.138242s
Success
thread_cageid_race.cSuccessNone0.047390s0.171315s
Success
tls_test.cSuccessNone0.049627s0.148905s
Success
uname.cSuccessNone0.044121s0.131607s
Success
wait.cSuccessNone2.048345s2.147105s
Success
waitpid_anychild.cSuccessNone0.051579s0.149333s
Success
waitpid_syscall.cSuccessNone1.051782s1.191255s
Success
waitpid_wnohang.cSuccessNone0.051251s0.147529s
Success
Signal Tests
alarm.cSuccessNone7.051362s7.176171s
Success
eintr_fork_signal.cSuccessNone1.052740s1.170863s
Success
kill.cSuccessNone1.051476s1.154549s
Success
setitimer.cSuccessNone7.053734s7.182094s
Success
sigalrm.cSuccessNone2.052701s2.165373s
Success
sigaltstack.cSuccessNone0.054677s0.156623s
Success
sigchld.cSuccessNone1.053303s1.154336s
Success
signal-fork.cSuccessNone4.053746s4.159693s
Success
signal-simple.cSuccessNone0.052983s0.144115s
Success
signal_SIGCHLD.cSuccessNone0.050447s0.151438s
Success
signal_fork.cSuccessNone0.048054s0.160864s
Success
signal_int_ignored.cSuccessNone2.052074s2.156726s
Success
signal_kill_cleanup.cSuccessNone1.050542s1.152271s
Success
signal_procmask.cSuccessNone0.048147s0.145048s
Success
signal_read_interrupt.cSuccessNone0.554852s0.669189s
Success
signal_recursive.cSuccessNone0.046886s0.154031s
Success
signal_sa_mask.cSuccessNone0.045978s0.139848s
Success
signal_select_interrupt.cSuccessNone0.556286s0.671819s
Success
signal_write_interrupt.cSuccessNone1.053916s1.163999s
Success
sigpipe.cSuccessNone1.053862s1.170887s
Success
sigprocmask.cSuccessNone1.053638s1.152954s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.042970s0.128400s
Success
Memory Tests
mmap-negative1.cSuccessNone0.109887s0.134491s
Success
mmap-negative2.cSuccessNone0.117848s0.168305s
Success
Signal Tests
signal_resethand.cSuccessNone1.050585s1.152971s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
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:

interposing-calls/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:

interposing-calls/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] 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: 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:

interposing-calls/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
[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
[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:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[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 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 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: 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:

race-test_grate.cSuccess
STDOUT:
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/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 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: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 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 Cases206
Number of Successes206
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
File Tests
chartests.cSuccessNone0.046098s0.187086s
Success
chdir_getcwd.cSuccessNone0.048180s0.146173s
Success
chmod.cSuccessNone0.052593s0.155344s
Success
clock_gettime_highlevel.cSuccessNone0.117683s0.317695s
Success
clock_gettime_simple.cSuccessNone0.041104s0.127612s
Success
cloexec.cSuccessNone0.050985s0.214488s
Success
close.cSuccessNone0.059469s0.170820s
Success
creat_access.cSuccessNone0.050790s0.146653s
Success
doubleclose.cSuccessNone0.042329s0.124244s
Success
dup.cSuccessNone0.043248s0.143688s
Success
dup2.cSuccessNone0.048448s0.142332s
Success
dup3.cSuccessNone0.046164s0.145106s
Success
dupwrite.cSuccessNone0.049726s0.138564s
Success
etc_conf.cSuccessNone0.044465s0.148912s
Success
fchdir.cSuccessNone0.052509s0.154808s
Success
fchmod.cSuccessNone0.051784s0.153930s
Success
fcntl.cSuccessNone0.050853s0.148805s
Success
fdatasync.cSuccessNone0.048458s0.136176s
Success
filetest.cSuccessNone0.049578s0.138210s
Success
filetest1000.cSuccessNone0.057006s0.154133s
Success
flock.cSuccessNone0.058832s0.181149s
Success
fstat.cSuccessNone0.051684s0.152770s
Success
fstatfs.cSuccessNone0.044232s0.133789s
Success
fsync.cSuccessNone0.048588s0.136903s
Success
ftruncate.cSuccessNone0.053753s0.266904s
Success
getcwd.cSuccessNone0.045815s0.134296s
Success
getrandom.cSuccessNone0.049030s0.144855s
Success
ioctl.cSuccessNone0.051871s0.145481s
Success
link.cSuccessNone0.053929s0.204445s
Success
locale_test.cSuccessNone0.062856s0.645095s
Success
lseek.cSuccessNone0.053979s0.263010s
Success
lstat.cSuccessNone0.053232s0.164030s
Success
mkdir_rmdir.cSuccessNone0.049965s0.147330s
Success
mkfifo_test.cSuccessNone0.055419s0.191417s
Success
mknod.cSuccessNone0.048582s0.153057s
Success
nocancel_io.cSuccessNone0.053422s0.176007s
Success
open.cSuccessNone0.044830s0.129371s
Success
openat.cSuccessNone0.045085s0.138976s
Success
path_conversion_safety.cSuccessNone0.053186s0.173185s
Success
pread_pwrite.cSuccessNone0.046761s0.153287s
Success
preadv_pwritev.cSuccessNone0.052452s0.162778s
Success
printf.cSuccessNone0.041420s0.122038s
Success
prlimit64.cSuccessNone0.042990s0.129897s
Success
read.cSuccessNone0.050395s0.148526s
Success
readbytes.cSuccessNone0.045943s0.135036s
Success
readdir_basic.cSuccessNone0.053156s0.168642s
Success
readlink.cSuccessNone0.049683s0.147094s
Success
readlinkat.cSuccessNone0.051903s0.154460s
Success
readv_writev_test.cSuccessNone0.051709s0.157365s
Success
rename.cSuccessNone0.052599s0.145348s
Success
sc-writev.cSuccessNone0.048467s0.142999s
Success
stat.cSuccessNone0.055655s0.148979s
Success
statfs.cSuccessNone0.044847s0.143048s
Success
symlink.cSuccessNone0.052695s0.183101s
Success
sync_file_range.cSuccessNone0.048196s0.142991s
Success
timespec_time_t_compat.cSuccessNone0.046879s0.132903s
Success
truncate.cSuccessNone0.051595s0.160861s
Success
unlink.cSuccessNone0.052055s0.194556s
Success
unlinkat.cSuccessNone0.051223s0.163845s
Success
write.cSuccessNone0.043146s0.125972s
Success
writeloop.cSuccessNone0.052220s0.137485s
Success
writepartial.cSuccessNone0.050106s0.130869s
Success
writev.cSuccessNone0.051324s0.155145s
Success
Math Tests
math_link_smoke.cSuccessNone0.054046s0.133298s
Success
math_tests.cSuccessNone0.057363s0.169612s
Success
Memory Tests
brk.cSuccessNone0.047463s0.137116s
Success
fork_large_memory.cSuccessNone0.083742s0.407417s
Success
malloc.cSuccessNone0.045445s0.126932s
Success
malloc_large.cSuccessNone0.046514s0.132589s
Success
memcpy.cSuccessNone0.045736s0.130832s
Success
memory_error_test.cSuccessNone0.053110s0.177472s
Success
mmap.cSuccessNone0.043120s0.138983s
Success
mmap_aligned.cSuccessNone0.044582s0.149292s
Success
mmap_complicated.cSuccessNone0.050389s0.152937s
Success
mmap_file.cSuccessNone0.050241s0.146409s
Success
mmap_shared.cSuccessNone0.052109s0.157555s
Success
mmaptest.cSuccessNone0.045841s0.139625s
Success
mprotect.cSuccessNone0.044226s0.134899s
Success
mprotect_boundary.cSuccessNone0.044881s0.152880s
Success
mprotect_end_region.cSuccessNone0.045022s0.143965s
Success
mprotect_middle_region.cSuccessNone0.043516s0.144858s
Success
mprotect_multiple_times.cSuccessNone0.043528s0.145353s
Success
mprotect_same_value.cSuccessNone0.044275s0.139566s
Success
mprotect_spanning_regions.cSuccessNone0.044554s0.157356s
Success
munmap_adjacent_shm.cSuccessNone0.047285s0.155487s
Success
sbrk.cSuccessNone0.045514s0.131441s
Success
segfault.cSuccessNone0.051913s0.164254s
Success
shm.cSuccessNone0.049990s0.156031s
Success
shmtest.cSuccessNone0.045874s0.141720s
Success
thread_malloc_sequential.cSuccessNone0.051886s0.169113s
Success
vtable.cSuccessNone0.056023s0.152463s
Success
Networking Tests
accept4.cSuccessNone0.056183s0.168542s
Success
dns_resolve_test.cSuccessNone0.049717s0.143765s
Success
dnstest.cSuccessNone0.049582s0.151642s
Success
epoll_edge_triggered.cSuccessNone0.209314s0.496600s
Success
epollcreate1.cSuccessNone0.053131s0.157122s
Success
error_handling_net.cSuccessNone0.058297s0.264913s
Success
getaddrinfo_test.cSuccessNone0.053993s0.189330s
Success
getaddrinfo_unspec.cSuccessNone0.061593s0.153464s
Success
gethostname.cSuccessNone0.044713s0.128788s
Success
getifaddrs.cSuccessNone0.051856s0.147487s
Success
getsockname.cSuccessNone0.057566s0.153611s
Success
getsockopt.cSuccessNone0.053993s0.196198s
Success
ipv6_basic.cSuccessNone0.055827s0.202148s
Success
makepipe.cSuccessNone0.043667s0.128354s
Success
nonblocking_eagain.cSuccessNone0.055598s0.212142s
Success
pipe.cSuccessNone0.053317s0.157194s
Success
pipe2.cSuccessNone0.052420s0.145317s
Success
pipeinput.cSuccessNone0.053981s0.167917s
Success
pipeinput2.cSuccessNone0.054204s0.171711s
Success
pipeonestring.cSuccessNone0.054466s0.168394s
Success
pipepong.cSuccessNone0.052321s0.170258s
Success
pipewrite.cSuccessNone0.046668s0.145570s
Success
poll.cSuccessNone0.051106s0.137362s
Success
recvfrom-sendto.cSuccessNone0.055802s0.172404s
Success
sendmsg_recvmsg_test.cSuccessNone0.052255s0.153546s
Success
serverclient.cSuccessNone0.052146s0.149627s
Success
shutdown.cSuccessNone0.053419s0.149931s
Success
shutdown_fork.cSuccessNone0.051997s0.154548s
Success
simple-select.cSuccessNone0.053042s0.169039s
Success
simple_epoll.cSuccessNone0.051376s0.155886s
Success
socket.cSuccessNone0.050003s0.138271s
Success
socket_cloexec.cSuccessNone0.050121s0.138684s
Success
socket_options_advanced.cSuccessNone0.057537s0.222911s
Success
socketepoll.cSuccessNone0.049647s0.143912s
Success
socketpair.cSuccessNone0.049990s0.151231s
Success
socketselect.cSuccessNone0.050605s0.151170s
Success
udp_send_recv.cSuccessNone0.159444s0.322954s
Success
uds-getsockname.cSuccessNone0.050761s0.144307s
Success
uds-nb-select.cSuccessNone2.060907s2.219276s
Success
uds-serverclient.cSuccessNone0.055150s0.186567s
Success
uds-socketselect.cSuccessNone0.051204s0.147826s
Success
writev_socket.cSuccessNone0.055047s0.185223s
Success
Process Tests
barrier_test.cSuccessNone0.050406s0.153551s
Success
chain_thread.cSuccessNone1.052859s1.158521s
Success
ctor_syscall_test.cSuccessNone0.042316s0.130719s
Success
cxa_atexit_test.cSuccessNone0.047747s0.139987s
Success
execve_shebang.cSuccessNone0.050899s0.151874s
Success
exit.cSuccessNone0.050465s0.135844s
Success
exit_failure.cSuccessNone0.051111s0.152377s
Success
exit_group_thread.cSuccessNone0.053415s0.157669s
Success
flockfile_test.cSuccessNone0.050720s0.166580s
Success
fork2malloc.cSuccessNone0.052911s0.151029s
Success
fork_select.cSuccessNone0.049847s0.156662s
Success
fork_simple.cSuccessNone0.048250s0.139546s
Success
fork_syscall.cSuccessNone0.054894s0.290150s
Success
fork_tls_ctype.cSuccessNone0.054841s0.175209s
Success
forkandopen.cSuccessNone0.053067s0.170696s
Success
forkdup.cSuccessNone0.055512s0.163937s
Success
forkexecuid.cSuccessNone0.049184s0.215839s
Success
forkexecv-arg.cSuccessNone0.050365s0.205783s
Success
forkexecv.cSuccessNone0.047407s0.193495s
Success
forkfiles.cSuccessNone0.051232s0.158166s
Success
forkmalloc.cSuccessNone0.062366s0.148273s
Success
forknodup.cSuccessNone0.053220s0.165910s
Success
function-ptr.cSuccessNone0.045940s0.135844s
Success
getegid_syscall.cSuccessNone0.052120s0.270666s
Success
getgid_syscall.cSuccessNone0.052723s0.263505s
Success
getpid.cSuccessNone0.043889s0.126580s
Success
getpid_syscall.cSuccessNone0.054509s0.284108s
Success
getppid.cSuccessNone0.052722s0.151714s
Success
getppid_syscall.cSuccessNone0.054998s0.237327s
Success
getuid.cSuccessNone0.051855s0.140162s
Success
getuid_syscall.cSuccessNone0.051049s0.188835s
Success
hello-arg.cSuccessNone0.041990s0.132910s
Success
hello.cSuccessNone0.041793s0.127056s
Success
longjmp.cSuccessNone0.042636s0.130068s
Success
mutex.cSuccessNone2.057016s2.162522s
Success
printf_deadlock_smoke.cSuccessNone0.059737s0.190020s
Success
printf_thread_test.cSuccessNone0.050296s0.157753s
Success
sem_forks.cSuccessNone0.056179s0.167105s
Success
setsid.cSuccessNone0.045011s0.131704s
Success
template.cSuccessNone0.052150s0.166632s
Success
test_exec_nofork.cSuccessNone0.051399s0.199543s
Success
test_unlink_open_file.cSuccessNone0.047714s0.133632s
Success
thread-guard.cSuccessNone0.047854s0.149614s
Success
thread-test.cSuccessNone0.047858s0.145045s
Success
thread.cSuccessNone0.046365s0.140510s
Success
thread_cageid_race.cSuccessNone0.047076s0.173649s
Success
tls_test.cSuccessNone0.049400s0.152484s
Success
uname.cSuccessNone0.044811s0.131314s
Success
wait.cSuccessNone2.048792s2.151208s
Success
waitpid_anychild.cSuccessNone0.051568s0.150175s
Success
waitpid_syscall.cSuccessNone1.051698s1.185904s
Success
waitpid_wnohang.cSuccessNone0.052222s0.150380s
Success
Signal Tests
alarm.cSuccessNone7.050236s7.167858s
Success
eintr_fork_signal.cSuccessNone1.052526s1.167820s
Success
kill.cSuccessNone1.050200s1.155109s
Success
setitimer.cSuccessNone7.051875s7.176099s
Success
sigalrm.cSuccessNone2.050691s2.158017s
Success
sigaltstack.cSuccessNone0.052983s0.151514s
Success
sigchld.cSuccessNone1.052516s1.152152s
Success
signal-fork.cSuccessNone4.051737s4.156329s
Success
signal-simple.cSuccessNone0.052198s0.143577s
Success
signal_SIGCHLD.cSuccessNone0.049414s0.149437s
Success
signal_fork.cSuccessNone0.047644s0.156270s
Success
signal_int_ignored.cSuccessNone2.051318s2.154370s
Success
signal_kill_cleanup.cSuccessNone1.048769s1.149972s
Success
signal_procmask.cSuccessNone0.045567s0.142982s
Success
signal_read_interrupt.cSuccessNone0.554398s0.670411s
Success
signal_recursive.cSuccessNone0.045514s0.145011s
Success
signal_sa_mask.cSuccessNone0.045279s0.136118s
Success
signal_select_interrupt.cSuccessNone0.557908s0.671717s
Success
signal_write_interrupt.cSuccessNone1.053788s1.164796s
Success
sigpipe.cSuccessNone1.052913s1.168338s
Success
sigprocmask.cSuccessNone1.050295s1.154795s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
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.042230s0.129424s
Success
Memory Tests
mmap-negative1.cSuccessNone0.124908s0.145028s
Success
mmap-negative2.cSuccessNone0.111957s0.139107s
Success
Signal Tests
signal_resethand.cSuccessNone1.050486s1.154766s
Success

}
weak_alias (__mmap, mmap)
libc_hidden_def (__mmap)
weak_alias (__mmap, mmap) libc_hidden_def (__mmap)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

these should be on separate lines

};
if result as isize == -1 {
let errno = get_errno();
panic!(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think these should be debug panics if they should never happen? if its just an errno we want to return errno tho

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@rennergade could you please explain why they should be debug panics? I didn't understand the comment perfectly

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't really understand what's happening here, in what situations are panics being triggered?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I actually copy pasted both of these error scenarios from before, that is, I modified the overlapping processing of regions logic but didn't think through the error scenarios coming out of that.

But reading through the man page,

On failure, it returns -1, and
errno is set to indicate the error (probably to EINVAL).
The errorno can range from underlying memory not being available to SIGSEGV or misalignment error.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

we basically should only panic if state is corrupted in some unrecoverable way, but we should use lind_debug_panic for that and not use the generic panic, if its just an errno thats normal we want to return that.

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.

shmat_syscall misinterprets any attached user address ≥ 0x80000000 as an error munmap() rounding up page logic potentially causes memory faults

2 participants