Skip to content

symlink implementation#994

Open
moogchi wants to merge 8 commits intomainfrom
symlink_implementation
Open

symlink implementation#994
moogchi wants to merge 8 commits intomainfrom
symlink_implementation

Conversation

@moogchi
Copy link
Copy Markdown
Contributor

@moogchi moogchi commented Mar 29, 2026

Summary

Implements the symlink and symlinkat syscalls to support symbolic link creation in the Lind sandbox. This unblocks ln -s, which requires symlink/symlinkat to create symbolic links.

Before: ln -s linkoriginal newlink silently failed with no symlink created.
After: ln -s linkoriginal newlink successfully creates the symbolic link.

Changes

RawPOSIX (Rust handler)

  • src/rawposix/src/fs_calls.rs: Added symlink_syscall and symlinkat_syscall handlers. Both convert path arguments via sc_convert_path_to_host and delegate to libc::symlink and libc::symlinkat respectively. symlinkat handles AT_FDCWD as a special case, falling back to libc::symlink.
  • src/rawposix/src/syscall_table.rs: Registered symlink_syscall at syscall number 88 and symlinkat_syscall at 266.

glibc

  • src/glibc/lind_syscall/lind_syscall_num.h: Added SYMLINK_SYSCALL 88 and SYMLINKAT_SYSCALL 266.
  • src/glibc/sysdeps/unix/sysv/linux/symlink.c: Replaced original implementation with MAKE_LEGACY_SYSCALL to route through the 3i dispatcher. Uses TRANSLATE_GUEST_POINTER_TO_HOST for pointer translation.
  • src/glibc/sysdeps/unix/sysv/linux/symlinkat.c: Created new file (previously only a stub existed in io/symlinkat.c returning ENOSYS). Routes through 3i dispatcher with pointer translation for both path arguments.

Tests

  • tests/unit-tests/file_tests/deterministic/symlink.c: Verifies symlink and symlinkat create symbolic links correctly, validates target via readlink, verifies lstat detects symlink type, confirms read-through works, and checks EEXIST error case.

How it works

glibc's ln -s calls __symlink() which now uses MAKE_LEGACY_SYSCALL to route through the 3i dispatcher to the symlink_syscall Rust handler. The handler converts the path arguments and delegates directly to libc::symlink on the host. symlinkat follows the same pattern, mirroring the existing readlinkat implementation.

Impact

  • Enables symbolic link creation (ln -s) in the Lind sandbox
  • Enables any application that calls symlink/symlinkat

Related

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases198
Number of Successes197
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.046102s4.342057s
Success
chdir_getcwd.cSuccessNone0.047733s4.406198s
Success
chmod.cSuccessNone0.059694s4.389135s
Success
clock_gettime_highlevel.cSuccessNone0.118218s4.517619s
Success
clock_gettime_simple.cSuccessNone0.041150s4.281927s
Success
cloexec.cSuccessNone0.050639s3.997471s
Success
close.cSuccessNone0.059512s4.392790s
Success
creat_access.cSuccessNone0.048993s4.297772s
Success
doubleclose.cSuccessNone0.041877s3.931802s
Success
dup.cSuccessNone0.045669s4.381605s
Success
dup2.cSuccessNone0.049157s4.010273s
Success
dup3.cSuccessNone0.047005s4.333654s
Success
dupwrite.cSuccessNone0.051070s3.928151s
Success
etc_conf.cSuccessNone0.044238s4.364609s
Success
fchdir.cSuccessNone0.053146s4.334351s
Success
fchmod.cSuccessNone0.051586s4.309760s
Success
fcntl.cSuccessNone0.049504s4.352094s
Success
fdatasync.cSuccessNone0.051161s4.325887s
Success
filetest.cSuccessNone0.048486s3.951179s
Success
filetest1000.cSuccessNone0.058192s3.985591s
Success
flock.cSuccessNone0.057018s4.379646s
Success
fstat.cSuccessNone0.054087s4.293842s
Success
fstatfs.cSuccessNone0.046731s4.314660s
Success
fsync.cSuccessNone0.048375s4.295799s
Success
ftruncate.cSuccessNone0.055690s4.392100s
Success
getcwd.cSuccessNone0.046311s4.392836s
Success
getrandom.cSuccessNone0.048805s4.312701s
Success
ioctl.cSuccessNone0.054644s4.311773s
Success
link.cSuccessNone0.052285s4.325110s
Success
locale_test.cSuccessNone0.067098s6.217358s
Success
lseek.cSuccessNone0.054673s4.359758s
Success
mkdir_rmdir.cSuccessNone0.050800s4.317361s
Success
mkfifo_test.cSuccessNone0.054918s4.401336s
Success
mknod.cSuccessNone0.050543s4.419212s
Success
nocancel_io.cSuccessNone0.055008s5.570654s
Success
open.cSuccessNone0.047033s4.329008s
Success
openat.cSuccessNone0.044367s4.266347s
Success
path_conversion_safety.cSuccessNone0.053245s4.310057s
Success
pread_pwrite.cSuccessNone0.048172s4.338895s
Success
printf.cSuccessNone0.041263s3.916740s
Success
prlimit64.cSuccessNone0.043782s3.907783s
Success
read.cSuccessNone0.051001s4.321186s
Success
readbytes.cSuccessNone0.047746s3.939886s
Success
readlink.cSuccessNone0.051756s4.384216s
Success
readlinkat.cSuccessNone0.050988s4.331454s
Success
readv_writev_test.cSuccessNone0.051092s4.321037s
Success
rename.cSuccessNone0.052702s4.315074s
Success
sc-writev.cSuccessNone0.051136s4.357307s
Success
stat.cSuccessNone0.050933s4.316647s
Success
statfs.cSuccessNone0.044973s4.286704s
Success
symlink.cFailureFailure_native_running0.052348sN/A
Native execution: Testing symlink() syscall

=== Test 1: Create symbolic link ===
symlink() succeeded

=== Test 2: Verify symlink target via readlink ===
symlink points to correct target: testfiles/symlink_target.txt

=== Test 3: Verify symlink is a symlink (lstat) ===
lstat correctly identifies symlink

=== Test 4: Read through symlink ===
Failed to open symlink for reading: No such file or directory

