Skip to content

umask syscall implementation#1239

Open
moogchi wants to merge 5 commits into
mainfrom
umask-syscall
Open

umask syscall implementation#1239
moogchi wants to merge 5 commits into
mainfrom
umask-syscall

Conversation

@moogchi

@moogchi moogchi commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Description:

Problem:

umask syscall was just a stub that returned -1, which caused the coreutils test failure
The failed tests were:

  • chmod/equal-x, chmod/equals, chmod/usage — symbolic chmod modes without a who part (e.g. =x) consult the umask to determine which permission bits to set; with umask broken these resolved incorrectly
  • mkdir/parents, mkdir/perm, mkdir/special-1 — directory permissions came out wrong because the mask was never applied

What changed:

  • Added a per-cage umask field (AtomicU32, default 0o022) to the Cage struct
  • Implemented umask_syscall in fs_calls.rs — atomically swaps the new mask in and returns the old one
  • Applied the umask at file/directory creation time in open_syscall, openat_syscall, mkdir_syscall, and mknod_syscall via mode & !umask
  • fork correctly inherits the parent's umask (POSIX-compliant)
  • Updated the glibc umask.c stub to call into the Rust syscall via MAKE_LEGACY_SYSCALL
  • Added a deterministic test covering return value, open, mkdir, and umask changes

Fixes

#1219

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
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:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

simple-tests/copy-handler-table_grate.cSuccess
STDOUT:
[Grate|copy-handler-table] Registering geteuid handler for cage 2 in grate 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Cage|copy-handler-table] PASS: child inherited handler, then overwrite changed geteuid to 0
[Cage|copy-handler-table] PASS: parent=123 child_exit=0
[Grate|copy-handler-table] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

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

STDERR:

static harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.052858s4.062881s
Success
thread.cSuccessNone0.046228s4.136158s
Success
tls_test.cSuccessNone0.049571s4.150120s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.045816s0.113419s
Success
dlopen_fork.cSuccessNone0.048300s0.138160s
Success
dlopen_thread.cSuccessNone0.049624s0.138995s
Success
double_fork_dlopen.cSuccessNone0.052394s0.181533s
Success
fork_dlopen.cSuccessNone0.048327s0.139860s
Success
longjmp_dlopen.cSuccessNone0.046875s0.132672s
Success
rdynamic_main.cSuccessNone0.047954s0.133311s
Success
File Tests
chartests.cSuccessNone0.046213s0.145510s
Success
chdir_getcwd.cSuccessNone0.046370s0.125560s
Success
chmod.cSuccessNone0.052407s0.130156s
Success
clock_gettime_highlevel.cSuccessNone0.117346s0.160789s
Success
clock_gettime_simple.cSuccessNone0.040790s0.106308s
Success
cloexec.cSuccessNone0.050915s0.141189s
Success
close.cSuccessNone0.056837s0.138454s
Success
creat_access.cSuccessNone0.049848s0.118330s
Success
doubleclose.cSuccessNone0.042005s0.099173s
Success
dup.cSuccessNone0.042983s0.115383s
Success
dup2.cSuccessNone0.048252s0.114679s
Success
dup3.cSuccessNone0.045413s0.114574s
Success
dupwrite.cSuccessNone0.048952s0.116455s
Success
etc_conf.cSuccessNone0.044280s0.117893s
Success
faccessat.cSuccessNone0.045444s0.116594s
Success
fchdir.cSuccessNone0.051606s0.128913s
Success
fchmod.cSuccessNone0.051109s0.128363s
Success
fchmodat.cSuccessNone0.045234s0.114370s
Success
fcntl.cSuccessNone0.048181s0.129886s
Success
fcntl_dupfd.cSuccessNone0.042859s0.108502s
Success
fdatasync.cSuccessNone0.047675s0.109954s
Success
filetest.cSuccessNone0.048564s0.110788s
Success
filetest1000.cSuccessNone0.056248s0.123804s
Success
flock.cSuccessNone0.056336s0.164653s
Success
fstat.cSuccessNone0.051114s0.130882s
Success
fstatfs.cSuccessNone0.043639s0.107119s
Success
fsync.cSuccessNone0.048358s0.111152s
Success
ftruncate.cSuccessNone0.054123s0.208541s
Success
getcwd.cSuccessNone0.045635s0.107656s
Success
getcwd_null.cSuccessNone0.049862s0.121370s
Success
getpgid.cSuccessNone0.043319s0.101965s
Success
getrandom.cSuccessNone0.048786s0.124717s
Success
ioctl.cSuccessNone0.052836s0.122000s
Success
link.cSuccessNone0.053383s0.157043s
Success
locale_test.cSuccessNone0.063016s0.314037s
Success
lseek.cSuccessNone0.053266s0.190536s
Success
lstat.cSuccessNone0.052336s0.141090s
Success
mkdir_rmdir.cSuccessNone0.050516s0.119781s
Success
mkfifo_test.cSuccessNone0.055066s0.167768s
Success
mknod.cSuccessNone0.048574s0.125174s
Success
nocancel_io.cSuccessNone0.052586s0.141812s
Success
open.cSuccessNone0.043724s0.105650s
Success
openat.cSuccessNone0.044390s0.112268s
Success
path_conversion_safety.cSuccessNone0.053054s0.137340s
Success
ppoll.cSuccessNone0.054336s0.126542s
Success
pread_pwrite.cSuccessNone0.046354s0.119649s
Success
preadv_pwritev.cSuccessNone0.052244s0.133617s
Success
printf.cSuccessNone0.041042s0.099364s
Success
prlimit64.cSuccessNone0.043464s0.104713s
Success
read.cSuccessNone0.049584s0.126947s
Success
readbytes.cSuccessNone0.045840s0.107490s
Success
readdir_basic.cSuccessNone0.053557s0.151191s
Success
readlink.cSuccessNone0.049237s0.123017s
Success
readlinkat.cSuccessNone0.051031s0.126594s
Success
readv_writev_test.cSuccessNone0.051356s0.128857s
Success
rename.cSuccessNone0.053968s0.118533s
Success
renameat.cSuccessNone0.052148s0.131908s
Success
sc-writev.cSuccessNone0.047335s0.115549s
Success
stat.cSuccessNone0.050252s0.127174s
Success
statfs.cSuccessNone0.045629s0.107300s
Success
symlink.cSuccessNone0.052464s0.146526s
Success
sync_file_range.cSuccessNone0.047995s0.111024s
Success
timespec_time_t_compat.cSuccessNone0.047023s0.109548s
Success
trailing_slash.cSuccessNone0.051202s0.122608s
Success
truncate.cSuccessNone0.051082s0.136450s
Success
umask.cSuccessNone0.045039s0.126999s
Success
unlink.cSuccessNone0.051824s0.153206s
Success
unlinkat.cSuccessNone0.051572s0.135647s
Success
utimensat.cSuccessNone0.048869s0.134641s
Success
write.cSuccessNone0.043053s0.098570s
Success
writeloop.cSuccessNone0.052460s0.116979s
Success
writepartial.cSuccessNone0.050385s0.108773s
Success
writev.cSuccessNone0.051293s0.124339s
Success
Math Tests
math_link_smoke.cSuccessNone0.053521s0.111172s
Success
math_tests.cSuccessNone0.058153s0.137091s
Success
printf_float.cSuccessNone0.054253s0.133391s
Success
Memory Tests
brk.cSuccessNone0.053431s0.135311s
Success
fork_large_memory.cSuccessNone0.086709s0.481781s
Success
malloc.cSuccessNone0.045771s0.123362s
Success
malloc_large.cSuccessNone0.080143s0.169568s
Success
memcpy.cSuccessNone0.059326s0.141905s
Success
memory_error_test.cSuccessNone0.054019s0.143316s
Success
mmap.cSuccessNone0.065480s0.200111s
Success
mmap_aligned.cSuccessNone0.061868s0.178772s
Success
mmap_complicated.cSuccessNone0.050639s0.144278s
Success
mmap_file.cSuccessNone0.067661s0.143315s
Success
mmap_shared.cSuccessNone0.055539s0.144723s
Success
mmaptest.cSuccessNone0.062017s0.153285s
Success
mprotect.cSuccessNone0.045425s0.108856s
Success
mprotect_boundary.cSuccessNone0.061546s0.178511s
Success
mprotect_end_region.cSuccessNone0.056436s0.122481s
Success
mprotect_middle_region.cSuccessNone0.063496s0.196592s
Success
mprotect_multiple_times.cSuccessNone0.048758s0.130203s
Success
mprotect_same_value.cSuccessNone0.044049s0.118760s
Success
mprotect_spanning_regions.cSuccessNone0.052219s0.160995s
Success
munmap_adjacent_shm.cSuccessNone0.047155s0.149936s
Success
sbrk.cSuccessNone0.056887s0.157371s
Success
segfault.cSuccessNone0.053855s0.158919s
Success
shm.cSuccessNone0.077743s0.290764s
Success
shmtest.cSuccessNone0.052747s0.122345s
Success
thread_malloc_sequential.cSuccessNone0.087354s0.349296s
Success
vtable.cSuccessNone0.109521s0.233139s
Success
Networking Tests
accept4.cSuccessNone0.055337s0.135013s
Success
dns_resolve_test.cSuccessNone0.050230s0.120097s
Success
dnstest.cSuccessNone0.050015s0.118328s
Success
epoll_badfd.cSuccessNone0.044575s0.105020s
Success
epoll_edge_triggered.cSuccessNone0.207548s0.379562s
Success
epollcreate1.cSuccessNone0.051381s0.129066s
Success
error_handling_net.cSuccessNone0.059364s0.191750s
Success
getaddrinfo_test.cSuccessNone0.055638s0.154358s
Success
getaddrinfo_unspec.cSuccessNone0.050909s0.161850s
Success
gethostname.cSuccessNone0.044149s0.102928s
Success
getifaddrs.cSuccessNone0.051685s0.124433s
Success
getsockname.cSuccessNone0.052882s0.122009s
Success
getsockopt.cSuccessNone0.054947s0.159033s
Success
ipv6_basic.cSuccessNone0.055741s0.153970s
Success
makepipe.cSuccessNone0.043302s0.101046s
Success
nonblocking_eagain.cSuccessNone0.055642s0.163457s
Success
pipe.cSuccessNone0.052343s0.128466s
Success
pipe2.cSuccessNone0.052338s0.120932s
Success
pipeinput.cSuccessNone0.053383s0.152491s
Success
pipeinput2.cSuccessNone0.053916s0.157430s
Success
pipeonestring.cSuccessNone0.054030s0.153918s
Success
pipepong.cSuccessNone0.052884s0.159271s
Success
pipewrite.cSuccessNone0.047269s0.114450s
Success
poll.cSuccessNone0.050480s0.113242s
Success
recvfrom-sendto.cSuccessNone0.052535s0.128948s
Success
sendmsg_recvmsg_test.cSuccessNone0.051331s0.129987s
Success
serverclient.cSuccessNone0.051203s0.131842s
Success
shutdown.cSuccessNone0.052746s0.129179s
Success
shutdown_fork.cSuccessNone0.051809s0.141307s
Success
simple-select.cSuccessNone0.052877s0.152608s
Success
simple_epoll.cSuccessNone0.050950s0.122686s
Success
socket.cSuccessNone0.049307s0.117618s
Success
socket_cloexec.cSuccessNone0.049142s0.111207s
Success
socket_options_advanced.cSuccessNone0.056335s0.174363s
Success
socketepoll.cSuccessNone0.050065s0.116373s
Success
socketpair.cSuccessNone0.049717s0.134824s
Success
socketselect.cSuccessNone0.050579s0.123214s
Success
udp_send_recv.cSuccessNone0.158297s0.276694s
Success
uds-getsockname.cSuccessNone0.051799s0.117862s
Success
uds-nb-select.cSuccessNone2.059878s2.190572s
Success
uds-serverclient.cSuccessNone0.054861s0.159719s
Success
uds-socketselect.cSuccessNone0.052142s0.127842s
Success
uds_listen_poll.cSuccessNone1.057752s1.168915s
Success
writev_socket.cSuccessNone0.055159s0.157879s
Success
Process Tests
barrier_test.cSuccessNone0.049433s0.133756s
Success
chain_thread.cSuccessNone1.051433s1.143704s
Success
ctor_syscall_test.cSuccessNone0.040595s0.101607s
Success
cxa_atexit_test.cSuccessNone0.046834s0.108837s
Success
exec_non_utf8.cSuccessNone0.049371s0.115986s
Success
execve_shebang.cSuccessNone0.050871s0.116274s
Success
exit.cSuccessNone0.048860s0.107613s
Success
exit_failure.cSuccessNone0.050087s0.128620s
Success
exit_group_thread.cSuccessNone0.052643s0.150539s
Success
exit_status_first_wins.cSuccessNone0.054525s0.150373s
Success
flockfile_test.cSuccessNone0.050829s0.141413s
Success
fork2malloc.cSuccessNone0.051386s0.137705s
Success
fork_select.cSuccessNone0.049088s0.139285s
Success
fork_simple.cSuccessNone0.048460s0.129996s
Success
fork_syscall.cSuccessNone0.054868s0.604123s
Success
fork_tls_ctype.cSuccessNone0.054085s0.156974s
Success
forkandopen.cSuccessNone0.052674s0.144789s
Success
forkdup.cSuccessNone0.052583s0.141956s
Success
forkexecuid.cSuccessNone0.049021s0.152842s
Success
forkexecv-arg.cSuccessNone0.048963s0.143396s
Success
forkexecv.cSuccessNone0.047201s0.134902s
Success
forkfiles.cSuccessNone0.051830s0.140957s
Success
forkmalloc.cSuccessNone0.051071s0.131315s
Success
forknodup.cSuccessNone0.051751s0.142292s
Success
function-ptr.cSuccessNone0.046445s0.104227s
Success
getegid_syscall.cSuccessNone0.051082s0.468023s
Success
getgid_syscall.cSuccessNone0.051676s0.476415s
Success
getpid.cSuccessNone0.043722s0.101089s
Success
getpid_syscall.cSuccessNone0.052562s0.451782s
Success
getppid.cSuccessNone0.056736s0.158466s
Success
getppid_syscall.cSuccessNone0.054289s0.378935s
Success
getuid.cSuccessNone0.051075s0.112318s
Success
getuid_syscall.cSuccessNone0.050190s0.236913s
Success
hello-arg.cSuccessNone0.040903s0.106970s
Success
hello.cSuccessNone0.042142s0.099753s
Success
longjmp.cSuccessNone0.041997s0.108667s
Success
mutex.cSuccessNone2.053402s2.130049s
Success
printf_deadlock_smoke.cSuccessNone0.058924s0.167314s
Success
printf_thread_test.cSuccessNone0.049545s0.140059s
Success
sem_forks.cSuccessNone0.051184s0.173220s
Success
setjmp_edge.cSuccessNone0.061370s0.214480s
Success
setsid.cSuccessNone0.043440s0.103962s
Success
template.cSuccessNone0.050922s0.179474s
Success
test_crossmodule_longjmp.cSuccessNone0.051855s0.148768s
Success
test_exec_nofork.cSuccessNone0.050635s0.132220s
Success
test_unlink_open_file.cSuccessNone0.045397s0.103170s
Success
thread-guard.cSuccessNone0.048098s0.128054s
Success
thread-test.cSuccessNone0.045342s0.119746s
Success
thread.cSuccessNone0.045282s0.118914s
Success
thread_cageid_race.cSuccessNone0.046238s0.285436s
Success
tls_test.cSuccessNone0.048434s0.156263s
Success
uname.cSuccessNone0.044787s0.105588s
Success
wait.cSuccessNone0.047399s0.148083s
Success
waitpid_anychild.cSuccessNone0.052738s0.132166s
Success
waitpid_syscall.cSuccessNone1.050687s1.227180s
Success
waitpid_wnohang.cSuccessNone0.050542s0.135781s
Success
Signal Tests
alarm.cSuccessNone7.050485s7.150230s
Success
eintr_fork_signal.cSuccessNone1.051987s1.150062s
Success
kill.cSuccessNone1.049972s1.139101s
Success
pause_test.cSuccessNone1.051513s1.143941s
Success
setitimer.cSuccessNone7.050219s7.153207s
Success
sigalrm.cSuccessNone2.050352s2.136203s
Success
sigaltstack.cSuccessNone0.052500s0.127872s
Success
sigchld.cSuccessNone1.052054s1.135207s
Success
signal-fork.cSuccessNone4.052677s4.131250s
Success
signal-simple.cSuccessNone0.051178s0.116326s
Success
signal_SIGCHLD.cSuccessNone0.048847s0.136794s
Success
signal_fork.cSuccessNone0.047208s0.140079s
Success
signal_int_ignored.cSuccessNone2.050930s2.136772s
Success
signal_kill_cleanup.cSuccessNone1.048729s1.130267s
Success
signal_procmask.cSuccessNone0.045468s0.115357s
Success
signal_read_interrupt.cSuccessNone0.553883s0.641301s
Success
signal_recursive.cSuccessNone0.045258s0.122442s
Success
signal_sa_mask.cSuccessNone0.044880s0.112239s
Success
signal_select_interrupt.cSuccessNone0.554950s0.642961s
Success
signal_write_interrupt.cSuccessNone1.053149s1.135973s
Success
sigpipe.cSuccessNone1.052782s1.144564s
Success
sigprocmask.cSuccessNone1.050607s1.122209s
Success
sigsuspend_test.cSuccessNone1.048729s1.144021s
Success
test_sigsetjmp.cSuccessNone0.052233s0.148035s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.042376s0.105399s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.116515s0.121810s
Success
invalid_access_fork.cSuccessNone0.174158s0.266405s
Success
mmap-negative1.cSuccessNone0.125582s0.118600s
Success
mmap-negative2.cSuccessNone0.155421s0.170960s
Success
Signal Tests
signal_resethand.cSuccessNone1.050289s1.133513s
Success