sync_file_range.cSuccessNone0.049372s4.354403s
Success
timespec_time_t_compat.cSuccessNone0.047314s5.588011s
Success
truncate.cSuccessNone0.052611s4.337334s
Success
unlink.cSuccessNone0.053102s4.378182s
Success
unlinkat.cSuccessNone0.052154s4.393129s
Success
write.cSuccessNone0.042655s3.898211s
Success
writeloop.cSuccessNone0.053449s3.936426s
Success
writepartial.cSuccessNone0.050089s3.882808s
Success
writev.cSuccessNone0.050836s4.328495s
Success
Math Tests
math_link_smoke.cSuccessNone0.053709s3.993152s
Success
math_tests.cSuccessNone0.057479s4.123644s
Success
Memory Tests
brk.cSuccessNone0.047244s4.289637s
Success
fork_large_memory.cSuccessNone0.081224s4.515345s
Success
malloc.cSuccessNone0.045636s3.921354s
Success
malloc_large.cSuccessNone0.047669s4.353950s
Success
memcpy.cSuccessNone0.046500s3.892313s
Success
memory_error_test.cSuccessNone0.051437s4.316359s
Success
mmap.cSuccessNone0.042791s4.318697s
Success
mmap_aligned.cSuccessNone0.044623s4.308603s
Success
mmap_complicated.cSuccessNone0.050729s4.389253s
Success
mmap_file.cSuccessNone0.049643s4.293865s
Success
mmap_shared.cSuccessNone0.049096s4.340654s
Success
mmaptest.cSuccessNone0.045441s4.315944s
Success
mprotect.cSuccessNone0.044760s4.335881s
Success
mprotect_boundary.cSuccessNone0.045733s4.333199s
Success
mprotect_end_region.cSuccessNone0.053632s4.336941s
Success
mprotect_middle_region.cSuccessNone0.043753s4.310972s
Success
mprotect_multiple_times.cSuccessNone0.044510s4.286528s
Success
mprotect_same_value.cSuccessNone0.043182s4.307269s
Success
mprotect_spanning_regions.cSuccessNone0.045015s4.342962s
Success
sbrk.cSuccessNone0.048149s4.317964s
Success
segfault.cSuccessNone0.051463s4.410730s
Success
shm.cSuccessNone0.049578s4.380764s
Success
shmtest.cSuccessNone0.043958s4.289867s
Success
tcache_test.cSuccessNone0.052990s4.514858s
Success
thread_malloc_sequential.cSuccessNone0.052521s4.511302s
Success
vtable.cSuccessNone0.058303s4.038785s
Success
Networking Tests
accept4.cSuccessNone0.056633s4.383425s
Success
dns_resolve_test.cSuccessNone0.051018s6.063016s
Success
dnstest.cSuccessNone0.051091s4.335894s
Success
epoll_edge_triggered.cSuccessNone0.210546s4.545111s
Success
epollcreate1.cSuccessNone0.052980s4.350330s
Success
error_handling_net.cSuccessNone0.061058s4.472861s
Success
getaddrinfo_test.cSuccessNone0.054899s6.078912s
Success
getaddrinfo_unspec.cSuccessNone0.054717s5.997453s
Success
gethostname.cSuccessNone0.044163s3.962190s
Success
getifaddrs.cSuccessNone0.051103s4.423108s
Success
getsockname.cSuccessNone0.052053s4.355269s
Success
getsockopt.cSuccessNone0.054146s4.330895s
Success
ipv6_basic.cSuccessNone0.055776s4.360574s
Success
makepipe.cSuccessNone0.043120s3.904757s
Success
nonblocking_eagain.cSuccessNone0.056186s4.374485s
Success
pipe.cSuccessNone0.052916s4.327559s
Success
pipe2.cSuccessNone0.053214s4.331711s
Success
pipeinput.cSuccessNone0.053484s4.420858s
Success
pipeinput2.cSuccessNone0.053362s4.402384s
Success
pipeonestring.cSuccessNone0.056186s4.440076s
Success
pipepong.cSuccessNone0.052938s4.466633s
Success
pipewrite.cSuccessNone0.047603s4.334765s
Success
poll.cSuccessNone0.051240s4.315815s
Success
recvfrom-sendto.cSuccessNone0.053438s4.376415s
Success
sendmsg_recvmsg_test.cSuccessNone0.051646s4.357409s
Success
serverclient.cSuccessNone0.053383s3.966440s
Success
shutdown.cSuccessNone0.052620s3.974322s
Success
shutdown_fork.cSuccessNone0.052331s4.374514s
Success
simple-select.cSuccessNone0.053683s4.404207s
Success
simple_epoll.cSuccessNone0.051824s4.336913s
Success
socket.cSuccessNone0.050107s3.935332s
Success
socket_cloexec.cSuccessNone0.049428s4.320684s
Success
socket_options_advanced.cSuccessNone0.058139s4.405804s
Success
socketepoll.cSuccessNone0.050179s3.935119s
Success
socketpair.cSuccessNone0.049615s4.370901s
Success
socketselect.cSuccessNone0.049673s4.319834s
Success
udp_send_recv.cSuccessNone0.157335s4.477905s
Success
uds-getsockname.cSuccessNone0.051186s4.309629s
Success
uds-nb-select.cSuccessNone2.059043s6.546266s
Success
uds-serverclient.cSuccessNone0.055482s4.424924s
Success
uds-socketselect.cSuccessNone0.051306s3.947887s
Success
writev_socket.cSuccessNone0.054916s4.780788s
Success
Process Tests
barrier_test.cSuccessNone0.050517s4.514140s
Success
chain_thread.cSuccessNone1.053186s5.565564s
Success
ctor_syscall_test.cSuccessNone0.042236s4.351643s
Success
cxa_atexit_test.cSuccessNone0.047503s3.928582s
Success
execve_shebang.cSuccessNone0.052711s4.365285s
Success
exit.cSuccessNone0.049326s3.964968s
Success
exit_failure.cSuccessNone0.050330s4.025749s
Success
exit_group_thread.cSuccessNone0.053489s4.587114s
Success
flockfile_test.cSuccessNone0.050776s4.527641s
Success
fork2malloc.cSuccessNone0.053728s4.417873s
Success
fork_select.cSuccessNone0.049365s4.437304s
Success
fork_simple.cSuccessNone0.048325s4.325342s
Success
fork_syscall.cSuccessNone0.055471s4.436840s
Success
fork_tls_ctype.cSuccessNone0.053126s4.454291s
Success
forkandopen.cSuccessNone0.051514s4.387703s
Success
forkdup.cSuccessNone0.052682s4.021180s
Success
forkexecuid.cSuccessNone0.050720s4.489988s
Success
forkexecv-arg.cSuccessNone0.050579s4.455786s
Success
forkexecv.cSuccessNone0.047884s4.456115s
Success
forkfiles.cSuccessNone0.051387s4.381995s
Success
forkmalloc.cSuccessNone0.053248s4.421386s
Success
forknodup.cSuccessNone0.053012s4.346354s
Success
function-ptr.cSuccessNone0.046987s4.335616s
Success
getegid_syscall.cSuccessNone0.053716s4.451688s
Success
getgid_syscall.cSuccessNone0.053261s4.400422s
Success
getpid.cSuccessNone0.044755s4.348282s
Success
getpid_syscall.cSuccessNone0.053289s4.432356s
Success
getppid.cSuccessNone0.054034s4.450828s
Success
getppid_syscall.cSuccessNone0.054805s4.444281s
Success
getuid.cSuccessNone0.052735s4.326736s
Success
getuid_syscall.cSuccessNone0.052477s4.413355s
Success
hello-arg.cSuccessNone0.042905s3.956039s
Success
hello.cSuccessNone0.043264s3.958085s
Success
longjmp.cSuccessNone0.042360s3.951719s
Success
mutex.cSuccessNone2.053488s6.593019s
Success
printf_deadlock_smoke.cSuccessNone0.060713s4.624124s
Success
printf_thread_test.cSuccessNone0.051493s4.515709s
Success
sem_forks.cSuccessNone0.056829s4.446349s
Success
setsid.cSuccessNone0.042758s3.918953s
Success
template.cSuccessNone0.050445s4.431849s
Success
test_exec_nofork.cSuccessNone0.049449s4.381284s
Success
test_unlink_open_file.cSuccessNone0.045547s3.899035s
Success
thread-test.cSuccessNone0.046330s4.472680s
Success
thread.cSuccessNone0.048136s4.515953s
Success
thread_cageid_race.cSuccessNone0.048081s4.520221s
Success
tls_test.cSuccessNone0.050316s4.481685s
Success
uname.cSuccessNone0.043966s4.355879s
Success
wait.cSuccessNone2.048814s6.005703s
Success
waitpid_anychild.cSuccessNone0.050008s4.362734s
Success
waitpid_syscall.cSuccessNone1.050976s5.416172s
Success
waitpid_wnohang.cSuccessNone0.052769s4.034548s
Success
Signal Tests
alarm.cSuccessNone7.049491s10.965814s
Success
eintr_fork_signal.cSuccessNone1.053096s5.423593s
Success
kill.cSuccessNone1.061331s5.368089s
Success
setitimer.cSuccessNone7.050400s10.952271s
Success
sigalrm.cSuccessNone2.051580s5.961310s
Success
sigchld.cSuccessNone1.052084s4.977048s
Success
signal-fork.cSuccessNone4.052783s8.037237s
Success
signal-simple.cSuccessNone0.053229s3.949507s
Success
signal_SIGCHLD.cSuccessNone0.048890s4.350487s
Success
signal_fork.cSuccessNone0.047240s4.398843s
Success
signal_int_ignored.cSuccessNone2.050412s6.372672s
Success
signal_kill_cleanup.cSuccessNone1.049599s5.383803s
Success
signal_procmask.cSuccessNone0.045268s4.288530s
Success
signal_recursive.cSuccessNone0.045899s3.923860s
Success
signal_sa_mask.cSuccessNone0.045569s3.918057s
Success
sigpipe.cSuccessNone1.052081s5.394411s
Success
sigprocmask.cSuccessNone1.051903s4.953795s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.110210s4.607752s
Success
mmap-negative2.cSuccessNone0.125036s4.260574s
Success
Signal Tests
signal_resethand.cSuccessNone1.050616s4.993610s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases198
Number of Successes197
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 Failure1
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.046560s4.318833s
Success
chdir_getcwd.cSuccessNone0.047365s4.320713s
Success
chmod.cSuccessNone0.055315s4.316810s
Success
clock_gettime_highlevel.cSuccessNone0.118344s4.519910s
Success
clock_gettime_simple.cSuccessNone0.041884s4.323864s
Success
cloexec.cSuccessNone0.050852s3.976855s
Success
close.cSuccessNone0.057693s4.323061s
Success
creat_access.cSuccessNone0.050235s4.342487s
Success
doubleclose.cSuccessNone0.042508s3.885340s
Success
dup.cSuccessNone0.042591s4.283800s
Success
dup2.cSuccessNone0.048080s3.934917s
Success
dup3.cSuccessNone0.046777s4.323889s
Success
dupwrite.cSuccessNone0.048690s3.906067s
Success
etc_conf.cSuccessNone0.044942s4.277122s
Success
fchdir.cSuccessNone0.052654s4.332158s
Success
fchmod.cSuccessNone0.052039s4.312204s
Success
fcntl.cSuccessNone0.048613s4.300938s
Success
fdatasync.cSuccessNone0.048582s4.267852s
Success
filetest.cSuccessNone0.049480s3.900039s
Success
filetest1000.cSuccessNone0.057094s3.922611s
Success
flock.cSuccessNone0.057376s4.413003s
Success
fstat.cSuccessNone0.052337s4.320812s
Success
fstatfs.cSuccessNone0.046253s4.317440s
Success
fsync.cSuccessNone0.049253s4.300567s
Success
ftruncate.cSuccessNone0.053410s4.344302s
Success
getcwd.cSuccessNone0.047366s4.305455s
Success
getrandom.cSuccessNone0.049499s4.322328s
Success
ioctl.cSuccessNone0.052244s4.337077s
Success
link.cSuccessNone0.052464s4.325112s
Success
locale_test.cSuccessNone0.063001s6.094372s
Success
lseek.cSuccessNone0.055601s4.354820s
Success
mkdir_rmdir.cSuccessNone0.050710s4.302847s
Success
mkfifo_test.cSuccessNone0.055691s4.403143s
Success
mknod.cSuccessNone0.048856s4.318950s
Success
nocancel_io.cSuccessNone0.052984s5.534428s
Success
open.cSuccessNone0.043763s4.290946s
Success
openat.cSuccessNone0.045308s4.272243s
Success
path_conversion_safety.cSuccessNone0.054498s4.304655s
Success
pread_pwrite.cSuccessNone0.046590s4.320169s
Success
printf.cSuccessNone0.040536s3.917191s
Success
prlimit64.cSuccessNone0.042948s3.912160s
Success
read.cSuccessNone0.050660s4.329575s
Success
readbytes.cSuccessNone0.046174s3.921153s
Success
readlink.cSuccessNone0.049212s4.328761s
Success
readlinkat.cSuccessNone0.051064s4.281878s
Success
readv_writev_test.cSuccessNone0.051436s4.305597s
Success
rename.cSuccessNone0.051256s4.312801s
Success
sc-writev.cSuccessNone0.051015s4.281626s
Success
stat.cSuccessNone0.051490s4.291478s
Success
statfs.cSuccessNone0.045745s4.300358s
Success
symlink.cFailureUnknown_Failure0.051938s4.350521s
Testing symlink() syscall

=== Test 1: Create symbolic link ===
symlink() succeeded

=== Test 2: Verify symlink target via readlink ===
Error: symlink points to '/testfiles/symlink_target.txt', expected 'testfiles/symlink_target.txt'

sync_file_range.cSuccessNone0.048934s4.299082s
Success
timespec_time_t_compat.cSuccessNone0.046664s5.522631s
Success
truncate.cSuccessNone0.051197s4.320798s
Success
unlink.cSuccessNone0.052652s4.338484s
Success
unlinkat.cSuccessNone0.051485s4.305601s
Success
write.cSuccessNone0.042899s3.881900s
Success
writeloop.cSuccessNone0.053225s3.918560s
Success
writepartial.cSuccessNone0.050298s3.899240s
Success
writev.cSuccessNone0.050933s4.309580s
Success
Math Tests
math_link_smoke.cSuccessNone0.055552s3.950209s
Success
math_tests.cSuccessNone0.056543s4.099972s
Success
Memory Tests
brk.cSuccessNone0.048292s4.288281s
Success
fork_large_memory.cSuccessNone0.079010s4.468572s
Success
malloc.cSuccessNone0.045649s3.904892s
Success
malloc_large.cSuccessNone0.045927s4.287675s
Success
memcpy.cSuccessNone0.045108s3.883683s
Success
memory_error_test.cSuccessNone0.051275s4.328943s
Success
mmap.cSuccessNone0.042416s4.275473s
Success
mmap_aligned.cSuccessNone0.043994s4.301686s
Success
mmap_complicated.cSuccessNone0.049621s4.359541s
Success
mmap_file.cSuccessNone0.050353s4.294033s
Success
mmap_shared.cSuccessNone0.048651s4.324770s
Success
mmaptest.cSuccessNone0.045093s4.283747s
Success
mprotect.cSuccessNone0.043672s4.301090s
Success
mprotect_boundary.cSuccessNone0.043855s4.333480s
Success
mprotect_end_region.cSuccessNone0.043283s4.311491s
Success
mprotect_middle_region.cSuccessNone0.043829s4.296249s
Success
mprotect_multiple_times.cSuccessNone0.044396s4.287389s
Success
mprotect_same_value.cSuccessNone0.042509s4.270266s
Success
mprotect_spanning_regions.cSuccessNone0.044097s4.293319s
Success
sbrk.cSuccessNone0.044943s4.285964s
Success
segfault.cSuccessNone0.051043s4.352710s
Success
shm.cSuccessNone0.049421s4.367754s
Success
shmtest.cSuccessNone0.043939s4.287170s
Success
tcache_test.cSuccessNone0.053583s4.477523s
Success
thread_malloc_sequential.cSuccessNone0.051290s4.446575s
Success
vtable.cSuccessNone0.056928s3.959826s
Success
Networking Tests
accept4.cSuccessNone0.054921s4.355503s
Success
dns_resolve_test.cSuccessNone0.051436s6.053598s
Success
dnstest.cSuccessNone0.049805s4.293810s
Success
epoll_edge_triggered.cSuccessNone0.207515s4.526949s
Success
epollcreate1.cSuccessNone0.052291s4.332086s
Success
error_handling_net.cSuccessNone0.060347s4.422891s
Success
getaddrinfo_test.cSuccessNone0.053733s6.030690s
Success
getaddrinfo_unspec.cSuccessNone0.051002s6.047737s
Success
gethostname.cSuccessNone0.044508s3.990033s
Success
getifaddrs.cSuccessNone0.051496s4.426916s
Success
getsockname.cSuccessNone0.052474s4.336913s
Success
getsockopt.cSuccessNone0.054732s4.331939s
Success
ipv6_basic.cSuccessNone0.055832s4.344329s
Success
makepipe.cSuccessNone0.044298s3.916415s
Success
nonblocking_eagain.cSuccessNone0.055126s4.350571s
Success
pipe.cSuccessNone0.053388s4.333366s
Success
pipe2.cSuccessNone0.052608s4.298540s
Success
pipeinput.cSuccessNone0.054127s4.372543s
Success
pipeinput2.cSuccessNone0.057749s4.377869s
Success
pipeonestring.cSuccessNone0.053242s4.359763s
Success
pipepong.cSuccessNone0.052113s4.383703s
Success
pipewrite.cSuccessNone0.046807s4.313864s
Success
poll.cSuccessNone0.050536s4.315343s
Success
recvfrom-sendto.cSuccessNone0.053431s4.324016s
Success
sendmsg_recvmsg_test.cSuccessNone0.053333s4.320514s
Success
serverclient.cSuccessNone0.051710s3.921260s
Success
shutdown.cSuccessNone0.052744s3.939604s
Success
shutdown_fork.cSuccessNone0.052934s4.372507s
Success
simple-select.cSuccessNone0.053198s4.363179s
Success
simple_epoll.cSuccessNone0.051090s4.310059s
Success
socket.cSuccessNone0.049854s3.930883s
Success
socket_cloexec.cSuccessNone0.048828s4.304302s
Success
socket_options_advanced.cSuccessNone0.057973s4.360359s
Success
socketepoll.cSuccessNone0.051335s3.965837s
Success
socketpair.cSuccessNone0.049429s4.352529s
Success
socketselect.cSuccessNone0.050053s4.297097s
Success
udp_send_recv.cSuccessNone0.158763s4.525210s
Success
uds-getsockname.cSuccessNone0.051144s4.318581s
Success
uds-nb-select.cSuccessNone2.059272s6.537421s
Success
uds-serverclient.cSuccessNone0.055562s4.390006s
Success
uds-socketselect.cSuccessNone0.051246s3.938226s
Success
writev_socket.cSuccessNone0.054070s4.330598s
Success
Process Tests
barrier_test.cSuccessNone0.049192s4.460249s
Success
chain_thread.cSuccessNone1.051275s5.470642s
Success
ctor_syscall_test.cSuccessNone0.041021s4.288684s
Success
cxa_atexit_test.cSuccessNone0.046711s3.916710s
Success
execve_shebang.cSuccessNone0.050162s4.325354s
Success
exit.cSuccessNone0.047561s3.930430s
Success
exit_failure.cSuccessNone0.049536s3.973844s
Success
exit_group_thread.cSuccessNone0.054105s4.545235s
Success
flockfile_test.cSuccessNone0.050738s4.492763s
Success
fork2malloc.cSuccessNone0.052258s4.343676s
Success
fork_select.cSuccessNone0.049635s4.368641s
Success
fork_simple.cSuccessNone0.048637s4.345748s
Success
fork_syscall.cSuccessNone0.054720s4.414034s
Success
fork_tls_ctype.cSuccessNone0.053776s4.391487s
Success
forkandopen.cSuccessNone0.052089s4.352484s
Success
forkdup.cSuccessNone0.052928s3.978422s
Success
forkexecuid.cSuccessNone0.049632s4.401381s
Success
forkexecv-arg.cSuccessNone0.049082s4.405201s
Success
forkexecv.cSuccessNone0.047122s4.421051s
Success
forkfiles.cSuccessNone0.051553s4.341582s
Success
forkmalloc.cSuccessNone0.051908s4.355678s
Success
forknodup.cSuccessNone0.053002s4.332419s
Success
function-ptr.cSuccessNone0.045121s4.282093s
Success
getegid_syscall.cSuccessNone0.051212s4.365028s
Success
getgid_syscall.cSuccessNone0.051857s4.388348s
Success
getpid.cSuccessNone0.043526s4.269767s
Success
getpid_syscall.cSuccessNone0.052610s4.388416s
Success
getppid.cSuccessNone0.050981s4.360150s
Success
getppid_syscall.cSuccessNone0.054252s4.364054s
Success
getuid.cSuccessNone0.050890s4.291817s
Success
getuid_syscall.cSuccessNone0.049225s4.384063s
Success
hello-arg.cSuccessNone0.041660s3.936385s
Success
hello.cSuccessNone0.041739s3.904828s
Success
longjmp.cSuccessNone0.043166s3.914698s
Success
mutex.cSuccessNone2.053258s6.588755s
Success
printf_deadlock_smoke.cSuccessNone0.060149s4.624835s
Success
printf_thread_test.cSuccessNone0.049001s4.482281s
Success
sem_forks.cSuccessNone0.053478s4.368754s
Success
setsid.cSuccessNone0.042879s3.916322s
Success
template.cSuccessNone0.050172s4.347338s
Success
test_exec_nofork.cSuccessNone0.049548s4.355735s
Success
test_unlink_open_file.cSuccessNone0.045638s3.900180s
Success
thread-test.cSuccessNone0.045855s4.441365s
Success
thread.cSuccessNone0.045405s4.454612s
Success
thread_cageid_race.cSuccessNone0.047129s4.454530s
Success
tls_test.cSuccessNone0.049250s4.464156s
Success
uname.cSuccessNone0.043774s4.280391s
Success
wait.cSuccessNone2.048457s5.986676s
Success
waitpid_anychild.cSuccessNone0.050810s4.350150s
Success
waitpid_syscall.cSuccessNone1.050944s5.367458s
Success
waitpid_wnohang.cSuccessNone0.051083s3.957709s
Success
Signal Tests
alarm.cSuccessNone7.050126s10.956943s
Success
eintr_fork_signal.cSuccessNone1.052890s5.405654s
Success
kill.cSuccessNone1.073820s5.360071s
Success
setitimer.cSuccessNone7.050135s10.948963s
Success
sigalrm.cSuccessNone2.051952s5.937967s
Success
sigchld.cSuccessNone1.052290s4.987550s
Success
signal-fork.cSuccessNone4.052177s8.003895s
Success
signal-simple.cSuccessNone0.055328s3.935432s
Success
signal_SIGCHLD.cSuccessNone0.048893s4.342160s
Success
signal_fork.cSuccessNone0.046648s4.390212s
Success
signal_int_ignored.cSuccessNone2.050905s6.383861s
Success
signal_kill_cleanup.cSuccessNone1.048568s5.374410s
Success
signal_procmask.cSuccessNone0.045324s4.291330s
Success
signal_recursive.cSuccessNone0.045031s3.933410s
Success
signal_sa_mask.cSuccessNone0.044296s3.929359s
Success
sigpipe.cSuccessNone1.051940s5.377627s
Success
sigprocmask.cSuccessNone1.049825s4.967511s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.108639s4.801660s
Success
mmap-negative2.cSuccessNone0.125208s4.284145s
Success
Signal Tests
signal_resethand.cSuccessNone1.050326s4.983221s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases198
Number of Successes196
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 Failure1
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.046784s4.305600s
Success
chdir_getcwd.cSuccessNone0.046897s4.309009s
Success
chmod.cSuccessNone0.056053s4.317923s
Success
clock_gettime_highlevel.cSuccessNone0.120074s4.508850s
Success
clock_gettime_simple.cSuccessNone0.041544s4.299428s
Success
cloexec.cSuccessNone0.052632s4.035333s
Success
close.cSuccessNone0.057961s4.331410s
Success
creat_access.cSuccessNone0.050614s4.320982s
Success
doubleclose.cSuccessNone0.043628s3.914166s
Success
dup.cSuccessNone0.042741s4.285890s
Success
dup2.cSuccessNone0.047931s3.945446s
Success
dup3.cSuccessNone0.046779s4.319447s
Success
dupwrite.cSuccessNone0.050974s3.916010s
Success
etc_conf.cSuccessNone0.048282s4.280451s
Success
fchdir.cSuccessNone0.053044s4.321821s
Success
fchmod.cSuccessNone0.051794s4.326689s
Success
fcntl.cSuccessNone0.049005s4.300264s
Success
fdatasync.cSuccessNone0.048873s4.281642s
Success
filetest.cSuccessNone0.049847s3.920947s
Success
filetest1000.cSuccessNone0.057688s3.936287s
Success
flock.cSuccessNone0.057650s4.418827s
Success
fstat.cSuccessNone0.051695s4.286357s
Success
fstatfs.cSuccessNone0.044943s4.306691s
Success
fsync.cSuccessNone0.050566s4.292059s
Success
ftruncate.cSuccessNone0.054680s4.361500s
Success
getcwd.cSuccessNone0.046531s4.325962s
Success
getrandom.cSuccessNone0.049930s4.336000s
Success
ioctl.cSuccessNone0.053841s4.282166s
Success
link.cSuccessNone0.054558s4.352521s
Success
locale_test.cSuccessNone0.063816s6.185127s
Success
lseek.cSuccessNone0.055279s4.360246s
Success
mkdir_rmdir.cSuccessNone0.050379s4.312057s
Success
mkfifo_test.cSuccessNone0.054881s4.398821s
Success
mknod.cSuccessNone0.049493s4.308519s
Success
nocancel_io.cSuccessNone0.053377s5.513254s
Success
open.cSuccessNone0.044974s4.309137s
Success
openat.cSuccessNone0.044708s4.284885s
Success
path_conversion_safety.cSuccessNone0.055023s4.325522s
Success
pread_pwrite.cSuccessNone0.047008s4.305684s
Success
printf.cSuccessNone0.041832s3.921585s
Success
prlimit64.cSuccessNone0.044090s3.895674s
Success
read.cSuccessNone0.051796s4.278168s
Success
readbytes.cSuccessNone0.047513s3.932822s
Success
readlink.cSuccessNone0.050324s4.307199s
Success
readlinkat.cSuccessNone0.053143s4.282472s
Success
readv_writev_test.cSuccessNone0.052742s4.321555s
Success
rename.cSuccessNone0.052461s4.307501s
Success
sc-writev.cSuccessNone0.050862s4.297256s
Success
stat.cSuccessNone0.051483s4.305370s
Success
statfs.cSuccessNone0.044723s4.287602s
Success
symlink.cFailureFailure_native_running0.053107sN/A
Native execution: Testing symlink() syscall
open target: No such file or directory
sync_file_range.cSuccessNone0.048118s4.309367s
Success
timespec_time_t_compat.cSuccessNone0.045940s5.571314s
Success
truncate.cSuccessNone0.053552s4.353004s
Success
unlink.cSuccessNone0.052452s4.353349s
Success
unlinkat.cSuccessNone0.052204s4.332065s
Success
write.cSuccessNone0.043579s3.901245s
Success
writeloop.cSuccessNone0.054090s3.935769s
Success
writepartial.cSuccessNone0.052223s3.916027s
Success
writev.cSuccessNone0.051411s4.305032s
Success
Math Tests
math_link_smoke.cSuccessNone0.054563s3.939746s
Success
math_tests.cSuccessNone0.057956s4.092223s
Success
Memory Tests
brk.cSuccessNone0.047955s4.294152s
Success
fork_large_memory.cSuccessNone0.083311s4.507645s
Success
malloc.cSuccessNone0.046167s3.931948s
Success
malloc_large.cSuccessNone0.047473s4.287786s
Success
memcpy.cSuccessNone0.046401s3.911357s
Success
memory_error_test.cSuccessNone0.052869s4.332367s
Success
mmap.cSuccessNone0.042473s4.324886s
Success
mmap_aligned.cSuccessNone0.046741s4.317979s
Success
mmap_complicated.cSuccessNone0.053197s4.366635s
Success
mmap_file.cSuccessNone0.050682s4.290883s
Success
mmap_shared.cSuccessNone0.049282s4.351358s
Success
mmaptest.cSuccessNone0.052709s4.323083s
Success
mprotect.cSuccessNone0.044204s4.297568s
Success
mprotect_boundary.cSuccessNone0.044485s4.345637s
Success
mprotect_end_region.cSuccessNone0.044262s4.299170s
Success
mprotect_middle_region.cSuccessNone0.044323s4.290776s
Success
mprotect_multiple_times.cSuccessNone0.044555s4.297695s
Success
mprotect_same_value.cSuccessNone0.043768s4.272700s
Success
mprotect_spanning_regions.cSuccessNone0.045762s4.364419s
Success
sbrk.cSuccessNone0.045500s4.294285s
Success
segfault.cSuccessNone0.051400s4.345638s
Success
shm.cSuccessNone0.049734s4.370982s
Success
shmtest.cSuccessNone0.044409s4.285119s
Success
tcache_test.cFailureLind_wasm_Segmentation_Fault0.054349s4.485365s
tcache reuse: yes
Error: memory fault at wasm address 0xfff7c50c in linear memory of size 0x100000000

Caused by:
wasm trap: out of bounds memory access

thread_malloc_sequential.cSuccessNone0.052997s4.491167s
Success
vtable.cSuccessNone0.058366s3.956166s
Success
Networking Tests
accept4.cSuccessNone0.055258s4.348880s
Success
dns_resolve_test.cSuccessNone0.050453s6.010328s
Success
dnstest.cSuccessNone0.050689s4.297952s
Success
epoll_edge_triggered.cSuccessNone0.207483s4.529629s
Success
epollcreate1.cSuccessNone0.052776s4.339140s
Success
error_handling_net.cSuccessNone0.065307s4.395780s
Success
getaddrinfo_test.cSuccessNone0.054806s6.056030s
Success
getaddrinfo_unspec.cSuccessNone0.075214s6.064527s
Success
gethostname.cSuccessNone0.044145s3.930715s
Success
getifaddrs.cSuccessNone0.052476s4.415982s
Success
getsockname.cSuccessNone0.051791s4.332397s
Success
getsockopt.cSuccessNone0.054243s4.336607s
Success
ipv6_basic.cSuccessNone0.055640s4.359517s
Success
makepipe.cSuccessNone0.044143s3.928013s
Success
nonblocking_eagain.cSuccessNone0.055722s4.361847s
Success
pipe.cSuccessNone0.053173s4.347086s
Success
pipe2.cSuccessNone0.051981s4.294174s
Success
pipeinput.cSuccessNone0.053537s4.364529s
Success
pipeinput2.cSuccessNone0.054494s4.379504s
Success
pipeonestring.cSuccessNone0.054151s4.374383s
Success
pipepong.cSuccessNone0.053638s4.391162s
Success
pipewrite.cSuccessNone0.047623s4.299919s
Success
poll.cSuccessNone0.051245s4.309137s
Success
recvfrom-sendto.cSuccessNone0.053897s4.355953s
Success
sendmsg_recvmsg_test.cSuccessNone0.051731s4.329933s
Success
serverclient.cSuccessNone0.052274s3.945264s
Success
shutdown.cSuccessNone0.054372s3.945841s
Success
shutdown_fork.cSuccessNone0.053189s4.365261s
Success
simple-select.cSuccessNone0.053179s4.356172s
Success
simple_epoll.cSuccessNone0.051301s4.313012s
Success
socket.cSuccessNone0.050275s3.944025s
Success
socket_cloexec.cSuccessNone0.049811s4.351602s
Success
socket_options_advanced.cSuccessNone0.056863s4.358383s
Success
socketepoll.cSuccessNone0.051321s3.949827s
Success
socketpair.cSuccessNone0.049319s4.358598s
Success
socketselect.cSuccessNone0.050459s4.295232s
Success
udp_send_recv.cSuccessNone0.158068s4.516862s
Success
uds-getsockname.cSuccessNone0.051530s4.322064s
Success
uds-nb-select.cSuccessNone2.059269s6.536351s
Success
uds-serverclient.cSuccessNone0.055757s4.384242s
Success
uds-socketselect.cSuccessNone0.053142s3.952068s
Success
writev_socket.cSuccessNone0.053711s4.325060s
Success
Process Tests
barrier_test.cSuccessNone0.049865s4.471715s
Success
chain_thread.cSuccessNone1.052354s5.489934s
Success
ctor_syscall_test.cSuccessNone0.041015s4.280841s
Success
cxa_atexit_test.cSuccessNone0.047844s3.933248s
Success
execve_shebang.cSuccessNone0.052006s4.327731s
Success
exit.cSuccessNone0.048480s3.901543s
Success
exit_failure.cSuccessNone0.051043s3.988752s
Success
exit_group_thread.cSuccessNone0.054153s4.522584s
Success
flockfile_test.cSuccessNone0.050498s4.509618s
Success
fork2malloc.cSuccessNone0.052343s4.370868s
Success
fork_select.cSuccessNone0.050353s4.370354s
Success
fork_simple.cSuccessNone0.048699s4.359317s
Success
fork_syscall.cSuccessNone0.054796s4.415463s
Success
fork_tls_ctype.cSuccessNone0.053242s4.384267s
Success
forkandopen.cSuccessNone0.051990s4.364571s
Success
forkdup.cSuccessNone0.052342s3.993766s
Success
forkexecuid.cSuccessNone0.049418s4.439734s
Success
forkexecv-arg.cSuccessNone0.049205s4.408054s
Success
forkexecv.cSuccessNone0.047544s4.414963s
Success
forkfiles.cSuccessNone0.051783s4.336836s
Success
forkmalloc.cSuccessNone0.052505s4.353317s
Success
forknodup.cSuccessNone0.055573s4.360992s
Success
function-ptr.cSuccessNone0.045497s4.264513s
Success
getegid_syscall.cSuccessNone0.051011s4.363249s
Success
getgid_syscall.cSuccessNone0.051970s4.397277s
Success
getpid.cSuccessNone0.043943s4.285645s
Success
getpid_syscall.cSuccessNone0.053271s4.397109s
Success
getppid.cSuccessNone0.051136s4.401296s
Success
getppid_syscall.cSuccessNone0.055310s4.378503s
Success
getuid.cSuccessNone0.051473s4.329867s
Success
getuid_syscall.cSuccessNone0.050276s4.343644s
Success
hello-arg.cSuccessNone0.044504s3.900398s
Success
hello.cSuccessNone0.042546s3.920972s
Success
longjmp.cSuccessNone0.043214s3.939601s
Success
mutex.cSuccessNone2.053794s6.591918s
Success
printf_deadlock_smoke.cSuccessNone0.060227s4.609565s
Success
printf_thread_test.cSuccessNone0.049142s4.497657s
Success
sem_forks.cSuccessNone0.054115s4.410341s
Success
setsid.cSuccessNone0.044487s3.914197s
Success
template.cSuccessNone0.050673s4.349590s
Success
test_exec_nofork.cSuccessNone0.050455s4.375060s
Success
test_unlink_open_file.cSuccessNone0.045717s3.911405s
Success
thread-test.cSuccessNone0.045689s4.423878s
Success
thread.cSuccessNone0.045862s4.426623s
Success
thread_cageid_race.cSuccessNone0.048157s4.459514s
Success
tls_test.cSuccessNone0.048785s4.471227s
Success
uname.cSuccessNone0.044729s4.280156s
Success
wait.cSuccessNone2.049476s6.002616s
Success
waitpid_anychild.cSuccessNone0.051198s4.377201s
Success
waitpid_syscall.cSuccessNone1.051140s5.392138s
Success
waitpid_wnohang.cSuccessNone0.052121s3.981712s
Success
Signal Tests
alarm.cSuccessNone7.051084s10.950500s
Success
eintr_fork_signal.cSuccessNone1.055237s5.397464s
Success
kill.cSuccessNone1.074928s5.386462s
Success
setitimer.cSuccessNone7.050983s10.963745s
Success
sigalrm.cSuccessNone2.052458s5.956888s
Success
sigchld.cSuccessNone1.054729s4.988880s
Success
signal-fork.cSuccessNone4.052778s7.995665s
Success
signal-simple.cSuccessNone0.055993s3.942591s
Success
signal_SIGCHLD.cSuccessNone0.051158s4.392372s
Success
signal_fork.cSuccessNone0.049725s4.411032s
Success
signal_int_ignored.cSuccessNone2.051690s6.404894s
Success
signal_kill_cleanup.cSuccessNone1.050935s5.401808s
Success
signal_procmask.cSuccessNone0.047356s4.318513s
Success
signal_recursive.cSuccessNone0.046380s3.948746s
Success
signal_sa_mask.cSuccessNone0.044686s3.930601s
Success
sigpipe.cSuccessNone1.054954s5.425180s
Success
sigprocmask.cSuccessNone1.051715s4.983151s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.111789s4.790347s
Success
mmap-negative2.cSuccessNone0.136590s4.430790s
Success
Signal Tests
signal_resethand.cSuccessNone1.049843s4.994750s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases198
Number of Successes197
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 Failure1
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.046586s4.372598s
Success
chdir_getcwd.cSuccessNone0.049317s4.392139s
Success
chmod.cSuccessNone0.058542s4.389437s
Success
clock_gettime_highlevel.cSuccessNone0.119501s4.593458s
Success
clock_gettime_simple.cSuccessNone0.042196s4.357843s
Success
cloexec.cSuccessNone0.053674s4.052888s
Success
close.cSuccessNone0.060058s4.398569s
Success
creat_access.cSuccessNone0.051600s4.379783s
Success
doubleclose.cSuccessNone0.043193s3.945706s
Success
dup.cSuccessNone0.044244s4.365489s
Success
dup2.cSuccessNone0.050433s4.015270s
Success
dup3.cSuccessNone0.047585s4.379643s
Success
dupwrite.cSuccessNone0.052268s3.984441s
Success
etc_conf.cSuccessNone0.046077s4.350567s
Success
fchdir.cSuccessNone0.054447s4.411620s
Success
fchmod.cSuccessNone0.053197s4.367176s
Success
fcntl.cSuccessNone0.050668s4.395356s
Success
fdatasync.cSuccessNone0.050250s4.347707s
Success
filetest.cSuccessNone0.051060s4.020177s
Success
filetest1000.cSuccessNone0.058434s3.969187s
Success
flock.cSuccessNone0.059073s4.453784s
Success
fstat.cSuccessNone0.053894s4.398551s
Success
fstatfs.cSuccessNone0.047356s4.364988s
Success
fsync.cSuccessNone0.049997s4.352511s
Success
ftruncate.cSuccessNone0.054449s4.417786s
Success
getcwd.cSuccessNone0.046442s4.362610s
Success
getrandom.cSuccessNone0.051205s4.412333s
Success
ioctl.cSuccessNone0.053819s4.351620s
Success
link.cSuccessNone0.055030s4.406719s
Success
locale_test.cSuccessNone0.066214s6.243055s
Success
lseek.cSuccessNone0.056856s4.433026s
Success
mkdir_rmdir.cSuccessNone0.052360s4.373431s
Success
mkfifo_test.cSuccessNone0.057787s4.457318s
Success
mknod.cSuccessNone0.050169s4.387150s
Success
nocancel_io.cSuccessNone0.056220s5.575811s
Success
open.cSuccessNone0.045571s4.349914s
Success
openat.cSuccessNone0.046259s4.333865s
Success
path_conversion_safety.cSuccessNone0.056824s4.393145s
Success
pread_pwrite.cSuccessNone0.048305s4.382222s
Success
printf.cSuccessNone0.042763s3.983069s
Success
prlimit64.cSuccessNone0.043864s3.975344s
Success
read.cSuccessNone0.051944s4.345132s
Success
readbytes.cSuccessNone0.047784s3.977209s
Success
readlink.cSuccessNone0.051409s4.378199s
Success
readlinkat.cSuccessNone0.054237s4.385359s
Success
readv_writev_test.cSuccessNone0.053949s4.382943s
Success
rename.cSuccessNone0.053470s4.367408s
Success
sc-writev.cSuccessNone0.050709s4.377626s
Success
stat.cSuccessNone0.051900s4.392120s
Success
statfs.cSuccessNone0.046062s4.354035s
Success
symlink.cFailureUnknown_Failure0.053724s4.412341s
Testing symlink() syscall

=== Test 1: symlink() ===
symlink() succeeded

=== Test 2: readlink() returns correct target ===
readlink() returned correct target: /testfiles/symlink_target.txt

=== Test 3: lstat() identifies symlink ===
Error: expected symlink mode, got 100644

sync_file_range.cSuccessNone0.048874s4.372208s
Success
timespec_time_t_compat.cSuccessNone0.048714s5.685832s
Success
truncate.cSuccessNone0.052914s4.407547s
Success
unlink.cSuccessNone0.055121s4.410181s
Success
unlinkat.cSuccessNone0.053912s4.406738s
Success
write.cSuccessNone0.043743s3.944608s
Success
writeloop.cSuccessNone0.054191s3.992250s
Success
writepartial.cSuccessNone0.053183s3.969968s
Success
writev.cSuccessNone0.053898s4.403558s
Success
Math Tests
math_link_smoke.cSuccessNone0.055969s3.999240s
Success
math_tests.cSuccessNone0.058862s4.156754s
Success
Memory Tests
brk.cSuccessNone0.049867s4.352190s
Success
fork_large_memory.cSuccessNone0.081695s4.540595s
Success
malloc.cSuccessNone0.046765s3.976699s
Success
malloc_large.cSuccessNone0.046719s4.339994s
Success
memcpy.cSuccessNone0.047028s3.938807s
Success
memory_error_test.cSuccessNone0.054557s4.398580s
Success
mmap.cSuccessNone0.043598s4.357970s
Success
mmap_aligned.cSuccessNone0.046531s4.377909s
Success
mmap_complicated.cSuccessNone0.051452s4.425781s
Success
mmap_file.cSuccessNone0.051497s4.359899s
Success
mmap_shared.cSuccessNone0.051641s4.405657s
Success
mmaptest.cSuccessNone0.047323s4.358093s
Success
mprotect.cSuccessNone0.044690s4.372755s
Success
mprotect_boundary.cSuccessNone0.045776s4.380546s
Success
mprotect_end_region.cSuccessNone0.044958s4.393314s
Success
mprotect_middle_region.cSuccessNone0.044843s4.381089s
Success
mprotect_multiple_times.cSuccessNone0.045887s4.348131s
Success
mprotect_same_value.cSuccessNone0.044136s4.341846s
Success
mprotect_spanning_regions.cSuccessNone0.044871s4.365261s
Success
sbrk.cSuccessNone0.046958s4.365249s
Success
segfault.cSuccessNone0.051994s4.404715s
Success
shm.cSuccessNone0.051284s4.444356s
Success
shmtest.cSuccessNone0.046479s4.371489s
Success
tcache_test.cSuccessNone0.056234s4.553800s
Success
thread_malloc_sequential.cSuccessNone0.053837s4.559404s
Success
vtable.cSuccessNone0.060285s4.002556s
Success
Networking Tests
accept4.cSuccessNone0.057208s4.394006s
Success
dns_resolve_test.cSuccessNone0.051691s6.253342s
Success
dnstest.cSuccessNone0.052249s4.406106s
Success
epoll_edge_triggered.cSuccessNone0.211320s4.601013s
Success
epollcreate1.cSuccessNone0.053397s4.385477s
Success
error_handling_net.cSuccessNone0.060923s4.441797s
Success
getaddrinfo_test.cSuccessNone0.056493s6.143444s
Success
getaddrinfo_unspec.cSuccessNone0.056106s6.115718s
Success
gethostname.cSuccessNone0.044952s3.983328s
Success
getifaddrs.cSuccessNone0.055391s4.491635s
Success
getsockname.cSuccessNone0.053876s4.393333s
Success
getsockopt.cSuccessNone0.055658s4.414560s
Success
ipv6_basic.cSuccessNone0.056901s4.440693s
Success
makepipe.cSuccessNone0.045139s3.966473s
Success
nonblocking_eagain.cSuccessNone0.058043s4.431752s
Success
pipe.cSuccessNone0.055522s4.388099s
Success
pipe2.cSuccessNone0.059924s4.638215s
Success
pipeinput.cSuccessNone0.056516s4.453601s
Success
pipeinput2.cSuccessNone0.058206s4.436513s
Success
pipeonestring.cSuccessNone0.054507s4.417012s
Success
pipepong.cSuccessNone0.053496s4.427195s
Success
pipewrite.cSuccessNone0.047713s4.367113s
Success
poll.cSuccessNone0.053933s4.375744s
Success
recvfrom-sendto.cSuccessNone0.055118s4.400718s
Success
sendmsg_recvmsg_test.cSuccessNone0.052681s4.380879s
Success
serverclient.cSuccessNone0.053960s3.995532s
Success
shutdown.cSuccessNone0.055010s4.002334s
Success
shutdown_fork.cSuccessNone0.054008s4.425265s
Success
simple-select.cSuccessNone0.053900s4.458990s
Success
simple_epoll.cSuccessNone0.052950s4.394534s
Success
socket.cSuccessNone0.052366s3.989364s
Success
socket_cloexec.cSuccessNone0.051099s4.367143s
Success
socket_options_advanced.cSuccessNone0.059006s4.423112s
Success
socketepoll.cSuccessNone0.052702s3.996689s
Success
socketpair.cSuccessNone0.052455s4.430032s
Success
socketselect.cSuccessNone0.051591s4.363305s
Success
udp_send_recv.cSuccessNone0.158949s4.593423s
Success
uds-getsockname.cSuccessNone0.052201s4.365611s
Success
uds-nb-select.cSuccessNone2.061478s6.616174s
Success
uds-serverclient.cSuccessNone0.056679s4.443768s
Success
uds-socketselect.cSuccessNone0.053702s3.994081s
Success
writev_socket.cSuccessNone0.062491s4.452609s
Success
Process Tests
barrier_test.cSuccessNone0.051376s4.551022s
Success
chain_thread.cSuccessNone1.054057s5.543277s
Success
ctor_syscall_test.cSuccessNone0.041369s4.352047s
Success
cxa_atexit_test.cSuccessNone0.049229s3.984316s
Success
execve_shebang.cSuccessNone0.052625s4.398301s
Success
exit.cSuccessNone0.049248s3.964016s
Success
exit_failure.cSuccessNone0.052244s4.042443s
Success
exit_group_thread.cSuccessNone0.053938s4.592898s
Success
flockfile_test.cSuccessNone0.053655s4.556298s
Success
fork2malloc.cSuccessNone0.053652s4.432038s
Success
fork_select.cSuccessNone0.049951s4.422746s
Success
fork_simple.cSuccessNone0.049757s4.430700s
Success
fork_syscall.cSuccessNone0.058815s4.488469s
Success
fork_tls_ctype.cSuccessNone0.055568s4.450096s
Success
forkandopen.cSuccessNone0.054790s4.413948s
Success
forkdup.cSuccessNone0.055916s4.042851s
Success
forkexecuid.cSuccessNone0.051383s4.507228s
Success
forkexecv-arg.cSuccessNone0.052442s4.482824s
Success
forkexecv.cSuccessNone0.048684s4.461208s
Success
forkfiles.cSuccessNone0.052434s4.393860s
Success
forkmalloc.cSuccessNone0.053372s4.431680s
Success
forknodup.cSuccessNone0.054243s4.401123s
Success
function-ptr.cSuccessNone0.047755s4.351641s
Success
getegid_syscall.cSuccessNone0.052455s4.445295s
Success
getgid_syscall.cSuccessNone0.053137s4.433054s
Success
getpid.cSuccessNone0.044718s4.340669s
Success
getpid_syscall.cSuccessNone0.054227s4.445711s
Success
getppid.cSuccessNone0.052353s4.455293s
Success
getppid_syscall.cSuccessNone0.055271s4.427574s
Success
getuid.cSuccessNone0.053187s4.366827s
Success
getuid_syscall.cSuccessNone0.052188s4.432468s
Success
hello-arg.cSuccessNone0.042984s3.961407s
Success
hello.cSuccessNone0.043284s4.002752s
Success
longjmp.cSuccessNone0.043318s4.001197s
Success
mutex.cSuccessNone2.056695s6.667590s
Success
printf_deadlock_smoke.cSuccessNone0.061621s4.721263s
Success
printf_thread_test.cSuccessNone0.050652s4.586900s
Success
sem_forks.cSuccessNone0.056423s4.457557s
Success
setsid.cSuccessNone0.044903s3.989456s
Success
template.cSuccessNone0.052226s4.420947s
Success
test_exec_nofork.cSuccessNone0.054234s4.432388s
Success
test_unlink_open_file.cSuccessNone0.046650s3.978020s
Success
thread-test.cSuccessNone0.050317s4.512619s
Success
thread.cSuccessNone0.047237s4.518435s
Success
thread_cageid_race.cSuccessNone0.048476s4.523381s
Success
tls_test.cSuccessNone0.050329s4.559840s
Success
uname.cSuccessNone0.045539s4.369646s
Success
wait.cSuccessNone2.053100s6.026278s
Success
waitpid_anychild.cSuccessNone0.052102s4.415254s
Success
waitpid_syscall.cSuccessNone1.052693s5.432887s
Success
waitpid_wnohang.cSuccessNone0.053513s4.050865s
Success
Signal Tests
alarm.cSuccessNone7.050440s11.034311s
Success
eintr_fork_signal.cSuccessNone1.056270s5.455981s
Success
kill.cSuccessNone1.075610s5.462796s
Success
setitimer.cSuccessNone7.051242s11.029015s
Success
sigalrm.cSuccessNone2.054084s6.048975s
Success
sigchld.cSuccessNone1.054561s5.069822s
Success
signal-fork.cSuccessNone4.054390s8.102364s
Success
signal-simple.cSuccessNone0.056273s4.038659s
Success
signal_SIGCHLD.cSuccessNone0.049613s4.419589s
Success
signal_fork.cSuccessNone0.049686s4.461949s
Success
signal_int_ignored.cSuccessNone2.054024s6.555944s
Success
signal_kill_cleanup.cSuccessNone1.051116s5.447114s
Success
signal_procmask.cSuccessNone0.047964s4.393435s
Success
signal_recursive.cSuccessNone0.046173s3.966274s
Success
signal_sa_mask.cSuccessNone0.046019s3.985164s
Success
sigpipe.cSuccessNone1.056151s5.555439s
Success
sigprocmask.cSuccessNone1.053337s5.048830s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.119283s4.730186s
Success
mmap-negative2.cSuccessNone0.187758s4.231990s
Success
Signal Tests
signal_resethand.cSuccessNone1.051229s5.052217s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases199
Number of Successes197
Number of Failures2
Number of Compilation Failure Native1
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 Failure1
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.045864s4.318149s
Success
chdir_getcwd.cSuccessNone0.046689s4.307421s
Success
chmod.cSuccessNone0.053932s4.293307s
Success
clock_gettime_highlevel.cSuccessNone0.116686s4.461660s
Success
clock_gettime_simple.cSuccessNone0.040486s4.249116s
Success
cloexec.cSuccessNone0.049829s3.979584s
Success
close.cSuccessNone0.056726s4.326558s
Success
creat_access.cSuccessNone0.051022s4.337903s
Success
doubleclose.cSuccessNone0.041326s3.872785s
Success
dup.cSuccessNone0.042333s4.281719s
Success
dup2.cSuccessNone0.047764s3.918251s
Success
dup3.cSuccessNone0.045804s4.311380s
Success
dupwrite.cSuccessNone0.049056s3.887802s
Success
etc_conf.cSuccessNone0.043816s4.306588s
Success
fchdir.cSuccessNone0.052314s4.325194s
Success
fchmod.cSuccessNone0.051404s4.320840s
Success
fcntl.cSuccessNone0.048734s4.293328s
Success
fdatasync.cSuccessNone0.047547s4.302717s
Success
filetest.cSuccessNone0.051010s3.959403s
Success
filetest1000.cSuccessNone0.058109s3.957430s
Success
flock.cSuccessNone0.056948s4.409744s
Success
fstat.cSuccessNone0.051127s4.317146s
Success
fstatfs.cSuccessNone0.043507s4.277472s
Success
fsync.cSuccessNone0.047960s4.293645s
Success
ftruncate.cSuccessNone0.054617s4.329522s
Success
getcwd.cSuccessNone0.045307s4.303834s
Success
getrandom.cSuccessNone0.049768s4.310414s
Success
ioctl.cSuccessNone0.052473s4.298897s
Success
link.cSuccessNone0.052180s4.317652s
Success
locale_test.cSuccessNone0.062516s6.086897s
Success
lseek.cSuccessNone0.053730s4.349263s
Success
lstat.cFailureFailure_native_compiling0.033671sN/A
Native execution: /tmp/wasmtest_artifacts_xy1r_e6_/file_tests/deterministic/lstat.c:78:28: error: call to undeclared library function 'strlen' with type 'unsigned long (const char *)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   78 |     size_t expected_size = strlen(TARGET);
      |                            ^
/tmp/wasmtest_artifacts_xy1r_e6_/file_tests/deterministic/lstat.c:78:28: note: include the header  or explicitly provide a declaration for 'strlen'
1 error generated.
mkdir_rmdir.cSuccessNone0.051974s4.350424s
Success
mkfifo_test.cSuccessNone0.056121s4.400351s
Success
mknod.cSuccessNone0.047635s4.303195s
Success
nocancel_io.cSuccessNone0.053074s5.498356s
Success
open.cSuccessNone0.043630s4.264804s
Success
openat.cSuccessNone0.044378s4.304267s
Success
path_conversion_safety.cSuccessNone0.054691s4.397489s
Success
pread_pwrite.cSuccessNone0.046493s4.295419s
Success
printf.cSuccessNone0.040465s3.927742s
Success
prlimit64.cSuccessNone0.042997s3.911579s
Success
read.cSuccessNone0.051496s4.325181s
Success
readbytes.cSuccessNone0.045696s3.942785s
Success
readlink.cSuccessNone0.048524s4.287518s
Success
readlinkat.cSuccessNone0.050757s4.265097s
Success
readv_writev_test.cSuccessNone0.051380s4.324680s
Success
rename.cSuccessNone0.049944s4.307183s
Success
sc-writev.cSuccessNone0.050941s4.323292s
Success
stat.cSuccessNone0.051333s4.385984s
Success
statfs.cSuccessNone0.044143s4.267861s
Success
symlink.cSuccessNone0.052315s4.352763s
Success
sync_file_range.cSuccessNone0.048162s4.300043s
Success
timespec_time_t_compat.cSuccessNone0.046362s5.531769s
Success
truncate.cSuccessNone0.050592s4.314520s
Success
unlink.cSuccessNone0.052221s4.348366s
Success
unlinkat.cSuccessNone0.050717s4.319280s
Success
write.cSuccessNone0.043713s3.899930s
Success
writeloop.cSuccessNone0.053114s3.900667s
Success
writepartial.cSuccessNone0.050757s3.931040s
Success
writev.cSuccessNone0.052250s4.312849s
Success
Math Tests
math_link_smoke.cSuccessNone0.053289s3.926190s
Success
math_tests.cSuccessNone0.055993s4.118288s
Success
Memory Tests
brk.cSuccessNone0.047725s4.319147s
Success
fork_large_memory.cSuccessNone0.078849s4.506942s
Success
malloc.cSuccessNone0.044904s3.889592s
Success
malloc_large.cSuccessNone0.046527s4.288557s
Success
memcpy.cSuccessNone0.045134s3.913191s
Success
memory_error_test.cSuccessNone0.051451s4.314487s
Success
mmap.cSuccessNone0.041395s4.294236s
Success
mmap_aligned.cSuccessNone0.044014s4.286445s
Success
mmap_complicated.cSuccessNone0.048840s4.346713s
Success
mmap_file.cSuccessNone0.049916s4.314837s
Success
mmap_shared.cSuccessNone0.049265s4.357646s
Success
mmaptest.cSuccessNone0.044769s4.293753s
Success
mprotect.cSuccessNone0.043382s4.286387s
Success
mprotect_boundary.cSuccessNone0.042846s4.280647s
Success
mprotect_end_region.cSuccessNone0.042991s4.314445s
Success
mprotect_middle_region.cSuccessNone0.043078s4.290249s
Success
mprotect_multiple_times.cSuccessNone0.043782s4.275523s
Success
mprotect_same_value.cSuccessNone0.042481s4.264808s
Success
mprotect_spanning_regions.cSuccessNone0.044376s4.278712s
Success
sbrk.cSuccessNone0.045571s4.297914s
Success
segfault.cSuccessNone0.051153s4.346465s
Success
shm.cSuccessNone0.049649s4.395622s
Success
shmtest.cSuccessNone0.047295s4.385022s
Success
tcache_test.cFailureLind_wasm_Segmentation_Fault0.052797s4.474242s
tcache reuse: yes
Error: memory fault at wasm address 0xfff7c50c in linear memory of size 0x100000000

Caused by:
wasm trap: out of bounds memory access

thread_malloc_sequential.cSuccessNone0.050381s4.435739s
Success
vtable.cSuccessNone0.055830s3.935145s
Success
Networking Tests
accept4.cSuccessNone0.055070s4.323046s
Success
dns_resolve_test.cSuccessNone0.050320s6.024102s
Success
dnstest.cSuccessNone0.049286s4.301627s
Success
epoll_edge_triggered.cSuccessNone0.206918s4.516023s
Success
epollcreate1.cSuccessNone0.051105s4.309452s
Success
error_handling_net.cSuccessNone0.057592s4.370966s
Success
getaddrinfo_test.cSuccessNone0.053331s6.022165s
Success
getaddrinfo_unspec.cSuccessNone0.054696s6.003529s
Success
gethostname.cSuccessNone0.043705s3.920709s
Success
getifaddrs.cSuccessNone0.051252s4.395486s
Success
getsockname.cSuccessNone0.051439s4.312936s
Success
getsockopt.cSuccessNone0.053227s4.339283s
Success
ipv6_basic.cSuccessNone0.054918s4.356141s
Success
makepipe.cSuccessNone0.042615s3.929950s
Success
nonblocking_eagain.cSuccessNone0.054696s4.338686s
Success
pipe.cSuccessNone0.053033s4.324569s
Success
pipe2.cSuccessNone0.052680s4.305789s
Success
pipeinput.cSuccessNone0.053946s4.399653s
Success
pipeinput2.cSuccessNone0.053066s4.369296s
Success
pipeonestring.cSuccessNone0.055642s4.349694s
Success
pipepong.cSuccessNone0.052218s4.374386s
Success
pipewrite.cSuccessNone0.046048s4.273182s
Success
poll.cSuccessNone0.050223s4.299199s
Success
recvfrom-sendto.cSuccessNone0.052005s4.317463s
Success
sendmsg_recvmsg_test.cSuccessNone0.052127s4.317989s
Success
serverclient.cSuccessNone0.051397s3.935558s
Success
shutdown.cSuccessNone0.054045s3.950992s
Success
shutdown_fork.cSuccessNone0.051092s4.347987s
Success
simple-select.cSuccessNone0.052306s4.355828s
Success
simple_epoll.cSuccessNone0.051063s4.307637s
Success
socket.cSuccessNone0.048669s3.911899s
Success
socket_cloexec.cSuccessNone0.049096s4.285190s
Success
socket_options_advanced.cSuccessNone0.056098s4.344538s
Success
socketepoll.cSuccessNone0.050234s3.937138s
Success
socketpair.cSuccessNone0.048821s4.330582s
Success
socketselect.cSuccessNone0.049998s4.316437s
Success
udp_send_recv.cSuccessNone0.157471s4.491718s
Success
uds-getsockname.cSuccessNone0.051825s4.300048s
Success
uds-nb-select.cSuccessNone2.058345s6.509389s
Success
uds-serverclient.cSuccessNone0.053889s4.347990s
Success
uds-socketselect.cSuccessNone0.051628s3.929523s
Success
writev_socket.cSuccessNone0.059427s4.633099s
Success
Process Tests
barrier_test.cSuccessNone0.048477s4.469966s
Success
chain_thread.cSuccessNone1.051337s5.441216s
Success
ctor_syscall_test.cSuccessNone0.047581s4.350885s
Success
cxa_atexit_test.cSuccessNone0.046348s3.986592s
Success
execve_shebang.cSuccessNone0.049820s4.303105s
Success
exit.cSuccessNone0.050981s3.905307s
Success
exit_failure.cSuccessNone0.049879s4.016652s
Success
exit_group_thread.cSuccessNone0.055230s4.527690s
Success
flockfile_test.cSuccessNone0.050216s4.482902s
Success
fork2malloc.cSuccessNone0.051109s4.313830s
Success
fork_select.cSuccessNone0.049343s4.355935s
Success
fork_simple.cSuccessNone0.048060s4.339776s
Success
fork_syscall.cSuccessNone0.054614s4.474370s
Success
fork_tls_ctype.cSuccessNone0.052754s4.374823s
Success
forkandopen.cSuccessNone0.056010s4.342586s
Success
forkdup.cSuccessNone0.051803s3.961229s
Success
forkexecuid.cSuccessNone0.048061s4.401305s
Success
forkexecv-arg.cSuccessNone0.048829s4.436683s
Success
forkexecv.cSuccessNone0.047168s4.402298s
Success
forkfiles.cSuccessNone0.050726s4.340481s
Success
forkmalloc.cSuccessNone0.050178s4.324344s
Success
forknodup.cSuccessNone0.053312s4.411264s
Success
function-ptr.cSuccessNone0.045715s4.257076s
Success
getegid_syscall.cSuccessNone0.050923s4.344138s
Success
getgid_syscall.cSuccessNone0.051613s4.372046s
Success
getpid.cSuccessNone0.051223s4.300555s
Success
getpid_syscall.cSuccessNone0.053105s4.379329s
Success
getppid.cSuccessNone0.050460s4.331977s
Success
getppid_syscall.cSuccessNone0.054049s4.379832s
Success
getuid.cSuccessNone0.050974s4.274063s
Success
getuid_syscall.cSuccessNone0.049109s4.346226s
Success
hello-arg.cSuccessNone0.048265s3.958468s
Success
hello.cSuccessNone0.041476s3.916341s
Success
longjmp.cSuccessNone0.042229s3.954336s
Success
mutex.cSuccessNone2.053744s6.568165s
Success
printf_deadlock_smoke.cSuccessNone0.058519s4.725176s
Success
printf_thread_test.cSuccessNone0.052357s4.497090s
Success
sem_forks.cSuccessNone0.054108s4.383278s
Success
setsid.cSuccessNone0.042912s3.902753s
Success
template.cSuccessNone0.050454s4.350691s
Success
test_exec_nofork.cSuccessNone0.049856s4.413585s
Success
test_unlink_open_file.cSuccessNone0.045130s3.896496s
Success
thread-test.cSuccessNone0.044938s4.414136s
Success
thread.cSuccessNone0.044414s4.424486s
Success
thread_cageid_race.cSuccessNone0.046697s4.455561s
Success
tls_test.cSuccessNone0.048418s4.451941s
Success
uname.cSuccessNone0.047524s4.375438s
Success
wait.cSuccessNone2.046812s5.978641s
Success
waitpid_anychild.cSuccessNone0.049913s4.341702s
Success
waitpid_syscall.cSuccessNone1.051426s5.366436s
Success
waitpid_wnohang.cSuccessNone0.051692s3.987383s
Success
Signal Tests
alarm.cSuccessNone7.049847s10.995656s
Success
eintr_fork_signal.cSuccessNone1.052185s5.340944s
Success
kill.cSuccessNone1.067729s5.348511s
Success
setitimer.cSuccessNone7.055655s10.948778s
Success
sigalrm.cSuccessNone2.050438s5.919714s
Success
sigchld.cSuccessNone1.051456s4.973903s
Success
signal-fork.cSuccessNone4.052187s7.984972s
Success
signal-simple.cSuccessNone0.051881s3.915670s
Success
signal_SIGCHLD.cSuccessNone0.048941s4.373467s
Success
signal_fork.cSuccessNone0.046443s4.331590s
Success
signal_int_ignored.cSuccessNone2.050748s6.450860s
Success
signal_kill_cleanup.cSuccessNone1.048270s5.322906s
Success
signal_procmask.cSuccessNone0.045031s4.323816s
Success
signal_recursive.cSuccessNone0.044896s3.928675s
Success
signal_sa_mask.cSuccessNone0.044715s3.934225s
Success
sigpipe.cSuccessNone1.057234s5.392409s
Success
sigprocmask.cSuccessNone1.049582s4.912284s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.108162s4.549625s
Success
mmap-negative2.cSuccessNone0.156384s4.249660s
Success
Signal Tests
signal_resethand.cSuccessNone1.051112s5.021316s
Success

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total10
Success10
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases199
Number of Successes198
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.044792s4.271117s
Success
chdir_getcwd.cSuccessNone0.045953s4.316652s
Success
chmod.cSuccessNone0.053649s4.286545s
Success
clock_gettime_highlevel.cSuccessNone0.118152s4.490051s
Success
clock_gettime_simple.cSuccessNone0.039776s4.256456s
Success
cloexec.cSuccessNone0.050238s3.978337s
Success
close.cSuccessNone0.057768s4.338361s
Success
creat_access.cSuccessNone0.048434s4.265903s
Success
doubleclose.cSuccessNone0.041756s3.901107s
Success
dup.cSuccessNone0.042327s4.263441s
Success
dup2.cSuccessNone0.049370s3.909692s
Success
dup3.cSuccessNone0.045185s4.268061s
Success
dupwrite.cSuccessNone0.048447s3.881975s
Success
etc_conf.cSuccessNone0.043599s4.276161s
Success
fchdir.cSuccessNone0.050780s4.270802s
Success
fchmod.cSuccessNone0.049646s4.268691s
Success
fcntl.cSuccessNone0.047658s4.313467s
Success
fdatasync.cSuccessNone0.046115s4.276949s
Success
filetest.cSuccessNone0.047586s3.886927s
Success
filetest1000.cSuccessNone0.057190s3.891910s
Success
flock.cSuccessNone0.055070s4.340714s
Success
fstat.cSuccessNone0.050514s4.273432s
Success
fstatfs.cSuccessNone0.042226s4.247988s
Success
fsync.cSuccessNone0.046870s4.259015s
Success
ftruncate.cSuccessNone0.052560s4.319565s
Success
getcwd.cSuccessNone0.044764s4.261472s
Success
getrandom.cSuccessNone0.047862s4.280404s
Success
ioctl.cSuccessNone0.050734s4.267603s
Success
link.cSuccessNone0.052090s4.283457s
Success
locale_test.cSuccessNone0.063553s6.119093s
Success
lseek.cSuccessNone0.052308s4.353719s
Success
lstat.cFailureFailure_native_running0.052149sN/A
Native execution: === Test 1: lstat() on regular file ===
 lstat() correctly identified regular file
=== Test 2: lstat() on symlink returns symlink mode ===
 lstat() correctly identified symlink