C++ harness

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccess0.377676s8.597772s
LIBCPP_SORT_OK 1 2 3

@Yaxuan-w Yaxuan-w left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

left minor comments

return (mode_t) MAKE_LEGACY_SYSCALL (
UMASK_SYSCALL, "syscall|umask", (uint64_t) mask,
NOTUSED, NOTUSED, NOTUSED, NOTUSED, NOTUSED, TRANSLATE_ERRNO_ON);
} No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Add new line

#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Seems this file is not used. Should we remove?

Comment thread src/rawposix/src/init.rs Outdated
exit_group_initiated: AtomicBool::new(false),
is_dead: AtomicBool::new(false),
grate_inflight: AtomicU64::new(0),
umask: AtomicU32::new(0o022),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we have comments about default value here?


printf("All umask tests passed.\n");
return 0;
} No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Add new line

@Yaxuan-w

Yaxuan-w commented Jun 8, 2026

Copy link
Copy Markdown
Member

As today's discussion, can you try turn this into a grate?

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
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:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

copy-data-between-cages/cp-stncpy_grate.cSuccess
STDOUT:
[cage] pathname addr=0xfffb6ff9
[cage] pathname='random'
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

simple-tests/copy-handler-table_grate.cSuccess
STDOUT:
[Grate|copy-handler-table] Registering geteuid handler for cage 2 in grate 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Grate|copy-handler-table] geteuid handler invoked for cage 1
[Cage|copy-handler-table] PASS: child inherited handler, then overwrite changed geteuid to 0
[Cage|copy-handler-table] PASS: parent=123 child_exit=0
[Grate|copy-handler-table] PASS

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

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