=== Test 3: stat() on symlink follows to regular file ===
errno: 22
stat: No such file or directory
mkdir_rmdir.cSuccessNone0.048560s4.281852s
Success
mkfifo_test.cSuccessNone0.053990s4.353606s
Success
mknod.cSuccessNone0.048409s4.307080s
Success
nocancel_io.cSuccessNone0.051853s5.446788s
Success
open.cSuccessNone0.042715s4.293526s
Success
openat.cSuccessNone0.043481s4.243801s
Success
path_conversion_safety.cSuccessNone0.052967s4.271593s
Success
pread_pwrite.cSuccessNone0.045799s4.262994s
Success
printf.cSuccessNone0.039973s3.884558s
Success
prlimit64.cSuccessNone0.041564s3.872711s
Success
read.cSuccessNone0.048864s4.248388s
Success
readbytes.cSuccessNone0.044843s3.875147s
Success
readlink.cSuccessNone0.050086s4.311345s
Success
readlinkat.cSuccessNone0.050279s4.329955s
Success
readv_writev_test.cSuccessNone0.050035s4.284455s
Success
rename.cSuccessNone0.049595s4.300866s
Success
sc-writev.cSuccessNone0.048239s4.236936s
Success
stat.cSuccessNone0.049216s4.273215s
Success
statfs.cSuccessNone0.043498s4.250544s
Success
symlink.cSuccessNone0.051140s4.298784s
Success
sync_file_range.cSuccessNone0.046450s4.263993s
Success
timespec_time_t_compat.cSuccessNone0.045858s5.500181s
Success
truncate.cSuccessNone0.049834s4.317870s
Success
unlink.cSuccessNone0.050796s4.297201s
Success
unlinkat.cSuccessNone0.051068s4.315037s
Success
write.cSuccessNone0.041792s3.862012s
Success
writeloop.cSuccessNone0.053583s3.873167s
Success
writepartial.cSuccessNone0.049125s3.854232s
Success
writev.cSuccessNone0.050435s4.272135s
Success
Math Tests
math_link_smoke.cSuccessNone0.053123s3.944030s
Success
math_tests.cSuccessNone0.055974s4.056897s
Success
Memory Tests
brk.cSuccessNone0.046379s4.261583s
Success
fork_large_memory.cSuccessNone0.078092s4.436053s
Success
malloc.cSuccessNone0.043957s3.878374s
Success
malloc_large.cSuccessNone0.044985s4.238695s
Success
memcpy.cSuccessNone0.043820s3.851835s
Success
memory_error_test.cSuccessNone0.050433s4.283146s
Success
mmap.cSuccessNone0.040844s4.252080s
Success
mmap_aligned.cSuccessNone0.043110s4.269634s
Success
mmap_complicated.cSuccessNone0.050443s4.313236s
Success
mmap_file.cSuccessNone0.049033s4.250221s
Success
mmap_shared.cSuccessNone0.047748s4.289745s
Success
mmaptest.cSuccessNone0.043881s4.240302s
Success
mprotect.cSuccessNone0.042739s4.257281s
Success
mprotect_boundary.cSuccessNone0.042713s4.256849s
Success
mprotect_end_region.cSuccessNone0.042640s4.258028s
Success
mprotect_middle_region.cSuccessNone0.042399s4.248992s
Success
mprotect_multiple_times.cSuccessNone0.043445s4.253658s
Success
mprotect_same_value.cSuccessNone0.041938s4.237899s
Success
mprotect_spanning_regions.cSuccessNone0.043388s4.269180s
Success
sbrk.cSuccessNone0.043806s4.261935s
Success
segfault.cSuccessNone0.049976s4.294985s
Success
shm.cSuccessNone0.048137s4.326169s
Success
shmtest.cSuccessNone0.043159s4.245324s
Success
tcache_test.cSuccessNone0.051714s4.454083s
Success
thread_malloc_sequential.cSuccessNone0.050025s4.434794s
Success
vtable.cSuccessNone0.055272s3.897293s
Success
Networking Tests
accept4.cSuccessNone0.053917s4.294421s
Success
dns_resolve_test.cSuccessNone0.049086s5.942950s
Success
dnstest.cSuccessNone0.049412s4.266024s
Success
epoll_edge_triggered.cSuccessNone0.206218s4.477324s
Success
epollcreate1.cSuccessNone0.050119s4.289324s
Success
error_handling_net.cSuccessNone0.057072s4.353330s
Success
getaddrinfo_test.cSuccessNone0.052938s5.985210s
Success
getaddrinfo_unspec.cSuccessNone0.087510s6.044866s
Success
gethostname.cSuccessNone0.042862s3.885693s
Success
getifaddrs.cSuccessNone0.050860s4.374851s
Success
getsockname.cSuccessNone0.051407s4.292073s
Success
getsockopt.cSuccessNone0.052938s4.300158s
Success
ipv6_basic.cSuccessNone0.054093s4.321216s
Success
makepipe.cSuccessNone0.042251s3.875054s
Success
nonblocking_eagain.cSuccessNone0.056575s4.383870s
Success
pipe.cSuccessNone0.051391s4.291458s
Success
pipe2.cSuccessNone0.052257s4.267058s
Success
pipeinput.cSuccessNone0.052962s4.338595s
Success
pipeinput2.cSuccessNone0.052854s4.315311s
Success
pipeonestring.cSuccessNone0.052419s4.370268s
Success
pipepong.cSuccessNone0.051219s4.338466s
Success
pipewrite.cSuccessNone0.046502s4.289346s
Success
poll.cSuccessNone0.049724s4.290179s
Success
recvfrom-sendto.cSuccessNone0.050949s4.345329s
Success
sendmsg_recvmsg_test.cSuccessNone0.051319s4.305753s
Success
serverclient.cSuccessNone0.051051s3.903275s
Success
shutdown.cSuccessNone0.052222s3.899305s
Success
shutdown_fork.cSuccessNone0.050970s4.324245s
Success
simple-select.cSuccessNone0.052325s4.332018s
Success
simple_epoll.cSuccessNone0.049500s4.294354s
Success
socket.cSuccessNone0.048556s3.901377s
Success
socket_cloexec.cSuccessNone0.048242s4.253081s
Success
socket_options_advanced.cSuccessNone0.055292s4.310119s
Success
socketepoll.cSuccessNone0.048893s3.883498s
Success
socketpair.cSuccessNone0.048210s4.317483s
Success
socketselect.cSuccessNone0.049248s4.280488s
Success
udp_send_recv.cSuccessNone0.157193s4.472419s
Success
uds-getsockname.cSuccessNone0.049787s4.287984s
Success
uds-nb-select.cSuccessNone2.058170s6.512683s
Success
uds-serverclient.cSuccessNone0.054679s4.367001s
Success
uds-socketselect.cSuccessNone0.051502s3.907767s
Success
writev_socket.cSuccessNone0.053070s4.288667s
Success
Process Tests
barrier_test.cSuccessNone0.048691s4.463687s
Success
chain_thread.cSuccessNone1.051170s5.444329s
Success
ctor_syscall_test.cSuccessNone0.040414s4.307400s
Success
cxa_atexit_test.cSuccessNone0.045721s3.881012s
Success
execve_shebang.cSuccessNone0.049634s4.305536s
Success
exit.cSuccessNone0.046508s3.863438s
Success
exit_failure.cSuccessNone0.048448s3.942202s
Success
exit_group_thread.cSuccessNone0.052359s4.486293s
Success
flockfile_test.cSuccessNone0.049236s4.429879s
Success
fork2malloc.cSuccessNone0.050806s4.355268s
Success
fork_select.cSuccessNone0.048302s4.330497s
Success
fork_simple.cSuccessNone0.046896s4.295355s
Success
fork_syscall.cSuccessNone0.053673s4.352760s
Success
fork_tls_ctype.cSuccessNone0.052339s4.367012s
Success
forkandopen.cSuccessNone0.050065s4.304671s
Success
forkdup.cSuccessNone0.053094s3.992478s
Success
forkexecuid.cSuccessNone0.049359s4.405004s
Success
forkexecv-arg.cSuccessNone0.047995s4.378379s
Success
forkexecv.cSuccessNone0.047368s4.405097s
Success
forkfiles.cSuccessNone0.050200s4.335177s
Success
forkmalloc.cSuccessNone0.051448s4.351476s
Success
forknodup.cSuccessNone0.051051s4.307104s
Success
function-ptr.cSuccessNone0.044847s4.260044s
Success
getegid_syscall.cSuccessNone0.050214s4.352869s
Success
getgid_syscall.cSuccessNone0.051240s4.348806s
Success
getpid.cSuccessNone0.042809s4.268344s
Success
getpid_syscall.cSuccessNone0.052591s4.413709s
Success
getppid.cSuccessNone0.051976s4.364743s
Success
getppid_syscall.cSuccessNone0.052571s4.342844s
Success
getuid.cSuccessNone0.051608s4.301342s
Success
getuid_syscall.cSuccessNone0.048371s4.343085s
Success
hello-arg.cSuccessNone0.042386s3.917228s
Success
hello.cSuccessNone0.040368s3.856008s
Success
longjmp.cSuccessNone0.041188s3.886038s
Success
mutex.cSuccessNone2.052504s6.558573s
Success
printf_deadlock_smoke.cSuccessNone0.058762s4.617304s
Success
printf_thread_test.cSuccessNone0.047912s4.448323s
Success
sem_forks.cSuccessNone0.055001s4.350712s
Success
setsid.cSuccessNone0.041829s3.865883s
Success
template.cSuccessNone0.049875s4.327342s
Success
test_exec_nofork.cSuccessNone0.047973s4.339478s
Success
test_unlink_open_file.cSuccessNone0.044492s3.865055s
Success
thread-test.cSuccessNone0.044934s4.437093s
Success
thread.cSuccessNone0.044897s4.451869s
Success
thread_cageid_race.cSuccessNone0.046928s4.459768s
Success
tls_test.cSuccessNone0.046885s4.426991s
Success
uname.cSuccessNone0.043290s4.295820s
Success
wait.cSuccessNone2.046007s6.030727s
Success
waitpid_anychild.cSuccessNone0.049040s4.308855s
Success
waitpid_syscall.cSuccessNone1.051657s5.396343s
Success
waitpid_wnohang.cSuccessNone0.049513s3.951923s
Success
Signal Tests
alarm.cSuccessNone7.048704s10.925869s
Success
eintr_fork_signal.cSuccessNone1.051444s5.357587s
Success
kill.cSuccessNone1.070707s5.333397s
Success
setitimer.cSuccessNone7.049064s10.936386s
Success
sigalrm.cSuccessNone2.050156s5.928213s
Success
sigchld.cSuccessNone1.050553s4.947589s
Success
signal-fork.cSuccessNone4.051373s7.949029s
Success
signal-simple.cSuccessNone0.051963s3.910222s
Success
signal_SIGCHLD.cSuccessNone0.048206s4.302391s
Success
signal_fork.cSuccessNone0.045452s4.321168s
Success
signal_int_ignored.cSuccessNone2.049417s6.339928s
Success
signal_kill_cleanup.cSuccessNone1.047503s5.313466s
Success
signal_procmask.cSuccessNone0.044360s4.259214s
Success
signal_recursive.cSuccessNone0.044172s3.890061s
Success
signal_sa_mask.cSuccessNone0.043808s3.886511s
Success
sigpipe.cSuccessNone1.051994s5.383273s
Success
sigprocmask.cSuccessNone1.049022s4.903019s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Memory Tests
mmap-negative1.cSuccessNone0.103999s4.730798s
Success
mmap-negative2.cSuccessNone0.141213s4.344547s
Success
Signal Tests
signal_resethand.cSuccessNone1.048419s4.944541s
Success

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

symlink/symlinkat syscalls not implemented, ln -s fails

1 participant