STDERR:

static harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.056790s4.039091s
Success
thread.cSuccessNone0.049325s4.100395s
Success
tls_test.cSuccessNone0.053522s4.124536s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.048523s0.115100s
Success
dlopen_fork.cSuccessNone0.050430s0.140359s
Success
dlopen_thread.cSuccessNone0.053500s0.141235s
Success
double_fork_dlopen.cSuccessNone0.054960s0.181262s
Success
fork_dlopen.cSuccessNone0.050311s0.140438s
Success
longjmp_dlopen.cSuccessNone0.049107s0.133281s
Success
rdynamic_main.cSuccessNone0.051845s0.137215s
Success
File Tests
chartests.cSuccessNone0.047883s0.144204s
Success
chdir_getcwd.cSuccessNone0.048022s0.114517s
Success
chmod.cSuccessNone0.055132s0.130658s
Success
clock_gettime_highlevel.cSuccessNone0.120878s0.164239s
Success
clock_gettime_simple.cSuccessNone0.044077s0.106827s
Success
cloexec.cSuccessNone0.052542s0.141032s
Success
close.cSuccessNone0.059583s0.141260s
Success
creat_access.cSuccessNone0.053101s0.119519s
Success
doubleclose.cSuccessNone0.045343s0.098857s
Success
dup.cSuccessNone0.045247s0.116181s
Success
dup2.cSuccessNone0.050703s0.115307s
Success
dup3.cSuccessNone0.047892s0.115131s
Success
dupwrite.cSuccessNone0.052286s0.129559s
Success
etc_conf.cSuccessNone0.046811s0.121573s
Success
faccessat.cSuccessNone0.048223s0.118993s
Success
fchdir.cSuccessNone0.054996s0.129535s
Success
fchmod.cSuccessNone0.054709s0.130295s
Success
fchmodat.cSuccessNone0.050266s0.119103s
Success
fcntl.cSuccessNone0.051812s0.132107s
Success
fcntl_dupfd.cSuccessNone0.044756s0.110420s
Success
fdatasync.cSuccessNone0.049779s0.112682s
Success
filetest.cSuccessNone0.051151s0.111460s
Success
filetest1000.cSuccessNone0.060725s0.129206s
Success
flock.cSuccessNone0.059337s0.165039s
Success
fstat.cSuccessNone0.053550s0.132000s
Success
fstatfs.cSuccessNone0.046447s0.108597s
Success
fsync.cSuccessNone0.052581s0.117403s
Success
ftruncate.cSuccessNone0.055964s0.211017s
Success
getcwd.cSuccessNone0.047597s0.107858s
Success
getcwd_null.cSuccessNone0.051605s0.122112s
Success
getpgid.cSuccessNone0.046181s0.104228s
Success
getrandom.cSuccessNone0.051521s0.127998s
Success
ioctl.cSuccessNone0.054529s0.122761s
Success
link.cSuccessNone0.055498s0.157380s
Success
locale_test.cSuccessNone0.065531s0.313745s
Success
lseek.cSuccessNone0.056746s0.195631s
Success
lstat.cSuccessNone0.057126s0.141033s
Success
mkdir_rmdir.cSuccessNone0.053637s0.122255s
Success
mkfifo_test.cSuccessNone0.057667s0.170899s
Success
mknod.cSuccessNone0.051744s0.126643s
Success
nocancel_io.cSuccessNone0.057382s0.145622s
Success
open.cSuccessNone0.046202s0.106180s
Success
openat.cSuccessNone0.047973s0.113503s
Success
path_conversion_safety.cSuccessNone0.057305s0.140883s
Success
ppoll.cSuccessNone0.056299s0.126201s
Success
pread_pwrite.cSuccessNone0.049787s0.122721s
Success
preadv_pwritev.cSuccessNone0.055138s0.136756s
Success
printf.cSuccessNone0.042867s0.099901s
Success
prlimit64.cSuccessNone0.045022s0.107055s
Success
read.cSuccessNone0.052278s0.129745s
Success
readbytes.cSuccessNone0.048685s0.113818s
Success
readdir_basic.cSuccessNone0.058054s0.151545s
Success
readlink.cSuccessNone0.052326s0.126396s
Success
readlinkat.cSuccessNone0.053167s0.129780s
Success
readv_writev_test.cSuccessNone0.054974s0.130524s
Success
rename.cSuccessNone0.054940s0.119733s
Success
renameat.cSuccessNone0.055125s0.134480s
Success
sc-writev.cSuccessNone0.052293s0.122010s
Success
stat.cSuccessNone0.053459s0.131513s
Success
statfs.cSuccessNone0.046438s0.108094s
Success
symlink.cSuccessNone0.054202s0.148692s
Success
sync_file_range.cSuccessNone0.049404s0.113454s
Success
timespec_time_t_compat.cSuccessNone0.047989s0.109340s
Success
trailing_slash.cSuccessNone0.050479s0.122217s
Success
truncate.cSuccessNone0.053201s0.142515s
Success
umask.cSuccessNone0.048283s0.127615s
Success
unlink.cSuccessNone0.054290s0.155997s
Success
unlinkat.cSuccessNone0.054019s0.138874s
Success
utimensat.cSuccessNone0.051178s0.135181s
Success
write.cSuccessNone0.045105s0.100462s
Success
writeloop.cSuccessNone0.054635s0.118731s
Success
writepartial.cSuccessNone0.052811s0.110920s
Success
writev.cSuccessNone0.053239s0.125988s
Success
Math Tests
math_link_smoke.cSuccessNone0.058112s0.111264s
Success
math_tests.cSuccessNone0.060292s0.138440s
Success
printf_float.cSuccessNone0.056510s0.143215s
Success
Memory Tests
brk.cSuccessNone0.049501s0.111958s
Success
fork_large_memory.cSuccessNone0.081728s0.441952s
Success
malloc.cSuccessNone0.046849s0.104451s
Success
malloc_large.cSuccessNone0.048095s0.103808s
Success
memcpy.cSuccessNone0.048353s0.103614s
Success
memory_error_test.cSuccessNone0.054031s0.136994s
Success
mmap.cSuccessNone0.043405s0.103944s
Success
mmap_address_truncation.cSuccessNone0.046176s0.109512s
Success
mmap_aligned.cSuccessNone0.045754s0.120216s
Success
mmap_complicated.cSuccessNone0.050924s0.143308s
Success
mmap_file.cSuccessNone0.052454s0.120120s
Success
mmap_shared.cSuccessNone0.051578s0.135175s
Success
mmaptest.cSuccessNone0.048717s0.110222s
Success
mprotect.cSuccessNone0.045824s0.106302s
Success
mprotect_boundary.cSuccessNone0.045635s0.114846s
Success
mprotect_end_region.cSuccessNone0.044738s0.111304s
Success
mprotect_middle_region.cSuccessNone0.045562s0.110980s
Success
mprotect_multiple_times.cSuccessNone0.045631s0.113343s
Success
mprotect_same_value.cSuccessNone0.044733s0.108593s
Success
mprotect_spanning_regions.cSuccessNone0.045930s0.129030s
Success
munmap_adjacent_shm.cSuccessNone0.047171s0.128760s
Success
sbrk.cSuccessNone0.048757s0.109144s
Success
segfault.cSuccessNone0.053305s0.148503s
Success
shm.cSuccessNone0.051427s0.138781s
Success
shmtest.cSuccessNone0.045721s0.113741s
Success
thread_malloc_sequential.cSuccessNone0.053426s0.177486s
Success
vtable.cSuccessNone0.058164s0.125040s
Success
Networking Tests
accept4.cSuccessNone0.071430s0.182172s
Success
dns_resolve_test.cSuccessNone0.059286s0.138815s
Success
dnstest.cSuccessNone0.068524s0.142394s
Success
epoll_badfd.cSuccessNone0.062998s0.138204s
Success
epoll_edge_triggered.cSuccessNone0.212223s0.405902s
Success
epollcreate1.cSuccessNone0.071977s0.156404s
Success
error_handling_net.cSuccessNone0.067229s0.218406s
Success
getaddrinfo_test.cSuccessNone0.060516s0.173592s
Success
getaddrinfo_unspec.cSuccessNone0.062918s0.137633s
Success
gethostname.cSuccessNone0.052396s0.114080s
Success
getifaddrs.cSuccessNone0.061503s0.128826s
Success
getsockname.cSuccessNone0.063504s0.149370s
Success
getsockopt.cSuccessNone0.059121s0.166819s
Success
ipv6_basic.cSuccessNone0.063053s0.184155s
Success
makepipe.cSuccessNone0.046283s0.107171s
Success
nonblocking_eagain.cSuccessNone0.062867s0.180425s
Success
pipe.cSuccessNone0.058560s0.140030s
Success
pipe2.cSuccessNone0.060478s0.138060s
Success
pipeinput.cSuccessNone0.061820s0.169479s
Success
pipeinput2.cSuccessNone0.059391s0.167080s
Success
pipeonestring.cSuccessNone0.074722s0.185932s
Success
pipepong.cSuccessNone0.079191s0.263561s
Success
pipewrite.cSuccessNone0.052449s0.121184s
Success
poll.cSuccessNone0.060823s0.145188s
Success
recvfrom-sendto.cSuccessNone0.076041s0.259152s
Success
sendmsg_recvmsg_test.cSuccessNone0.057701s0.138812s
Success
serverclient.cSuccessNone0.054994s0.141880s
Success
shutdown.cSuccessNone0.056584s0.139439s
Success
shutdown_fork.cSuccessNone0.064048s0.163272s
Success
simple-select.cSuccessNone0.060643s0.172310s
Success
simple_epoll.cSuccessNone0.066793s0.169151s
Success
socket.cSuccessNone0.058858s0.137460s
Success
socket_cloexec.cSuccessNone0.057372s0.131227s
Success
socket_options_advanced.cSuccessNone0.066311s0.201955s
Success
socketepoll.cSuccessNone0.054070s0.126887s
Success
socketpair.cSuccessNone0.056789s0.156410s
Success
socketselect.cSuccessNone0.057121s0.138072s
Success
udp_send_recv.cSuccessNone0.176811s0.310827s
Success
uds-getsockname.cSuccessNone0.055466s0.126812s
Success
uds-nb-select.cSuccessNone2.082054s2.213078s
Success
uds-serverclient.cSuccessNone0.064628s0.197703s
Success
uds-socketselect.cSuccessNone0.055595s0.196421s
Success
uds_listen_poll.cSuccessNone1.063693s1.180647s
Success
writev_socket.cSuccessNone0.059877s0.162275s
Success
Process Tests
barrier_test.cSuccessNone0.051036s0.134978s
Success
chain_thread.cSuccessNone1.053126s1.144960s
Success
ctor_syscall_test.cSuccessNone0.042792s0.102697s
Success
cxa_atexit_test.cSuccessNone0.049108s0.111877s
Success
exec_non_utf8.cSuccessNone0.051353s0.116913s
Success
execve_shebang.cSuccessNone0.052007s0.118566s
Success
exit.cSuccessNone0.050431s0.109231s
Success
exit_failure.cSuccessNone0.051576s0.129775s
Success
exit_group_thread.cSuccessNone0.053669s0.148020s
Success
exit_status_first_wins.cSuccessNone0.055826s0.150046s
Success
flockfile_test.cSuccessNone0.053605s0.145314s
Success
fork2malloc.cSuccessNone0.054821s0.138281s
Success
fork_select.cSuccessNone0.051783s0.143876s
Success
fork_simple.cSuccessNone0.050463s0.128595s
Success
fork_syscall.cSuccessNone0.056199s0.613859s
Success
fork_tls_ctype.cSuccessNone0.055939s0.159059s
Success
forkandopen.cSuccessNone0.055301s0.150406s
Success
forkdup.cSuccessNone0.057651s0.142320s
Success
forkexecuid.cSuccessNone0.050328s0.152422s
Success
forkexecv-arg.cSuccessNone0.050750s0.144542s
Success
forkexecv.cSuccessNone0.048892s0.140410s
Success
forkfiles.cSuccessNone0.054224s0.141405s
Success
forkmalloc.cSuccessNone0.053096s0.131631s
Success
forknodup.cSuccessNone0.053510s0.143666s
Success
function-ptr.cSuccessNone0.047204s0.107182s
Success
getegid_syscall.cSuccessNone0.052878s0.463189s
Success
getgid_syscall.cSuccessNone0.053741s0.481744s
Success
getpid.cSuccessNone0.045494s0.103223s
Success
getpid_syscall.cSuccessNone0.055068s0.459744s
Success
getppid.cSuccessNone0.054397s0.132072s
Success
getppid_syscall.cSuccessNone0.056174s0.379373s
Success
getuid.cSuccessNone0.054122s0.114091s
Success
getuid_syscall.cSuccessNone0.051898s0.239494s
Success
hello-arg.cSuccessNone0.043244s0.106771s
Success
hello.cSuccessNone0.043305s0.099893s
Success
longjmp.cSuccessNone0.043727s0.110642s
Success
mutex.cSuccessNone2.055391s2.133263s
Success
printf_deadlock_smoke.cSuccessNone0.061992s0.166437s
Success
printf_thread_test.cSuccessNone0.051259s0.144376s
Success
sem_forks.cSuccessNone0.055615s0.173298s
Success
setjmp_edge.cSuccessNone0.047455s0.183034s
Success
setsid.cSuccessNone0.044644s0.104502s
Success
template.cSuccessNone0.052497s0.179937s
Success
test_crossmodule_longjmp.cSuccessNone0.053602s0.146782s
Success
test_exec_nofork.cSuccessNone0.051776s0.133674s
Success
test_unlink_open_file.cSuccessNone0.047416s0.105940s
Success
thread-guard.cSuccessNone0.049336s0.128896s
Success
thread-test.cSuccessNone0.047354s0.119368s
Success
thread.cSuccessNone0.047173s0.118176s
Success
thread_cageid_race.cSuccessNone0.048094s0.281958s
Success
tls_test.cSuccessNone0.060088s0.164753s
Success
uname.cSuccessNone0.045864s0.104529s
Success
wait.cSuccessNone0.049153s0.148078s
Success
waitpid_anychild.cSuccessNone0.052637s0.134567s
Success
waitpid_syscall.cSuccessNone1.052504s1.224272s
Success
waitpid_wnohang.cSuccessNone0.052728s0.135366s
Success
Signal Tests
alarm.cSuccessNone7.052418s7.146276s
Success
eintr_fork_signal.cSuccessNone1.054264s1.153479s
Success
kill.cSuccessNone1.052437s1.139336s
Success
pause_test.cSuccessNone1.053777s1.146423s
Success
setitimer.cSuccessNone7.051655s7.156663s
Success
sigalrm.cSuccessNone2.052909s2.140419s
Success
sigaltstack.cSuccessNone0.054632s0.128615s
Success
sigchld.cSuccessNone1.055246s1.139610s
Success
signal-fork.cSuccessNone4.054669s4.136070s
Success
signal-simple.cSuccessNone0.053709s0.119931s
Success
signal_SIGCHLD.cSuccessNone0.056890s0.226531s
Success
signal_fork.cSuccessNone0.048872s0.141191s
Success
signal_int_ignored.cSuccessNone2.052693s2.136906s
Success
signal_kill_cleanup.cSuccessNone1.051152s1.131564s
Success
signal_procmask.cSuccessNone0.047178s0.117634s
Success
signal_read_interrupt.cSuccessNone0.556707s0.643926s
Success
signal_recursive.cSuccessNone0.047892s0.123935s
Success
signal_sa_mask.cSuccessNone0.047092s0.112527s
Success
signal_select_interrupt.cSuccessNone0.559417s0.645349s
Success
signal_write_interrupt.cSuccessNone1.057196s1.138713s
Success
sigpipe.cSuccessNone1.054522s1.149804s
Success
sigprocmask.cSuccessNone1.052791s1.125190s
Success
sigsuspend_test.cSuccessNone1.051796s1.146481s
Success
test_sigsetjmp.cSuccessNone0.053439s0.152756s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.044842s0.107225s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.115603s0.113555s
Success
invalid_access_fork.cSuccessNone0.127595s0.157873s
Success
mmap-negative1.cSuccessNone0.125579s0.116970s
Success
mmap-negative2.cSuccessNone0.118001s0.136650s
Success
Signal Tests
signal_resethand.cSuccessNone1.051739s1.134350s
Success

C++ harness

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccess0.381810s8.585968s
LIBCPP_SORT_OK 1 2 3

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants