Skip to content

Libcpp compilation integration#976

Open
123R3N321 wants to merge 71 commits intomainfrom
libcpp-ren
Open

Libcpp compilation integration#976
123R3N321 wants to merge 71 commits intomainfrom
libcpp-ren

Conversation

@123R3N321
Copy link
Copy Markdown

@123R3N321 123R3N321 commented Mar 23, 2026

Integrate libcpp compilation into main codebase

  1. libcpp compilation toolchain cmake file and compile .sh script used to generate artifacts, stored in artifacts/ directory. Note the toolchain cmake and bash scripts are removed after one-time use to create the artifacts. (According to Alice, they are still tracked in lind-wasm-apps repo?)

  2. Additional makkefile script to compile cpp into wasm/ Note we are suppressing throw-exception syntax. This will be a major fix in the future. See scripts/lind_compile_cpp

  3. documentation in .md, found in docs/ dir.

  4. CI integration with additioanl html rendering in e2e report: added libcpp test report with one singular unit test using the algorithms.h header.

Document changes made by Alice and Ren in an attempt to compile .wasm
from cpp source file
Create simple cpp program using <algorithms> header to test libcpp
headers
Change compilation command from clang to clang++, now the compile script
compiles cpp instead of c. Future changes needed to accomodate both

Also note due to mysterious reasons absolute path is needed when
callling this compile script: scripts/lind_compile <other args>
Add error msg of cpp compilation attempt, which is being fixed right now
Add ignore for llvm external dependencies
Add .cmake to be used for build script to build llvm for .wasm bin
result
Add build script for llvm for .wasm compilation result. Note the
compiled wasm32 .a archive file must be manually migrated to the sysroot
under /build
Modify llvm-project source code needed for compilation. Not tracked in
git but documented and Ren will submit another PR for the documentation
Add cosmetic for .md rendering
Copy link
Copy Markdown
Member

@Yaxuan-w Yaxuan-w left a comment

Choose a reason for hiding this comment

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

We need to discuss how we want to standardize cpp testing.

  • I'm thinking to have a separate folder under tests/ called tests/cpp/ for all cpp unit test
  • cpp compilation scripts can be put under scripts/cpp and put lind_compile into scripts/c, rust version into scripts/rust (or sth similar)

Comment thread scripts/lind_compile
Comment thread scripts/lind_compile Outdated
Comment thread scripts/lind_compile Outdated
@rennergade
Copy link
Copy Markdown
Contributor

I think we need to move most of this to the lind-wasm-apps repo.

We should add the integrations to compile cpp into the lind_compile script however. It should just check that libcpp is properly installed and fail gracefully with "libcpp not installed" error if not.

@123R3N321
Copy link
Copy Markdown
Author

@m-hemmings regarding the CI problem:

Nick has brought to my attention that the current workaround for libcpp header involves this workflow: git clone llvm-18 ->modification of llvm source code -> compile archive files -> copy over to /build/sysroot -> sysroot provides dependency for clang++ to compile cpp source code.

This is problematic. On the one hand, llvm is big and preserving their source code in our repo is confusing; on the other hand, as Alice points out:

Source code and scripts in separate repos will make things hard to understand. We can use prebuilt libcpp.a for ci

However, this implies that, should there be any upgrade of llvm to version beyond 18, we will need to re-create this entire workflow to compile an updated version of the .a archive(s) needed for libcpp header support. I will do my best to document this workflow and, for future improvements, automate the process as far as I can

Nick also points out that we are using llvm-16 in lind-wasm-apps repo, see commit 0e78686; while my PR for lind-wasm repo is now using llvm-18, this is consistent with the docker config in this repo.

@tashabits
Copy link
Copy Markdown
Member

@m-hemmings regarding the CI problem:

Nick has brought to my attention that the current workaround for libcpp header involves this workflow: git clone llvm-18 ->modification of llvm source code -> compile archive files -> copy over to /build/sysroot -> sysroot provides dependency for clang++ to compile cpp source code.

This is problematic. On the one hand, llvm is big and preserving their source code in our repo is confusing; on the other hand, as Alice points out:

Source code and scripts in separate repos will make things hard to understand. We can use prebuilt libcpp.a for ci

However, this implies that, should there be any upgrade of llvm to version beyond 18, we will need to re-create this entire workflow to compile an updated version of the .a archive(s) needed for libcpp header support. I will do my best to document this workflow and, for future improvements, automate the process as far as I can

Nick also points out that we are using llvm-16 in lind-wasm-apps repo, see commit 0e78686; while my PR for lind-wasm repo is now using llvm-18, this is consistent with the docker config in this repo.

Thanks for writing this up. I agree that the current approach puts us in an awkward spot: keeping LLVM source in the repo is heavy and confusing, but moving all of the logic somewhere else also makes the workflow harder to understand and maintain.

I think there is a cleaner middle ground. Instead of treating libc++ support as something we rebuild from LLVM source during normal CI, we could treat it as a versioned toolchain artifact.

Concretely, I would suggest:

  • Keep one documented build script in this repo that knows how to produce the exact libc++ headers and archive files we need for a given LLVM version.
  • Run that script only when we intentionally upgrade LLVM or change the libc++ workflow.
  • Publish the result as a named artifact, for example an LLVM-versioned sysroot overlay or tarball.
  • Have CI download and unpack that artifact instead of cloning and rebuilding LLVM as part of ordinary PR validation.
  • Add one small smoke test in CI that compiles a trivial .cc file with clang++ so we catch regressions immediately.

That gives us a few benefits:

  • The normal CI path stays much smaller and easier to reason about.
  • We keep the process reproducible because the generation script still lives here.
  • We avoid preserving a large LLVM source tree in the repo.
  • Future LLVM upgrades become an intentional refresh of a pinned artifact.

On the versioning point, I do think it would help to align on a single LLVM major version across repos if we can. This repo is already pinned to LLVM 18 in Docker, so moving lind-wasm-apps to the same version would make the overall story much easier to follow.

So in short, my suggestion would be:

  1. Keep the build recipe in-repo.
  2. Stop keeping LLVM source in-repo for day to day CI.
  3. Publish a prebuilt, versioned libc++ support artifact for CI consumption.
  4. Add a simple C++ compile smoke test so the setup stays honest.

What does everyone think about that?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 1, 2026

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 Cases197
Number of Successes196
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.046448s4.309161s
Success
chdir_getcwd.cSuccessNone0.046239s4.283616s
Success
chmod.cSuccessNone0.054089s4.276556s
Success
clock_gettime_highlevel.cSuccessNone0.117408s4.491615s
Success
clock_gettime_simple.cSuccessNone0.041095s4.281810s
Success
cloexec.cSuccessNone0.050209s3.973808s
Success
close.cSuccessNone0.056561s4.319087s
Success
creat_access.cSuccessNone0.050077s4.333374s
Success
doubleclose.cSuccessNone0.042375s3.859863s
Success
dup.cSuccessNone0.043365s4.256929s
Success
dup2.cSuccessNone0.047569s3.927522s
Success
dup3.cSuccessNone0.045562s4.315696s
Success
dupwrite.cSuccessNone0.049809s3.902471s
Success
etc_conf.cSuccessNone0.044033s4.261110s
Success
fchdir.cSuccessNone0.053133s4.332830s
Success
fchmod.cSuccessNone0.051173s4.306699s
Success
fcntl.cSuccessNone0.049868s4.326998s
Success
fdatasync.cSuccessNone0.049217s4.281636s
Success
filetest.cSuccessNone0.049560s3.936932s
Success
filetest1000.cSuccessNone0.056437s3.922592s
Success
flock.cSuccessNone0.057453s4.414321s
Success
fstat.cSuccessNone0.051614s4.304155s
Success
fstatfs.cSuccessNone0.043487s4.270895s
Success
fsync.cSuccessNone0.048594s4.317850s
Success
ftruncate.cSuccessNone0.052904s4.349100s
Success
getcwd.cSuccessNone0.045861s4.351219s
Success
getrandom.cSuccessNone0.049560s4.331193s
Success
ioctl.cSuccessNone0.052800s4.261081s
Success
link.cSuccessNone0.052987s4.305552s
Success
locale_test.cSuccessNone0.062765s6.112623s
Success
lseek.cSuccessNone0.054933s4.373457s
Success
mkdir_rmdir.cSuccessNone0.049661s4.308963s
Success
mkfifo_test.cSuccessNone0.055724s4.416766s
Success
mknod.cSuccessNone0.047699s4.296652s
Success
nocancel_io.cSuccessNone0.052029s5.443273s
Success
open.cSuccessNone0.043857s4.275103s
Success
openat.cSuccessNone0.044697s4.282567s
Success
path_conversion_safety.cSuccessNone0.052757s4.306743s
Success
pread_pwrite.cSuccessNone0.046227s4.283899s
Success
printf.cSuccessNone0.040458s3.894875s
Success
prlimit64.cSuccessNone0.043470s3.891523s
Success
read.cSuccessNone0.050852s4.302704s
Success
readbytes.cSuccessNone0.046197s3.910806s
Success
readlink.cSuccessNone0.049308s4.283324s
Success
readlinkat.cSuccessNone0.050782s4.346479s
Success
readv_writev_test.cSuccessNone0.050999s4.290193s
Success
rename.cSuccessNone0.051756s4.316608s
Success
sc-writev.cSuccessNone0.050147s4.326982s
Success
stat.cSuccessNone0.049762s4.283237s
Success
statfs.cSuccessNone0.044610s4.306482s
Success
sync_file_range.cSuccessNone0.047826s4.322837s
Success
timespec_time_t_compat.cSuccessNone0.045913s5.525005s
Success
truncate.cSuccessNone0.050694s4.340341s
Success
unlink.cSuccessNone0.052751s4.340594s
Success
unlinkat.cSuccessNone0.052714s4.337253s
Success
write.cSuccessNone0.043076s3.883805s
Success
writeloop.cSuccessNone0.051702s3.873747s
Success
writepartial.cSuccessNone0.050236s3.883551s
Success
writev.cSuccessNone0.050713s4.301664s
Success
Math Tests
math_link_smoke.cSuccessNone0.053328s3.928093s
Success
math_tests.cSuccessNone0.056032s4.071071s
Success
Memory Tests
brk.cSuccessNone0.046830s4.282116s
Success
fork_large_memory.cSuccessNone0.078545s4.484730s
Success
malloc.cSuccessNone0.045014s3.884265s
Success
malloc_large.cSuccessNone0.045677s4.278723s
Success
memcpy.cSuccessNone0.044585s3.864130s
Success
memory_error_test.cSuccessNone0.050988s4.309940s
Success
mmap.cSuccessNone0.041490s4.300743s
Success
mmap_aligned.cSuccessNone0.043430s4.274253s
Success
mmap_complicated.cSuccessNone0.048519s4.323577s
Success
mmap_file.cSuccessNone0.050873s4.308581s
Success
mmap_shared.cSuccessNone0.048760s4.308491s
Success
mmaptest.cSuccessNone0.044317s4.269434s
Success
mprotect.cSuccessNone0.043590s4.287085s
Success
mprotect_boundary.cSuccessNone0.043319s4.292127s
Success
mprotect_end_region.cSuccessNone0.042145s4.278203s
Success
mprotect_middle_region.cSuccessNone0.042728s4.309800s
Success
mprotect_multiple_times.cSuccessNone0.043772s4.268611s
Success
mprotect_same_value.cSuccessNone0.043990s4.240596s
Success
mprotect_spanning_regions.cSuccessNone0.044491s4.260593s
Success
sbrk.cSuccessNone0.044447s4.256638s
Success
segfault.cSuccessNone0.050546s4.319283s
Success
shm.cSuccessNone0.049476s4.347083s
Success
shmtest.cSuccessNone0.044001s4.332246s
Success
tcache_test.cFailureUnknown_Failure0.052725s4.466430s
tcache reuse: yes
failed to run main module

Caused by:
0: failed to invoke command default
1: memory fault at wasm address 0xfff9bda8 in linear memory of size 0x100000000
2: wasm trap: out of bounds memory access

thread_malloc_sequential.cSuccessNone0.052861s4.457878s
Success
vtable.cSuccessNone0.055313s3.935089s
Success
Networking Tests
accept4.cSuccessNone0.053935s4.359320s
Success
dns_resolve_test.cSuccessNone0.049742s5.964857s
Success
dnstest.cSuccessNone0.049992s4.312908s
Success
epoll_edge_triggered.cSuccessNone0.209274s4.577059s
Success
epollcreate1.cSuccessNone0.055592s4.326784s
Success
error_handling_net.cSuccessNone0.058653s4.380693s
Success
getaddrinfo_test.cSuccessNone0.054394s6.060535s
Success
getaddrinfo_unspec.cSuccessNone0.049977s6.040521s
Success
gethostname.cSuccessNone0.043097s3.891416s
Success
getifaddrs.cSuccessNone0.051177s4.400824s
Success
getsockname.cSuccessNone0.052946s4.351305s
Success
getsockopt.cSuccessNone0.054791s4.357736s
Success
ipv6_basic.cSuccessNone0.055105s4.356140s
Success
makepipe.cSuccessNone0.043931s3.946674s
Success
nonblocking_eagain.cSuccessNone0.054559s4.352020s
Success
pipe.cSuccessNone0.052111s4.336312s
Success
pipe2.cSuccessNone0.051949s4.312668s
Success
pipeinput.cSuccessNone0.055441s4.439960s
Success
pipeinput2.cSuccessNone0.053475s4.319274s
Success
pipeonestring.cSuccessNone0.052937s4.338745s
Success
pipepong.cSuccessNone0.051742s4.381992s
Success
pipewrite.cSuccessNone0.046120s4.271380s
Success
poll.cSuccessNone0.051110s4.325688s
Success
recvfrom-sendto.cSuccessNone0.052680s4.304122s
Success
sendmsg_recvmsg_test.cSuccessNone0.050984s4.344132s
Success
serverclient.cSuccessNone0.054315s4.005061s
Success
shutdown.cSuccessNone0.053005s3.913264s
Success
shutdown_fork.cSuccessNone0.051060s4.338871s
Success
simple-select.cSuccessNone0.052036s4.328909s
Success
simple_epoll.cSuccessNone0.049966s4.296202s
Success
socket.cSuccessNone0.049723s3.917513s
Success
socket_cloexec.cSuccessNone0.050177s4.297037s
Success
socket_options_advanced.cSuccessNone0.057591s4.388560s
Success
socketepoll.cSuccessNone0.049695s3.928880s
Success
socketpair.cSuccessNone0.050991s4.361787s
Success
socketselect.cSuccessNone0.051024s4.357766s
Success
udp_send_recv.cSuccessNone0.160131s4.471403s
Success
uds-getsockname.cSuccessNone0.050511s4.288205s
Success
uds-nb-select.cSuccessNone2.060796s6.524850s
Success
uds-serverclient.cSuccessNone0.054270s4.371897s
Success
uds-socketselect.cSuccessNone0.051103s3.944687s
Success
writev_socket.cSuccessNone0.057820s4.438432s
Success
Process Tests
barrier_test.cSuccessNone0.049210s4.470897s
Success
chain_thread.cSuccessNone1.050583s5.472855s
Success
ctor_syscall_test.cSuccessNone0.041186s4.327230s
Success
cxa_atexit_test.cSuccessNone0.046725s3.914612s
Success
execve_shebang.cSuccessNone0.049956s4.312926s
Success
exit.cSuccessNone0.047367s3.896327s
Success
exit_failure.cSuccessNone0.049519s3.953208s
Success
exit_group_thread.cSuccessNone0.052246s4.495117s
Success
flockfile_test.cSuccessNone0.049948s4.473778s
Success
fork2malloc.cSuccessNone0.052462s4.331865s
Success
fork_select.cSuccessNone0.049244s4.355163s
Success
fork_simple.cSuccessNone0.047961s4.322145s
Success
fork_syscall.cSuccessNone0.054101s4.405815s
Success
fork_tls_ctype.cSuccessNone0.054529s4.402528s
Success
forkandopen.cSuccessNone0.052115s4.352971s
Success
forkdup.cSuccessNone0.052192s3.965308s
Success
forkexecuid.cSuccessNone0.048065s4.428195s
Success
forkexecv-arg.cSuccessNone0.048243s4.419416s
Success
forkexecv.cSuccessNone0.046991s4.415398s
Success
forkfiles.cSuccessNone0.050543s4.381810s
Success
forkmalloc.cSuccessNone0.051042s4.327020s
Success
forknodup.cSuccessNone0.052471s4.328478s
Success
function-ptr.cSuccessNone0.044566s4.256821s
Success
getegid_syscall.cSuccessNone0.050079s4.365122s
Success
getgid_syscall.cSuccessNone0.052028s4.402643s
Success
getpid.cSuccessNone0.044133s4.284045s
Success
getpid_syscall.cSuccessNone0.052513s4.388864s
Success
getppid.cSuccessNone0.051535s4.358463s
Success
getppid_syscall.cSuccessNone0.054100s4.390808s
Success
getuid.cSuccessNone0.050576s4.294851s
Success
getuid_syscall.cSuccessNone0.049752s4.323311s
Success
hello-arg.cSuccessNone0.042527s3.894170s
Success
hello.cSuccessNone0.042087s3.894619s
Success
longjmp.cSuccessNone0.041979s3.932125s
Success
mutex.cSuccessNone2.053795s6.582238s
Success
printf_deadlock_smoke.cSuccessNone0.059789s4.644165s
Success
printf_thread_test.cSuccessNone0.048633s4.486114s
Success
sem_forks.cSuccessNone0.054148s4.385376s
Success
setsid.cSuccessNone0.044647s3.953425s
Success
template.cSuccessNone0.050706s4.371821s
Success
test_exec_nofork.cSuccessNone0.049205s4.363007s
Success
test_unlink_open_file.cSuccessNone0.045268s3.894472s
Success
thread-test.cSuccessNone0.044493s4.430691s
Success
thread.cSuccessNone0.045167s4.418401s
Success
thread_cageid_race.cSuccessNone0.045720s4.414930s
Success
tls_test.cSuccessNone0.047693s4.458853s
Success
uname.cSuccessNone0.043887s4.308328s
Success
wait.cSuccessNone2.047653s5.969147s
Success
waitpid_anychild.cSuccessNone0.050325s4.350737s
Success
waitpid_syscall.cSuccessNone1.049917s5.378961s
Success
waitpid_wnohang.cSuccessNone0.051360s3.973659s
Success
Signal Tests
alarm.cSuccessNone7.048920s10.958216s
Success
eintr_fork_signal.cSuccessNone1.052124s5.327883s
Success
kill.cSuccessNone1.061291s5.366428s
Success
setitimer.cSuccessNone7.049217s10.963683s
Success
sigalrm.cSuccessNone2.052481s5.960112s
Success
sigchld.cSuccessNone1.052167s4.978745s
Success
signal-fork.cSuccessNone4.053632s7.977422s
Success
signal-simple.cSuccessNone0.054332s3.950884s
Success
signal_SIGCHLD.cSuccessNone0.049154s4.322231s
Success
signal_fork.cSuccessNone0.046199s4.351418s
Success
signal_int_ignored.cSuccessNone2.050213s6.368581s
Success
signal_kill_cleanup.cSuccessNone1.047599s5.331682s
Success
signal_procmask.cSuccessNone0.046081s4.314881s
Success
signal_recursive.cSuccessNone0.044433s3.881102s
Success
signal_sa_mask.cSuccessNone0.054040s3.949470s
Success
sigpipe.cSuccessNone1.051398s5.408193s
Success
sigprocmask.cSuccessNone1.049283s4.913198s
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.107810s4.646358s
Success
mmap-negative2.cSuccessNone0.134803s4.487298s
Success
Signal Tests
signal_resethand.cSuccessNone1.049238s4.994428s
Success

Add libcpp-test and libcpp-out stages.
Increase verbose printf for debugging.
Add /artifact directory verification.
Adjust script calling relative path.
Add tools to dependency path.
Add verbosity in compile step.
Adjust read-only mount to writable.
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.057986s4.532869s
Success
thread.cSuccessNone0.049732s4.582217s
Success
tls_test.cSuccessNone0.058861s4.613481s
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
<details>
Libc++ integration
    <p>Full <code>lind_compile_cpp</code> (wasm-opt + precompile), <code>lind_run</code> on the <code>.cwasm</code>,
    stdout must contain a line exactly <code>LIBCPP_SORT_OK 1 2 3</code>.</p>
    <table border="1" cellspacing="0" cellpadding="6">
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Total</td><td>1</td></tr>
    <tr><td>Success</td><td>1</td></tr>
    <tr><td>Failures</td><td>0</td></tr>
    <tr><td>Compile failures</td><td>0</td></tr>
    <tr><td>Runtime failures</td><td>0</td></tr>
    <tr><td>Output mismatch</td><td>0</td></tr>
    <tr><td>Timeouts</td><td>0</td></tr>
    </table>
    <h3>Cases</h3>
    <table border="1" cellspacing="0" cellpadding="6">
    <tr><th>Test</th><th>Status</th><th>Error type</th><th>Native time</th><th>Wasm time</th><th>Output</th></tr>
    <tr><td>tests/unit-tests/cpp/hello.cpp</td><td>Success</td><td></td><td>N/A</td><td>N/A</td><td><pre>=== compile ===

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.050014s0.147879s
Success
chdir_getcwd.cSuccessNone0.050982s0.100804s
Success
chmod.cSuccessNone0.056297s0.106553s
Success
clock_gettime_highlevel.cSuccessNone0.118834s0.273941s
Success
clock_gettime_simple.cSuccessNone0.046022s0.091678s
Success
cloexec.cSuccessNone0.054895s0.110170s
Success
close.cSuccessNone0.062064s0.122843s
Success
creat_access.cSuccessNone0.054565s0.099969s
Success
doubleclose.cSuccessNone0.045904s0.085066s
Success
dup.cSuccessNone0.046783s0.101442s
Success
dup2.cSuccessNone0.052107s0.096671s
Success
dup3.cSuccessNone0.052056s0.099268s
Success
dupwrite.cSuccessNone0.053939s0.096676s
Success
etc_conf.cSuccessNone0.046039s0.101111s
Success
fchdir.cSuccessNone0.056035s0.108668s
Success
fchmod.cSuccessNone0.056755s0.107816s
Success
fcntl.cSuccessNone0.052798s0.107997s
Success
fdatasync.cSuccessNone0.052702s0.095674s
Success
filetest.cSuccessNone0.051060s0.092022s
Success
filetest1000.cSuccessNone0.061554s0.111217s
Success
flock.cSuccessNone0.063061s0.130477s
Success
fstat.cSuccessNone0.053216s0.102233s
Success
fstatfs.cSuccessNone0.047226s0.094906s
Success
fsync.cSuccessNone0.053199s0.097122s
Success
ftruncate.cSuccessNone0.055510s0.221681s
Success
getcwd.cSuccessNone0.049117s0.088269s
Success
getpgid.cSuccessNone0.046376s0.084108s
Success
getrandom.cSuccessNone0.053489s0.101802s
Success
ioctl.cSuccessNone0.056793s0.104228s
Success
link.cSuccessNone0.057766s0.155747s
Success
locale_test.cSuccessNone0.065809s0.599202s
Success
lseek.cSuccessNone0.058243s0.228879s
Success
lstat.cSuccessNone0.057305s0.111808s
Success
mkdir_rmdir.cSuccessNone0.054391s0.099396s
Success
mkfifo_test.cSuccessNone0.056698s0.133501s
Success
mknod.cSuccessNone0.053086s0.107525s
Success
nocancel_io.cSuccessNone0.056487s0.126982s
Success
open.cSuccessNone0.048195s0.088818s
Success
openat.cSuccessNone0.048663s0.095755s
Success
path_conversion_safety.cSuccessNone0.059254s0.127933s
Success
ppoll.cSuccessNone0.056454s0.106497s
Success
pread_pwrite.cSuccessNone0.051573s0.109291s
Success
preadv_pwritev.cSuccessNone0.054071s0.110945s
Success
printf.cSuccessNone0.043565s0.081111s
Success
prlimit64.cSuccessNone0.044029s0.086704s
Success
read.cSuccessNone0.054361s0.105096s
Success
readbytes.cSuccessNone0.050019s0.092973s
Success
readdir_basic.cSuccessNone0.055766s0.115219s
Success
readlink.cSuccessNone0.053418s0.101813s
Success
readlinkat.cSuccessNone0.055224s0.109672s
Success
readv_writev_test.cSuccessNone0.055735s0.110396s
Success
rename.cSuccessNone0.056122s0.103761s
Success
sc-writev.cSuccessNone0.051850s0.099291s
Success
stat.cSuccessNone0.052486s0.100359s
Success
statfs.cSuccessNone0.046279s0.088315s
Success
symlink.cSuccessNone0.055878s0.131392s
Success
sync_file_range.cSuccessNone0.049357s0.092587s
Success
timespec_time_t_compat.cSuccessNone0.049962s0.092372s
Success
truncate.cSuccessNone0.055449s0.111260s
Success
unlink.cSuccessNone0.056520s0.143445s
Success
unlinkat.cSuccessNone0.053250s0.114537s
Success
write.cSuccessNone0.046980s0.083162s
Success
writeloop.cSuccessNone0.057479s0.097774s
Success
writepartial.cSuccessNone0.054789s0.095069s
Success
writev.cSuccessNone0.054959s0.110196s
Success
Math Tests
math_link_smoke.cSuccessNone0.056647s0.094943s
Success
math_tests.cSuccessNone0.061207s0.113556s
Success
Memory Tests
brk.cSuccessNone0.051422s0.098282s
Success
fork_large_memory.cSuccessNone0.084735s0.354447s
Success
malloc.cSuccessNone0.048853s0.089779s
Success
malloc_large.cSuccessNone0.049670s0.093338s
Success
memcpy.cSuccessNone0.048463s0.090227s
Success
memory_error_test.cSuccessNone0.055901s0.130927s
Success
mmap.cSuccessNone0.045724s0.090537s
Success
mmap_aligned.cSuccessNone0.048293s0.106490s
Success
mmap_complicated.cSuccessNone0.054426s0.108657s
Success
mmap_file.cSuccessNone0.054756s0.101426s
Success
mmap_shared.cSuccessNone0.052295s0.103464s
Success
mmaptest.cSuccessNone0.048763s0.094256s
Success
mprotect.cSuccessNone0.046784s0.088803s
Success
mprotect_boundary.cSuccessNone0.047375s0.105952s
Success
mprotect_end_region.cSuccessNone0.047066s0.095811s
Success
mprotect_middle_region.cSuccessNone0.046464s0.100778s
Success
mprotect_multiple_times.cSuccessNone0.046416s0.099179s
Success
mprotect_same_value.cSuccessNone0.046253s0.094309s
Success
mprotect_spanning_regions.cSuccessNone0.046922s0.114456s
Success
munmap_adjacent_shm.cSuccessNone0.048782s0.103870s
Success
sbrk.cSuccessNone0.048493s0.089417s
Success
segfault.cSuccessNone0.054834s0.114976s
Success
shm.cSuccessNone0.053971s0.111121s
Success
shmtest.cSuccessNone0.050635s0.094996s
Success
thread_malloc_sequential.cSuccessNone0.054875s0.120142s
Success
vtable.cSuccessNone0.058274s0.112697s
Success
Networking Tests
accept4.cSuccessNone0.059948s0.116856s
Success
dns_resolve_test.cSuccessNone0.053767s0.101243s
Success
dnstest.cSuccessNone0.053627s0.108838s
Success
epoll_edge_triggered.cSuccessNone0.211978s0.457070s
Success
epollcreate1.cSuccessNone0.055720s0.110030s
Success
error_handling_net.cSuccessNone0.062922s0.218023s
Success
getaddrinfo_test.cSuccessNone0.057346s0.144153s
Success
getaddrinfo_unspec.cSuccessNone0.067074s0.118004s
Success
gethostname.cSuccessNone0.049548s0.087192s
Success
getifaddrs.cSuccessNone0.056288s0.100995s
Success
getsockname.cSuccessNone0.059754s0.104803s
Success
getsockopt.cSuccessNone0.057903s0.157112s
Success
ipv6_basic.cSuccessNone0.059906s0.145256s
Success
makepipe.cSuccessNone0.047290s0.086820s
Success
nonblocking_eagain.cSuccessNone0.059742s0.164248s
Success
pipe.cSuccessNone0.056961s0.108325s
Success
pipe2.cSuccessNone0.056211s0.102523s
Success
pipeinput.cSuccessNone0.058321s0.120812s
Success
pipeinput2.cSuccessNone0.058246s0.119562s
Success
pipeonestring.cSuccessNone0.057772s0.118418s
Success
pipepong.cSuccessNone0.056855s0.122460s
Success
pipewrite.cSuccessNone0.049431s0.102227s
Success
poll.cSuccessNone0.054464s0.096218s
Success
recvfrom-sendto.cSuccessNone0.056541s0.107679s
Success
sendmsg_recvmsg_test.cSuccessNone0.056056s0.111626s
Success
serverclient.cSuccessNone0.055710s0.106612s
Success
shutdown.cSuccessNone0.059048s0.107346s
Success
shutdown_fork.cSuccessNone0.055426s0.108628s
Success
simple-select.cSuccessNone0.056833s0.122013s
Success
simple_epoll.cSuccessNone0.055168s0.104543s
Success
socket.cSuccessNone0.053042s0.096862s
Success
socket_cloexec.cSuccessNone0.053431s0.097056s
Success
socket_options_advanced.cSuccessNone0.061733s0.176452s
Success
socketepoll.cSuccessNone0.053909s0.099922s
Success
socketpair.cSuccessNone0.052829s0.104223s
Success
socketselect.cSuccessNone0.055123s0.104388s
Success
udp_send_recv.cSuccessNone0.163829s0.262617s
Success
uds-getsockname.cSuccessNone0.054928s0.097673s
Success
uds-nb-select.cSuccessNone2.064884s2.154526s
Success
uds-serverclient.cSuccessNone0.059843s0.129961s
Success
uds-socketselect.cSuccessNone0.055365s0.105520s
Success
writev_socket.cSuccessNone0.058565s0.139934s
Success
Process Tests
barrier_test.cSuccessNone0.053386s0.100778s
Success
chain_thread.cSuccessNone1.055017s1.108838s
Success
ctor_syscall_test.cSuccessNone0.044419s0.086091s
Success
cxa_atexit_test.cSuccessNone0.051175s0.091819s
Success
execve_shebang.cSuccessNone0.055841s0.101161s
Success
exit.cSuccessNone0.052043s0.091469s
Success
exit_failure.cSuccessNone0.054240s0.099191s
Success
exit_group_thread.cSuccessNone0.055590s0.107677s
Success
flockfile_test.cSuccessNone0.055567s0.111283s
Success
fork2malloc.cSuccessNone0.055422s0.107397s
Success
fork_select.cSuccessNone0.053092s0.112639s
Success
fork_simple.cSuccessNone0.052472s0.099004s
Success
fork_syscall.cSuccessNone0.059566s0.228812s
Success
fork_tls_ctype.cSuccessNone0.056892s0.127411s
Success
forkandopen.cSuccessNone0.055994s0.117753s
Success
forkdup.cSuccessNone0.058269s0.108333s
Success
forkexecuid.cSuccessNone0.053536s0.115307s
Success
forkexecv-arg.cSuccessNone0.054758s0.105570s
Success
forkexecv.cSuccessNone0.052231s0.100840s
Success
forkfiles.cSuccessNone0.054940s0.111415s
Success
forkmalloc.cSuccessNone0.055222s0.102978s
Success
forknodup.cSuccessNone0.055871s0.112447s
Success
function-ptr.cSuccessNone0.049670s0.091739s
Success
getegid_syscall.cSuccessNone0.054935s0.195288s
Success
getgid_syscall.cSuccessNone0.055791s0.198666s
Success
getpid.cSuccessNone0.047722s0.087986s
Success
getpid_syscall.cSuccessNone0.057569s0.216416s
Success
getppid.cSuccessNone0.054662s0.100615s
Success
getppid_syscall.cSuccessNone0.057425s0.176633s
Success
getuid.cSuccessNone0.055352s0.098235s
Success
getuid_syscall.cSuccessNone0.053537s0.137658s
Success
hello-arg.cSuccessNone0.045412s0.086867s
Success
hello.cSuccessNone0.044863s0.082400s
Success
longjmp.cSuccessNone0.046488s0.089854s
Success
mutex.cSuccessNone2.057805s2.106931s
Success
printf_deadlock_smoke.cSuccessNone0.064491s0.130436s
Success
printf_thread_test.cSuccessNone0.052932s0.107630s
Success
sem_forks.cSuccessNone0.057427s0.115923s
Success
setsid.cSuccessNone0.046618s0.086318s
Success
template.cSuccessNone0.054045s0.119840s
Success
test_exec_nofork.cSuccessNone0.053372s0.103048s
Success
test_unlink_open_file.cSuccessNone0.050097s0.090982s
Success
thread-guard.cSuccessNone0.051939s0.103527s
Success
thread-test.cSuccessNone0.048543s0.093654s
Success
thread.cSuccessNone0.049198s0.093369s
Success
thread_cageid_race.cSuccessNone0.050420s0.113301s
Success
tls_test.cSuccessNone0.053733s0.103921s
Success
uname.cSuccessNone0.047213s0.087796s
Success
wait.cSuccessNone2.051170s2.102650s
Success
waitpid_anychild.cSuccessNone0.056501s0.104085s
Success
waitpid_syscall.cSuccessNone1.054259s1.135914s
Success
waitpid_wnohang.cSuccessNone0.056472s0.103997s
Success
Signal Tests
alarm.cSuccessNone7.054154s7.127141s
Success
eintr_fork_signal.cSuccessNone1.058010s1.119132s
Success
kill.cSuccessNone1.054097s1.104586s
Success
setitimer.cSuccessNone7.055080s7.133114s
Success
sigalrm.cSuccessNone2.054580s2.112152s
Success
sigaltstack.cSuccessNone0.055677s0.107927s
Success
sigchld.cSuccessNone1.056722s1.104660s
Success
signal-fork.cSuccessNone4.055386s4.107190s
Success
signal-simple.cSuccessNone0.057461s0.101465s
Success
signal_SIGCHLD.cSuccessNone0.053899s0.107127s
Success
signal_fork.cSuccessNone0.050818s0.105525s
Success
signal_int_ignored.cSuccessNone2.055322s2.105596s
Success
signal_kill_cleanup.cSuccessNone1.052717s1.106074s
Success
signal_procmask.cSuccessNone0.048961s0.097953s
Success
signal_read_interrupt.cSuccessNone0.558419s0.612830s
Success
signal_recursive.cSuccessNone0.049435s0.101441s
Success
signal_sa_mask.cSuccessNone0.049146s0.094243s
Success
signal_select_interrupt.cSuccessNone0.558598s0.614533s
Success
signal_write_interrupt.cSuccessNone1.057375s1.117453s
Success
sigpipe.cSuccessNone1.057437s1.111395s
Success
sigprocmask.cSuccessNone1.053909s1.103212s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.045986s0.087237s
Success
Memory Tests
mmap-negative1.cSuccessNone0.134189s0.104823s
Success
mmap-negative2.cSuccessNone0.114058s0.107608s
Success
Signal Tests
signal_resethand.cSuccessNone1.054719s1.102370s
Success
<details>
Libc++ integration
    <p>Full <code>lind_compile_cpp</code> (wasm-opt + precompile), <code>lind_run</code> on the <code>.cwasm</code>,
    stdout must contain a line exactly <code>LIBCPP_SORT_OK 1 2 3</code>.</p>
    <table border="1" cellspacing="0" cellpadding="6">
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Total</td><td>1</td></tr>
    <tr><td>Success</td><td>1</td></tr>
    <tr><td>Failures</td><td>0</td></tr>
    <tr><td>Compile failures</td><td>0</td></tr>
    <tr><td>Runtime failures</td><td>0</td></tr>
    <tr><td>Output mismatch</td><td>0</td></tr>
    <tr><td>Timeouts</td><td>0</td></tr>
    </table>
    <h3>Cases</h3>
    <table border="1" cellspacing="0" cellpadding="6">
    <tr><th>Test</th><th>Status</th><th>Error type</th><th>Native time</th><th>Wasm time</th><th>Output</th></tr>
    <tr><td>tests/unit-tests/cpp/hello.cpp</td><td>Success</td><td></td><td>N/A</td><td>N/A</td><td><pre>=== compile ===

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.056402s4.390135s
Success
thread.cSuccessNone0.051476s4.389633s
Success
tls_test.cSuccessNone0.060755s4.418542s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
=== compile ===
OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.062415s0.165842s
Success
chdir_getcwd.cSuccessNone0.050976s0.101501s
Success
chmod.cSuccessNone0.054911s0.105270s
Success
clock_gettime_highlevel.cSuccessNone0.124363s0.327910s
Success
clock_gettime_simple.cSuccessNone0.046022s0.090401s
Success
cloexec.cSuccessNone0.055978s0.109536s
Success
close.cSuccessNone0.063299s0.126415s
Success
creat_access.cSuccessNone0.053254s0.098906s
Success
doubleclose.cSuccessNone0.047552s0.087584s
Success
dup.cSuccessNone0.047681s0.101077s
Success
dup2.cSuccessNone0.051551s0.097096s
Success
dup3.cSuccessNone0.050373s0.098848s
Success
dupwrite.cSuccessNone0.052734s0.095439s
Success
etc_conf.cSuccessNone0.051536s0.109086s
Success
fchdir.cSuccessNone0.055194s0.107882s
Success
fchmod.cSuccessNone0.055405s0.106304s
Success
fcntl.cSuccessNone0.053089s0.106934s
Success
fdatasync.cSuccessNone0.053479s0.097323s
Success
filetest.cSuccessNone0.052698s0.096262s
Success
filetest1000.cSuccessNone0.062248s0.113268s
Success
flock.cSuccessNone0.060019s0.127424s
Success
fstat.cSuccessNone0.055018s0.110224s
Success
fstatfs.cSuccessNone0.048426s0.092537s
Success
fsync.cSuccessNone0.053762s0.096587s
Success
ftruncate.cSuccessNone0.056637s0.212030s
Success
getcwd.cSuccessNone0.050827s0.093964s
Success
getpgid.cSuccessNone0.047410s0.088094s
Success
getrandom.cSuccessNone0.052548s0.100269s
Success
ioctl.cSuccessNone0.054561s0.101851s
Success
link.cSuccessNone0.055718s0.152677s
Success
locale_test.cSuccessNone0.065083s0.569520s
Success
lseek.cSuccessNone0.056484s0.213730s
Success
lstat.cSuccessNone0.056126s0.113079s
Success
mkdir_rmdir.cSuccessNone0.055787s0.099958s
Success
mkfifo_test.cSuccessNone0.060071s0.137356s
Success
mknod.cSuccessNone0.051926s0.106108s
Success
nocancel_io.cSuccessNone0.055968s0.127354s
Success
open.cSuccessNone0.047837s0.089027s
Success
openat.cSuccessNone0.049188s0.096303s
Success
path_conversion_safety.cSuccessNone0.057433s0.125721s
Success
ppoll.cSuccessNone0.056167s0.107551s
Success
pread_pwrite.cSuccessNone0.050890s0.107190s
Success
preadv_pwritev.cSuccessNone0.055206s0.113384s
Success
printf.cSuccessNone0.044882s0.084844s
Success
prlimit64.cSuccessNone0.047027s0.093469s
Success
read.cSuccessNone0.055255s0.106496s
Success
readbytes.cSuccessNone0.051165s0.096762s
Success
readdir_basic.cSuccessNone0.057471s0.116246s
Success
readlink.cSuccessNone0.052873s0.103273s
Success
readlinkat.cSuccessNone0.055751s0.110036s
Success
readv_writev_test.cSuccessNone0.054614s0.109320s
Success
rename.cSuccessNone0.055025s0.102499s
Success
sc-writev.cSuccessNone0.051147s0.098118s
Success
stat.cSuccessNone0.057449s0.108365s
Success
statfs.cSuccessNone0.047908s0.092579s
Success
symlink.cSuccessNone0.054925s0.132336s
Success
sync_file_range.cSuccessNone0.050934s0.095975s
Success
timespec_time_t_compat.cSuccessNone0.050390s0.093241s
Success
truncate.cSuccessNone0.056896s0.116395s
Success
unlink.cSuccessNone0.056582s0.141874s
Success
unlinkat.cSuccessNone0.057555s0.120401s
Success
write.cSuccessNone0.048371s0.088954s
Success
writeloop.cSuccessNone0.056205s0.097684s
Success
writepartial.cSuccessNone0.055807s0.097247s
Success
writev.cSuccessNone0.054349s0.111006s
Success
Math Tests
math_link_smoke.cSuccessNone0.056808s0.094074s
Success
math_tests.cSuccessNone0.063431s0.113062s
Success
Memory Tests
brk.cSuccessNone0.051180s0.097778s
Success
fork_large_memory.cSuccessNone0.084079s0.346691s
Success
malloc.cSuccessNone0.049578s0.088708s
Success
malloc_large.cSuccessNone0.049484s0.094029s
Success
memcpy.cSuccessNone0.048914s0.089417s
Success
memory_error_test.cSuccessNone0.057531s0.150738s
Success
mmap.cSuccessNone0.046186s0.090237s
Success
mmap_aligned.cSuccessNone0.048760s0.109808s
Success
mmap_complicated.cSuccessNone0.054059s0.106826s
Success
mmap_file.cSuccessNone0.053742s0.099986s
Success
mmap_shared.cSuccessNone0.052492s0.103853s
Success
mmaptest.cSuccessNone0.049412s0.094590s
Success
mprotect.cSuccessNone0.047551s0.089509s
Success
mprotect_boundary.cSuccessNone0.048886s0.107283s
Success
mprotect_end_region.cSuccessNone0.047370s0.098087s
Success
mprotect_middle_region.cSuccessNone0.047236s0.100434s
Success
mprotect_multiple_times.cSuccessNone0.047297s0.100424s
Success
mprotect_same_value.cSuccessNone0.047264s0.096565s
Success
mprotect_spanning_regions.cSuccessNone0.047779s0.115984s
Success
munmap_adjacent_shm.cSuccessNone0.049766s0.105337s
Success
sbrk.cSuccessNone0.049198s0.089836s
Success
segfault.cSuccessNone0.058591s0.116289s
Success
shm.cSuccessNone0.052727s0.109213s
Success
shmtest.cSuccessNone0.060531s0.118020s
Success
thread_malloc_sequential.cSuccessNone0.054777s0.117675s
Success
vtable.cSuccessNone0.057739s0.111968s
Success
Networking Tests
accept4.cSuccessNone0.057836s0.113566s
Success
dns_resolve_test.cSuccessNone0.053146s0.100736s
Success
dnstest.cSuccessNone0.052990s0.107223s
Success
epoll_edge_triggered.cSuccessNone0.210694s0.441786s
Success
epollcreate1.cSuccessNone0.054926s0.108173s
Success
error_handling_net.cSuccessNone0.061786s0.208861s
Success
getaddrinfo_test.cSuccessNone0.056920s0.142432s
Success
getaddrinfo_unspec.cSuccessNone0.061729s0.146920s
Success
gethostname.cSuccessNone0.047505s0.087746s
Success
getifaddrs.cSuccessNone0.054914s0.100001s
Success
getsockname.cSuccessNone0.059273s0.104121s
Success
getsockopt.cSuccessNone0.056734s0.153618s
Success
ipv6_basic.cSuccessNone0.057218s0.144053s
Success
makepipe.cSuccessNone0.047581s0.085588s
Success
nonblocking_eagain.cSuccessNone0.058199s0.161916s
Success
pipe.cSuccessNone0.055901s0.106503s
Success
pipe2.cSuccessNone0.054924s0.101213s
Success
pipeinput.cSuccessNone0.056072s0.117927s
Success
pipeinput2.cSuccessNone0.056346s0.124529s
Success
pipeonestring.cSuccessNone0.056135s0.117953s
Success
pipepong.cSuccessNone0.056320s0.122120s
Success
pipewrite.cSuccessNone0.050196s0.101863s
Success
poll.cSuccessNone0.053370s0.095802s
Success
recvfrom-sendto.cSuccessNone0.055074s0.107080s
Success
sendmsg_recvmsg_test.cSuccessNone0.054172s0.108368s
Success
serverclient.cSuccessNone0.054782s0.104665s
Success
shutdown.cSuccessNone0.055725s0.104459s
Success
shutdown_fork.cSuccessNone0.055377s0.107898s
Success
simple-select.cSuccessNone0.055399s0.119158s
Success
simple_epoll.cSuccessNone0.054590s0.103993s
Success
socket.cSuccessNone0.053408s0.095865s
Success
socket_cloexec.cSuccessNone0.054380s0.098643s
Success
socket_options_advanced.cSuccessNone0.059269s0.178313s
Success
socketepoll.cSuccessNone0.053133s0.097989s
Success
socketpair.cSuccessNone0.052690s0.103653s
Success
socketselect.cSuccessNone0.053277s0.103307s
Success
udp_send_recv.cSuccessNone0.173320s0.262312s
Success
uds-getsockname.cSuccessNone0.053904s0.096814s
Success
uds-nb-select.cSuccessNone2.064986s2.153354s
Success
uds-serverclient.cSuccessNone0.057979s0.127166s
Success
uds-socketselect.cSuccessNone0.054295s0.102575s
Success
writev_socket.cSuccessNone0.056895s0.138691s
Success
Process Tests
barrier_test.cSuccessNone0.053043s0.100618s
Success
chain_thread.cSuccessNone1.054741s1.106907s
Success
ctor_syscall_test.cSuccessNone0.045246s0.086089s
Success
cxa_atexit_test.cSuccessNone0.051193s0.093669s
Success
execve_shebang.cSuccessNone0.054634s0.108509s
Success
exit.cSuccessNone0.052001s0.091759s
Success
exit_failure.cSuccessNone0.052848s0.097856s
Success
exit_group_thread.cSuccessNone0.055499s0.107616s
Success
flockfile_test.cSuccessNone0.054816s0.112859s
Success
fork2malloc.cSuccessNone0.055341s0.107473s
Success
fork_select.cSuccessNone0.053686s0.113034s
Success
fork_simple.cSuccessNone0.052443s0.098849s
Success
fork_syscall.cSuccessNone0.058127s0.222488s
Success
fork_tls_ctype.cSuccessNone0.055822s0.126599s
Success
forkandopen.cSuccessNone0.055936s0.117985s
Success
forkdup.cSuccessNone0.057733s0.106236s
Success
forkexecuid.cSuccessNone0.068531s0.117284s
Success
forkexecv-arg.cSuccessNone0.054929s0.104060s
Success
forkexecv.cSuccessNone0.054188s0.103095s
Success
forkfiles.cSuccessNone0.055599s0.112968s
Success
forkmalloc.cSuccessNone0.055265s0.102413s
Success
forknodup.cSuccessNone0.054849s0.111309s
Success
function-ptr.cSuccessNone0.049314s0.092198s
Success
getegid_syscall.cSuccessNone0.054572s0.189753s
Success
getgid_syscall.cSuccessNone0.055086s0.195472s
Success
getpid.cSuccessNone0.047925s0.088424s
Success
getpid_syscall.cSuccessNone0.055955s0.207660s
Success
getppid.cSuccessNone0.054770s0.101625s
Success
getppid_syscall.cSuccessNone0.057500s0.171681s
Success
getuid.cSuccessNone0.054625s0.097794s
Success
getuid_syscall.cSuccessNone0.053199s0.136605s
Success
hello-arg.cSuccessNone0.046143s0.089157s
Success
hello.cSuccessNone0.045980s0.084910s
Success
longjmp.cSuccessNone0.047364s0.090058s
Success
mutex.cSuccessNone2.056249s2.105277s
Success
printf_deadlock_smoke.cSuccessNone0.062461s0.130694s
Success
printf_thread_test.cSuccessNone0.053179s0.106672s
Success
sem_forks.cSuccessNone0.056575s0.114099s
Success
setsid.cSuccessNone0.048355s0.087515s
Success
template.cSuccessNone0.054644s0.118953s
Success
test_exec_nofork.cSuccessNone0.052382s0.100199s
Success
test_unlink_open_file.cSuccessNone0.049086s0.088485s
Success
thread-guard.cSuccessNone0.051845s0.102320s
Success
thread-test.cSuccessNone0.049280s0.093589s
Success
thread.cSuccessNone0.049580s0.092820s
Success
thread_cageid_race.cSuccessNone0.050173s0.112817s
Success
tls_test.cSuccessNone0.052209s0.103559s
Success
uname.cSuccessNone0.048323s0.088771s
Success
wait.cSuccessNone2.052479s2.103321s
Success
waitpid_anychild.cSuccessNone0.054990s0.102627s
Success
waitpid_syscall.cSuccessNone1.054757s1.132314s
Success
waitpid_wnohang.cSuccessNone0.055062s0.103147s
Success
Signal Tests
alarm.cSuccessNone7.053325s7.147580s
Success
eintr_fork_signal.cSuccessNone1.055313s1.112624s
Success
kill.cSuccessNone1.053308s1.103476s
Success
setitimer.cSuccessNone7.054631s7.131224s
Success
sigalrm.cSuccessNone2.053561s2.109603s
Success
sigaltstack.cSuccessNone0.055424s0.107158s
Success
sigchld.cSuccessNone1.055478s1.103263s
Success
signal-fork.cSuccessNone4.055180s4.105636s
Success
signal-simple.cSuccessNone0.054759s0.099244s
Success
signal_SIGCHLD.cSuccessNone0.052760s0.105214s
Success
signal_fork.cSuccessNone0.050744s0.105892s
Success
signal_int_ignored.cSuccessNone2.054339s2.103552s
Success
signal_kill_cleanup.cSuccessNone1.059094s1.102465s
Success
signal_procmask.cSuccessNone0.049715s0.098018s
Success
signal_read_interrupt.cSuccessNone0.557597s0.611254s
Success
signal_recursive.cSuccessNone0.049047s0.099190s
Success
signal_sa_mask.cSuccessNone0.049362s0.096117s
Success
signal_select_interrupt.cSuccessNone0.557633s0.612552s
Success
signal_write_interrupt.cSuccessNone1.056248s1.112089s
Success
sigpipe.cSuccessNone1.056087s1.109609s
Success
sigprocmask.cSuccessNone1.053580s1.103049s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.046980s0.088808s
Success
Memory Tests
mmap-negative1.cSuccessNone0.137780s0.107977s
Success
mmap-negative2.cSuccessNone0.128571s0.105573s
Success
Signal Tests
signal_resethand.cSuccessNone1.053542s1.101488s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
=== compile ===
OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

@Yaxuan-w Yaxuan-w requested a review from Uk-jake April 27, 2026 21:16
@Yaxuan-w
Copy link
Copy Markdown
Member

Tagging @Uk-jake for CI related reviews

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.056402s4.390135s
Success
thread.cSuccessNone0.051476s4.389633s
Success
tls_test.cSuccessNone0.060755s4.418542s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
=== compile ===
OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.062415s0.165842s
Success
chdir_getcwd.cSuccessNone0.050976s0.101501s
Success
chmod.cSuccessNone0.054911s0.105270s
Success
clock_gettime_highlevel.cSuccessNone0.124363s0.327910s
Success
clock_gettime_simple.cSuccessNone0.046022s0.090401s
Success
cloexec.cSuccessNone0.055978s0.109536s
Success
close.cSuccessNone0.063299s0.126415s
Success
creat_access.cSuccessNone0.053254s0.098906s
Success
doubleclose.cSuccessNone0.047552s0.087584s
Success
dup.cSuccessNone0.047681s0.101077s
Success
dup2.cSuccessNone0.051551s0.097096s
Success
dup3.cSuccessNone0.050373s0.098848s
Success
dupwrite.cSuccessNone0.052734s0.095439s
Success
etc_conf.cSuccessNone0.051536s0.109086s
Success
fchdir.cSuccessNone0.055194s0.107882s
Success
fchmod.cSuccessNone0.055405s0.106304s
Success
fcntl.cSuccessNone0.053089s0.106934s
Success
fdatasync.cSuccessNone0.053479s0.097323s
Success
filetest.cSuccessNone0.052698s0.096262s
Success
filetest1000.cSuccessNone0.062248s0.113268s
Success
flock.cSuccessNone0.060019s0.127424s
Success
fstat.cSuccessNone0.055018s0.110224s
Success
fstatfs.cSuccessNone0.048426s0.092537s
Success
fsync.cSuccessNone0.053762s0.096587s
Success
ftruncate.cSuccessNone0.056637s0.212030s
Success
getcwd.cSuccessNone0.050827s0.093964s
Success
getpgid.cSuccessNone0.047410s0.088094s
Success
getrandom.cSuccessNone0.052548s0.100269s
Success
ioctl.cSuccessNone0.054561s0.101851s
Success
link.cSuccessNone0.055718s0.152677s
Success
locale_test.cSuccessNone0.065083s0.569520s
Success
lseek.cSuccessNone0.056484s0.213730s
Success
lstat.cSuccessNone0.056126s0.113079s
Success
mkdir_rmdir.cSuccessNone0.055787s0.099958s
Success
mkfifo_test.cSuccessNone0.060071s0.137356s
Success
mknod.cSuccessNone0.051926s0.106108s
Success
nocancel_io.cSuccessNone0.055968s0.127354s
Success
open.cSuccessNone0.047837s0.089027s
Success
openat.cSuccessNone0.049188s0.096303s
Success
path_conversion_safety.cSuccessNone0.057433s0.125721s
Success
ppoll.cSuccessNone0.056167s0.107551s
Success
pread_pwrite.cSuccessNone0.050890s0.107190s
Success
preadv_pwritev.cSuccessNone0.055206s0.113384s
Success
printf.cSuccessNone0.044882s0.084844s
Success
prlimit64.cSuccessNone0.047027s0.093469s
Success
read.cSuccessNone0.055255s0.106496s
Success
readbytes.cSuccessNone0.051165s0.096762s
Success
readdir_basic.cSuccessNone0.057471s0.116246s
Success
readlink.cSuccessNone0.052873s0.103273s
Success
readlinkat.cSuccessNone0.055751s0.110036s
Success
readv_writev_test.cSuccessNone0.054614s0.109320s
Success
rename.cSuccessNone0.055025s0.102499s
Success
sc-writev.cSuccessNone0.051147s0.098118s
Success
stat.cSuccessNone0.057449s0.108365s
Success
statfs.cSuccessNone0.047908s0.092579s
Success
symlink.cSuccessNone0.054925s0.132336s
Success
sync_file_range.cSuccessNone0.050934s0.095975s
Success
timespec_time_t_compat.cSuccessNone0.050390s0.093241s
Success
truncate.cSuccessNone0.056896s0.116395s
Success
unlink.cSuccessNone0.056582s0.141874s
Success
unlinkat.cSuccessNone0.057555s0.120401s
Success
write.cSuccessNone0.048371s0.088954s
Success
writeloop.cSuccessNone0.056205s0.097684s
Success
writepartial.cSuccessNone0.055807s0.097247s
Success
writev.cSuccessNone0.054349s0.111006s
Success
Math Tests
math_link_smoke.cSuccessNone0.056808s0.094074s
Success
math_tests.cSuccessNone0.063431s0.113062s
Success
Memory Tests
brk.cSuccessNone0.051180s0.097778s
Success
fork_large_memory.cSuccessNone0.084079s0.346691s
Success
malloc.cSuccessNone0.049578s0.088708s
Success
malloc_large.cSuccessNone0.049484s0.094029s
Success
memcpy.cSuccessNone0.048914s0.089417s
Success
memory_error_test.cSuccessNone0.057531s0.150738s
Success
mmap.cSuccessNone0.046186s0.090237s
Success
mmap_aligned.cSuccessNone0.048760s0.109808s
Success
mmap_complicated.cSuccessNone0.054059s0.106826s
Success
mmap_file.cSuccessNone0.053742s0.099986s
Success
mmap_shared.cSuccessNone0.052492s0.103853s
Success
mmaptest.cSuccessNone0.049412s0.094590s
Success
mprotect.cSuccessNone0.047551s0.089509s
Success
mprotect_boundary.cSuccessNone0.048886s0.107283s
Success
mprotect_end_region.cSuccessNone0.047370s0.098087s
Success
mprotect_middle_region.cSuccessNone0.047236s0.100434s
Success
mprotect_multiple_times.cSuccessNone0.047297s0.100424s
Success
mprotect_same_value.cSuccessNone0.047264s0.096565s
Success
mprotect_spanning_regions.cSuccessNone0.047779s0.115984s
Success
munmap_adjacent_shm.cSuccessNone0.049766s0.105337s
Success
sbrk.cSuccessNone0.049198s0.089836s
Success
segfault.cSuccessNone0.058591s0.116289s
Success
shm.cSuccessNone0.052727s0.109213s
Success
shmtest.cSuccessNone0.060531s0.118020s
Success
thread_malloc_sequential.cSuccessNone0.054777s0.117675s
Success
vtable.cSuccessNone0.057739s0.111968s
Success
Networking Tests
accept4.cSuccessNone0.057836s0.113566s
Success
dns_resolve_test.cSuccessNone0.053146s0.100736s
Success
dnstest.cSuccessNone0.052990s0.107223s
Success
epoll_edge_triggered.cSuccessNone0.210694s0.441786s
Success
epollcreate1.cSuccessNone0.054926s0.108173s
Success
error_handling_net.cSuccessNone0.061786s0.208861s
Success
getaddrinfo_test.cSuccessNone0.056920s0.142432s
Success
getaddrinfo_unspec.cSuccessNone0.061729s0.146920s
Success
gethostname.cSuccessNone0.047505s0.087746s
Success
getifaddrs.cSuccessNone0.054914s0.100001s
Success
getsockname.cSuccessNone0.059273s0.104121s
Success
getsockopt.cSuccessNone0.056734s0.153618s
Success
ipv6_basic.cSuccessNone0.057218s0.144053s
Success
makepipe.cSuccessNone0.047581s0.085588s
Success
nonblocking_eagain.cSuccessNone0.058199s0.161916s
Success
pipe.cSuccessNone0.055901s0.106503s
Success
pipe2.cSuccessNone0.054924s0.101213s
Success
pipeinput.cSuccessNone0.056072s0.117927s
Success
pipeinput2.cSuccessNone0.056346s0.124529s
Success
pipeonestring.cSuccessNone0.056135s0.117953s
Success
pipepong.cSuccessNone0.056320s0.122120s
Success
pipewrite.cSuccessNone0.050196s0.101863s
Success
poll.cSuccessNone0.053370s0.095802s
Success
recvfrom-sendto.cSuccessNone0.055074s0.107080s
Success
sendmsg_recvmsg_test.cSuccessNone0.054172s0.108368s
Success
serverclient.cSuccessNone0.054782s0.104665s
Success
shutdown.cSuccessNone0.055725s0.104459s
Success
shutdown_fork.cSuccessNone0.055377s0.107898s
Success
simple-select.cSuccessNone0.055399s0.119158s
Success
simple_epoll.cSuccessNone0.054590s0.103993s
Success
socket.cSuccessNone0.053408s0.095865s
Success
socket_cloexec.cSuccessNone0.054380s0.098643s
Success
socket_options_advanced.cSuccessNone0.059269s0.178313s
Success
socketepoll.cSuccessNone0.053133s0.097989s
Success
socketpair.cSuccessNone0.052690s0.103653s
Success
socketselect.cSuccessNone0.053277s0.103307s
Success
udp_send_recv.cSuccessNone0.173320s0.262312s
Success
uds-getsockname.cSuccessNone0.053904s0.096814s
Success
uds-nb-select.cSuccessNone2.064986s2.153354s
Success
uds-serverclient.cSuccessNone0.057979s0.127166s
Success
uds-socketselect.cSuccessNone0.054295s0.102575s
Success
writev_socket.cSuccessNone0.056895s0.138691s
Success
Process Tests
barrier_test.cSuccessNone0.053043s0.100618s
Success
chain_thread.cSuccessNone1.054741s1.106907s
Success
ctor_syscall_test.cSuccessNone0.045246s0.086089s
Success
cxa_atexit_test.cSuccessNone0.051193s0.093669s
Success
execve_shebang.cSuccessNone0.054634s0.108509s
Success
exit.cSuccessNone0.052001s0.091759s
Success
exit_failure.cSuccessNone0.052848s0.097856s
Success
exit_group_thread.cSuccessNone0.055499s0.107616s
Success
flockfile_test.cSuccessNone0.054816s0.112859s
Success
fork2malloc.cSuccessNone0.055341s0.107473s
Success
fork_select.cSuccessNone0.053686s0.113034s
Success
fork_simple.cSuccessNone0.052443s0.098849s
Success
fork_syscall.cSuccessNone0.058127s0.222488s
Success
fork_tls_ctype.cSuccessNone0.055822s0.126599s
Success
forkandopen.cSuccessNone0.055936s0.117985s
Success
forkdup.cSuccessNone0.057733s0.106236s
Success
forkexecuid.cSuccessNone0.068531s0.117284s
Success
forkexecv-arg.cSuccessNone0.054929s0.104060s
Success
forkexecv.cSuccessNone0.054188s0.103095s
Success
forkfiles.cSuccessNone0.055599s0.112968s
Success
forkmalloc.cSuccessNone0.055265s0.102413s
Success
forknodup.cSuccessNone0.054849s0.111309s
Success
function-ptr.cSuccessNone0.049314s0.092198s
Success
getegid_syscall.cSuccessNone0.054572s0.189753s
Success
getgid_syscall.cSuccessNone0.055086s0.195472s
Success
getpid.cSuccessNone0.047925s0.088424s
Success
getpid_syscall.cSuccessNone0.055955s0.207660s
Success
getppid.cSuccessNone0.054770s0.101625s
Success
getppid_syscall.cSuccessNone0.057500s0.171681s
Success
getuid.cSuccessNone0.054625s0.097794s
Success
getuid_syscall.cSuccessNone0.053199s0.136605s
Success
hello-arg.cSuccessNone0.046143s0.089157s
Success
hello.cSuccessNone0.045980s0.084910s
Success
longjmp.cSuccessNone0.047364s0.090058s
Success
mutex.cSuccessNone2.056249s2.105277s
Success
printf_deadlock_smoke.cSuccessNone0.062461s0.130694s
Success
printf_thread_test.cSuccessNone0.053179s0.106672s
Success
sem_forks.cSuccessNone0.056575s0.114099s
Success
setsid.cSuccessNone0.048355s0.087515s
Success
template.cSuccessNone0.054644s0.118953s
Success
test_exec_nofork.cSuccessNone0.052382s0.100199s
Success
test_unlink_open_file.cSuccessNone0.049086s0.088485s
Success
thread-guard.cSuccessNone0.051845s0.102320s
Success
thread-test.cSuccessNone0.049280s0.093589s
Success
thread.cSuccessNone0.049580s0.092820s
Success
thread_cageid_race.cSuccessNone0.050173s0.112817s
Success
tls_test.cSuccessNone0.052209s0.103559s
Success
uname.cSuccessNone0.048323s0.088771s
Success
wait.cSuccessNone2.052479s2.103321s
Success
waitpid_anychild.cSuccessNone0.054990s0.102627s
Success
waitpid_syscall.cSuccessNone1.054757s1.132314s
Success
waitpid_wnohang.cSuccessNone0.055062s0.103147s
Success
Signal Tests
alarm.cSuccessNone7.053325s7.147580s
Success
eintr_fork_signal.cSuccessNone1.055313s1.112624s
Success
kill.cSuccessNone1.053308s1.103476s
Success
setitimer.cSuccessNone7.054631s7.131224s
Success
sigalrm.cSuccessNone2.053561s2.109603s
Success
sigaltstack.cSuccessNone0.055424s0.107158s
Success
sigchld.cSuccessNone1.055478s1.103263s
Success
signal-fork.cSuccessNone4.055180s4.105636s
Success
signal-simple.cSuccessNone0.054759s0.099244s
Success
signal_SIGCHLD.cSuccessNone0.052760s0.105214s
Success
signal_fork.cSuccessNone0.050744s0.105892s
Success
signal_int_ignored.cSuccessNone2.054339s2.103552s
Success
signal_kill_cleanup.cSuccessNone1.059094s1.102465s
Success
signal_procmask.cSuccessNone0.049715s0.098018s
Success
signal_read_interrupt.cSuccessNone0.557597s0.611254s
Success
signal_recursive.cSuccessNone0.049047s0.099190s
Success
signal_sa_mask.cSuccessNone0.049362s0.096117s
Success
signal_select_interrupt.cSuccessNone0.557633s0.612552s
Success
signal_write_interrupt.cSuccessNone1.056248s1.112089s
Success
sigpipe.cSuccessNone1.056087s1.109609s
Success
sigprocmask.cSuccessNone1.053580s1.103049s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.046980s0.088808s
Success
Memory Tests
mmap-negative1.cSuccessNone0.137780s0.107977s
Success
mmap-negative2.cSuccessNone0.128571s0.105573s
Success
Signal Tests
signal_resethand.cSuccessNone1.053542s1.101488s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
=== compile ===
OK: /tests/unit-tests/cpp/hello.cpp.cwasm

OK: /tests/unit-tests/cpp/hello.cpp.cwasm

=== run (exit 0) ===
LIBCPP_SORT_OK 1 2 3

Verified: 'LIBCPP_SORT_OK 1 2 3' present in output.
Artifact: tests/unit-tests/cpp/hello.cpp.cwasm

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.058718s4.368330s
Success
thread.cSuccessNone0.052105s4.450391s
Success
tls_test.cSuccessNone0.059914s4.485921s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
LIBCPP_SORT_OK 1 2 3

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.052183s0.149219s
Success
chdir_getcwd.cSuccessNone0.053605s0.105277s
Success
chmod.cSuccessNone0.058161s0.110270s
Success
clock_gettime_highlevel.cSuccessNone0.124735s0.307030s
Success
clock_gettime_simple.cSuccessNone0.048732s0.095376s
Success
cloexec.cSuccessNone0.057490s0.115067s
Success
close.cSuccessNone0.065472s0.119891s
Success
creat_access.cSuccessNone0.055383s0.100717s
Success
doubleclose.cSuccessNone0.049330s0.089015s
Success
dup.cSuccessNone0.049122s0.102192s
Success
dup2.cSuccessNone0.055076s0.102521s
Success
dup3.cSuccessNone0.052177s0.101416s
Success
dupwrite.cSuccessNone0.056237s0.099279s
Success
etc_conf.cSuccessNone0.051317s0.109978s
Success
fchdir.cSuccessNone0.060358s0.113471s
Success
fchmod.cSuccessNone0.058585s0.111278s
Success
fcntl.cSuccessNone0.054329s0.109170s
Success
fdatasync.cSuccessNone0.054785s0.097403s
Success
filetest.cSuccessNone0.054597s0.098248s
Success
filetest1000.cSuccessNone0.065234s0.113760s
Success
flock.cSuccessNone0.063554s0.135867s
Success
fstat.cSuccessNone0.057031s0.109861s
Success
fstatfs.cSuccessNone0.052125s0.097346s
Success
fsync.cSuccessNone0.055489s0.100946s
Success
ftruncate.cSuccessNone0.058705s0.217939s
Success
getcwd.cSuccessNone0.050435s0.093540s
Success
getpgid.cSuccessNone0.049575s0.090342s
Success
getrandom.cSuccessNone0.055529s0.106615s
Success
ioctl.cSuccessNone0.057360s0.106538s
Success
link.cSuccessNone0.061714s0.156153s
Success
locale_test.cSuccessNone0.065544s0.577519s
Success
lseek.cSuccessNone0.059887s0.214641s
Success
lstat.cSuccessNone0.057450s0.116237s
Success
mkdir_rmdir.cSuccessNone0.055087s0.101015s
Success
mkfifo_test.cSuccessNone0.060184s0.139484s
Success
mknod.cSuccessNone0.055042s0.111744s
Success
nocancel_io.cSuccessNone0.061052s0.131312s
Success
open.cSuccessNone0.050448s0.093303s
Success
openat.cSuccessNone0.051591s0.099575s
Success
path_conversion_safety.cSuccessNone0.061009s0.126702s
Success
ppoll.cSuccessNone0.058230s0.110705s
Success
pread_pwrite.cSuccessNone0.052687s0.108380s
Success
preadv_pwritev.cSuccessNone0.057412s0.116906s
Success
printf.cSuccessNone0.047257s0.088260s
Success
prlimit64.cSuccessNone0.049286s0.094567s
Success
read.cSuccessNone0.058585s0.110511s
Success
readbytes.cSuccessNone0.051703s0.094642s
Success
readdir_basic.cSuccessNone0.058771s0.118905s
Success
readlink.cSuccessNone0.055681s0.107418s
Success
readlinkat.cSuccessNone0.057141s0.112569s
Success
readv_writev_test.cSuccessNone0.057743s0.116790s
Success
rename.cSuccessNone0.058263s0.106541s
Success
sc-writev.cSuccessNone0.055050s0.102209s
Success
stat.cSuccessNone0.056081s0.108736s
Success
statfs.cSuccessNone0.049711s0.095461s
Success
symlink.cSuccessNone0.057478s0.134457s
Success
sync_file_range.cSuccessNone0.054184s0.098135s
Success
timespec_time_t_compat.cSuccessNone0.053149s0.097151s
Success
truncate.cSuccessNone0.058463s0.114110s
Success
unlink.cSuccessNone0.056951s0.145497s
Success
unlinkat.cSuccessNone0.058105s0.120550s
Success
write.cSuccessNone0.049735s0.089970s
Success
writeloop.cSuccessNone0.057528s0.098915s
Success
writepartial.cSuccessNone0.055341s0.095129s
Success
writev.cSuccessNone0.059083s0.109665s
Success
Math Tests
math_link_smoke.cSuccessNone0.060298s0.097942s
Success
math_tests.cSuccessNone0.065873s0.118908s
Success
Memory Tests
brk.cSuccessNone0.053461s0.099360s
Success
fork_large_memory.cSuccessNone0.087126s0.345513s
Success
malloc.cSuccessNone0.050845s0.092734s
Success
malloc_large.cSuccessNone0.052502s0.095714s
Success
memcpy.cSuccessNone0.050332s0.092093s
Success
memory_error_test.cSuccessNone0.056932s0.132423s
Success
mmap.cSuccessNone0.048695s0.094182s
Success
mmap_aligned.cSuccessNone0.050035s0.108199s
Success
mmap_complicated.cSuccessNone0.054900s0.110679s
Success
mmap_file.cSuccessNone0.055521s0.104257s
Success
mmap_shared.cSuccessNone0.056878s0.108078s
Success
mmaptest.cSuccessNone0.051861s0.098073s
Success
mprotect.cSuccessNone0.050910s0.095039s
Success
mprotect_boundary.cSuccessNone0.050124s0.109180s
Success
mprotect_end_region.cSuccessNone0.051019s0.102812s
Success
mprotect_middle_region.cSuccessNone0.049858s0.107285s
Success
mprotect_multiple_times.cSuccessNone0.049379s0.102661s
Success
mprotect_same_value.cSuccessNone0.049574s0.097708s
Success
mprotect_spanning_regions.cSuccessNone0.050233s0.118986s
Success
munmap_adjacent_shm.cSuccessNone0.051486s0.106389s
Success
sbrk.cSuccessNone0.051230s0.094535s
Success
segfault.cSuccessNone0.057721s0.117187s
Success
shm.cSuccessNone0.055908s0.111597s
Success
shmtest.cSuccessNone0.049879s0.097802s
Success
thread_malloc_sequential.cSuccessNone0.056999s0.119954s
Success
vtable.cSuccessNone0.060536s0.116748s
Success
Networking Tests
accept4.cSuccessNone0.060296s0.116179s
Success
dns_resolve_test.cSuccessNone0.054345s0.101349s
Success
dnstest.cSuccessNone0.055337s0.110801s
Success
epoll_edge_triggered.cSuccessNone0.212014s0.447584s
Success
epollcreate1.cSuccessNone0.056117s0.111364s
Success
error_handling_net.cSuccessNone0.062599s0.213901s
Success
getaddrinfo_test.cSuccessNone0.058809s0.147057s
Success
getaddrinfo_unspec.cSuccessNone0.064251s0.111617s
Success
gethostname.cSuccessNone0.049230s0.090585s
Success
getifaddrs.cSuccessNone0.056407s0.103124s
Success
getsockname.cSuccessNone0.060581s0.107869s
Success
getsockopt.cSuccessNone0.058560s0.155401s
Success
ipv6_basic.cSuccessNone0.060192s0.149057s
Success
makepipe.cSuccessNone0.049345s0.089839s
Success
nonblocking_eagain.cSuccessNone0.060829s0.165070s
Success
pipe.cSuccessNone0.057320s0.110833s
Success
pipe2.cSuccessNone0.058613s0.106100s
Success
pipeinput.cSuccessNone0.059401s0.122080s
Success
pipeinput2.cSuccessNone0.058629s0.122598s
Success
pipeonestring.cSuccessNone0.057968s0.121197s
Success
pipepong.cSuccessNone0.058551s0.125754s
Success
pipewrite.cSuccessNone0.053500s0.104383s
Success
poll.cSuccessNone0.055756s0.097302s
Success
recvfrom-sendto.cSuccessNone0.057684s0.111265s
Success
sendmsg_recvmsg_test.cSuccessNone0.057596s0.111862s
Success
serverclient.cSuccessNone0.056389s0.108267s
Success
shutdown.cSuccessNone0.057607s0.106612s
Success
shutdown_fork.cSuccessNone0.057080s0.111912s
Success
simple-select.cSuccessNone0.058678s0.125998s
Success
simple_epoll.cSuccessNone0.056826s0.105582s
Success
socket.cSuccessNone0.053988s0.099377s
Success
socket_cloexec.cSuccessNone0.055870s0.099117s
Success
socket_options_advanced.cSuccessNone0.060870s0.174887s
Success
socketepoll.cSuccessNone0.056600s0.104125s
Success
socketpair.cSuccessNone0.054466s0.106160s
Success
socketselect.cSuccessNone0.055869s0.106393s
Success
udp_send_recv.cSuccessNone0.162608s0.263700s
Success
uds-getsockname.cSuccessNone0.056830s0.100313s
Success
uds-nb-select.cSuccessNone2.066722s2.157143s
Success
uds-serverclient.cSuccessNone0.059883s0.129770s
Success
uds-socketselect.cSuccessNone0.056498s0.105521s
Success
writev_socket.cSuccessNone0.058766s0.143581s
Success
Process Tests
barrier_test.cSuccessNone0.054413s0.104417s
Success
chain_thread.cSuccessNone1.057587s1.110732s
Success
ctor_syscall_test.cSuccessNone0.048874s0.090976s
Success
cxa_atexit_test.cSuccessNone0.052062s0.093896s
Success
execve_shebang.cSuccessNone0.057228s0.101292s
Success
exit.cSuccessNone0.054701s0.093348s
Success
exit_failure.cSuccessNone0.055069s0.101161s
Success
exit_group_thread.cSuccessNone0.057197s0.110487s
Success
flockfile_test.cSuccessNone0.055913s0.113505s
Success
fork2malloc.cSuccessNone0.057783s0.111766s
Success
fork_select.cSuccessNone0.056449s0.115805s
Success
fork_simple.cSuccessNone0.054127s0.101979s
Success
fork_syscall.cSuccessNone0.061065s0.230902s
Success
fork_tls_ctype.cSuccessNone0.058128s0.128846s
Success
forkandopen.cSuccessNone0.058814s0.122723s
Success
forkdup.cSuccessNone0.059721s0.110537s
Success
forkexecuid.cSuccessNone0.054112s0.116441s
Success
forkexecv-arg.cSuccessNone0.056601s0.109408s
Success
forkexecv.cSuccessNone0.053621s0.104079s
Success
forkfiles.cSuccessNone0.057322s0.114512s
Success
forkmalloc.cSuccessNone0.056218s0.106034s
Success
forknodup.cSuccessNone0.057332s0.115342s
Success
function-ptr.cSuccessNone0.050843s0.095440s
Success
getegid_syscall.cSuccessNone0.056396s0.193842s
Success
getgid_syscall.cSuccessNone0.057293s0.198717s
Success
getpid.cSuccessNone0.050286s0.092535s
Success
getpid_syscall.cSuccessNone0.058190s0.211840s
Success
getppid.cSuccessNone0.057260s0.105566s
Success
getppid_syscall.cSuccessNone0.058429s0.175095s
Success
getuid.cSuccessNone0.056640s0.100595s
Success
getuid_syscall.cSuccessNone0.055263s0.138635s
Success
hello-arg.cSuccessNone0.047602s0.088895s
Success
hello.cSuccessNone0.047622s0.087220s
Success
longjmp.cSuccessNone0.049429s0.093405s
Success
mutex.cSuccessNone2.059427s2.109120s
Success
printf_deadlock_smoke.cSuccessNone0.063448s0.131930s
Success
printf_thread_test.cSuccessNone0.055769s0.110990s
Success
sem_forks.cSuccessNone0.057841s0.116387s
Success
setsid.cSuccessNone0.051718s0.093153s
Success
template.cSuccessNone0.056968s0.125372s
Success
test_exec_nofork.cSuccessNone0.054470s0.103730s
Success
test_unlink_open_file.cSuccessNone0.051580s0.092547s
Success
thread-guard.cSuccessNone0.054042s0.106548s
Success
thread-test.cSuccessNone0.051748s0.097088s
Success
thread.cSuccessNone0.051566s0.095529s
Success
thread_cageid_race.cSuccessNone0.052724s0.116074s
Success
tls_test.cSuccessNone0.054746s0.107773s
Success
uname.cSuccessNone0.049832s0.089652s
Success
wait.cSuccessNone2.053769s2.106523s
Success
waitpid_anychild.cSuccessNone0.059624s0.105894s
Success
waitpid_syscall.cSuccessNone1.056877s1.137107s
Success
waitpid_wnohang.cSuccessNone0.057207s0.106439s
Success
Signal Tests
alarm.cSuccessNone7.056123s7.132535s
Success
eintr_fork_signal.cSuccessNone1.057771s1.119903s
Success
kill.cSuccessNone1.054952s1.106403s
Success
setitimer.cSuccessNone7.056172s7.129204s
Success
sigalrm.cSuccessNone2.056464s2.112803s
Success
sigaltstack.cSuccessNone0.059051s0.112743s
Success
sigchld.cSuccessNone1.056685s1.105442s
Success
signal-fork.cSuccessNone4.058829s4.110190s
Success
signal-simple.cSuccessNone0.058663s0.102570s
Success
signal_SIGCHLD.cSuccessNone0.054941s0.108376s
Success
signal_fork.cSuccessNone0.054414s0.112371s
Success
signal_int_ignored.cSuccessNone2.056640s2.105448s
Success
signal_kill_cleanup.cSuccessNone1.054886s1.103725s
Success
signal_procmask.cSuccessNone0.053893s0.103365s
Success
signal_read_interrupt.cSuccessNone0.560713s0.613524s
Success
signal_recursive.cSuccessNone0.051117s0.102721s
Success
signal_sa_mask.cSuccessNone0.051558s0.096976s
Success
signal_select_interrupt.cSuccessNone0.559999s0.615741s
Success
signal_write_interrupt.cSuccessNone1.058238s1.117910s
Success
sigpipe.cSuccessNone1.058496s1.112902s
Success
sigprocmask.cSuccessNone1.055318s1.104661s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.049616s0.091417s
Success
Memory Tests
mmap-negative1.cSuccessNone0.130880s0.096769s
Success
mmap-negative2.cSuccessNone0.128390s0.101988s
Success
Signal Tests
signal_resethand.cSuccessNone1.055375s1.103744s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
LIBCPP_SORT_OK 1 2 3

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.054420s4.403908s
Success
thread.cSuccessNone0.047492s4.453218s
Success
tls_test.cSuccessNone0.068992s4.547060s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
LIBCPP_SORT_OK 1 2 3

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.049406s0.149896s
Success
chdir_getcwd.cSuccessNone0.054702s0.102632s
Success
chmod.cSuccessNone0.054987s0.106815s
Success
clock_gettime_highlevel.cSuccessNone0.123722s0.289353s
Success
clock_gettime_simple.cSuccessNone0.043073s0.089935s
Success
cloexec.cSuccessNone0.055568s0.108951s
Success
close.cSuccessNone0.060345s0.116680s
Success
creat_access.cSuccessNone0.055628s0.100988s
Success
doubleclose.cSuccessNone0.045095s0.086010s
Success
dup.cSuccessNone0.047552s0.103499s
Success
dup2.cSuccessNone0.053116s0.100826s
Success
dup3.cSuccessNone0.047461s0.100900s
Success
dupwrite.cSuccessNone0.051452s0.095580s
Success
etc_conf.cSuccessNone0.049944s0.109916s
Success
fchdir.cSuccessNone0.056402s0.110818s
Success
fchmod.cSuccessNone0.055298s0.105598s
Success
fcntl.cSuccessNone0.052417s0.108599s
Success
fdatasync.cSuccessNone0.053697s0.097877s
Success
filetest.cSuccessNone0.050531s0.093856s
Success
filetest1000.cSuccessNone0.060343s0.110185s
Success
flock.cSuccessNone0.061663s0.131353s
Success
fstat.cSuccessNone0.056732s0.109172s
Success
fstatfs.cSuccessNone0.048229s0.094771s
Success
fsync.cSuccessNone0.051142s0.095974s
Success
ftruncate.cSuccessNone0.057849s0.219556s
Success
getcwd.cSuccessNone0.048930s0.095347s
Success
getpgid.cSuccessNone0.048184s0.091374s
Success
getrandom.cSuccessNone0.052189s0.101495s
Success
ioctl.cSuccessNone0.053965s0.101478s
Success
link.cSuccessNone0.057140s0.153216s
Success
locale_test.cSuccessNone0.069182s0.609274s
Success
lseek.cSuccessNone0.057412s0.213860s
Success
lstat.cSuccessNone0.055288s0.117871s
Success
mkdir_rmdir.cSuccessNone0.054260s0.099664s
Success
mkfifo_test.cSuccessNone0.059487s0.142620s
Success
mknod.cSuccessNone0.052446s0.109302s
Success
nocancel_io.cSuccessNone0.055367s0.123770s
Success
open.cSuccessNone0.046586s0.089920s
Success
openat.cSuccessNone0.046776s0.094690s
Success
path_conversion_safety.cSuccessNone0.058934s0.127085s
Success
ppoll.cSuccessNone0.057877s0.111133s
Success
pread_pwrite.cSuccessNone0.051439s0.111032s
Success
preadv_pwritev.cSuccessNone0.057050s0.115433s
Success
printf.cSuccessNone0.045348s0.084625s
Success
prlimit64.cSuccessNone0.045615s0.092690s
Success
read.cSuccessNone0.052990s0.105552s
Success
readbytes.cSuccessNone0.051144s0.097462s
Success
readdir_basic.cSuccessNone0.058049s0.118311s
Success
readlink.cSuccessNone0.053307s0.103320s
Success
readlinkat.cSuccessNone0.052451s0.108684s
Success
readv_writev_test.cSuccessNone0.055475s0.113303s
Success
rename.cSuccessNone0.053206s0.101362s
Success
sc-writev.cSuccessNone0.050444s0.099441s
Success
stat.cSuccessNone0.056931s0.109080s
Success
statfs.cSuccessNone0.045700s0.091712s
Success
symlink.cSuccessNone0.057937s0.133944s
Success
sync_file_range.cSuccessNone0.051221s0.096318s
Success
timespec_time_t_compat.cSuccessNone0.051725s0.098015s
Success
truncate.cSuccessNone0.054867s0.112044s
Success
unlink.cSuccessNone0.054802s0.142035s
Success
unlinkat.cSuccessNone0.056794s0.117398s
Success
write.cSuccessNone0.045191s0.090700s
Success
writeloop.cSuccessNone0.057108s0.096116s
Success
writepartial.cSuccessNone0.054584s0.099110s
Success
writev.cSuccessNone0.053369s0.103464s
Success
Math Tests
math_link_smoke.cSuccessNone0.058638s0.096640s
Success
math_tests.cSuccessNone0.068365s0.113169s
Success
Memory Tests
brk.cSuccessNone0.052813s0.104074s
Success
fork_large_memory.cSuccessNone0.085379s0.348203s
Success
malloc.cSuccessNone0.050373s0.091519s
Success
malloc_large.cSuccessNone0.050227s0.097054s
Success
memcpy.cSuccessNone0.050437s0.095057s
Success
memory_error_test.cSuccessNone0.056605s0.134382s
Success
mmap.cSuccessNone0.048388s0.097081s
Success
mmap_aligned.cSuccessNone0.050684s0.113733s
Success
mmap_complicated.cSuccessNone0.054757s0.115947s
Success
mmap_file.cSuccessNone0.056840s0.107439s
Success
mmap_shared.cSuccessNone0.055772s0.110174s
Success
mmaptest.cSuccessNone0.052514s0.100213s
Success
mprotect.cSuccessNone0.050159s0.096393s
Success
mprotect_boundary.cSuccessNone0.048244s0.108123s
Success
mprotect_end_region.cSuccessNone0.049292s0.101337s
Success
mprotect_middle_region.cSuccessNone0.049330s0.106312s
Success
mprotect_multiple_times.cSuccessNone0.050018s0.109640s
Success
mprotect_same_value.cSuccessNone0.049032s0.102038s
Success
mprotect_spanning_regions.cSuccessNone0.050255s0.122305s
Success
munmap_adjacent_shm.cSuccessNone0.051994s0.109825s
Success
sbrk.cSuccessNone0.051956s0.096616s
Success
segfault.cSuccessNone0.056249s0.122337s
Success
shm.cSuccessNone0.054795s0.115063s
Success
shmtest.cSuccessNone0.049727s0.098846s
Success
thread_malloc_sequential.cSuccessNone0.056653s0.124147s
Success
vtable.cSuccessNone0.061496s0.115867s
Success
Networking Tests
accept4.cSuccessNone0.059202s0.111253s
Success
dns_resolve_test.cSuccessNone0.052549s0.101336s
Success
dnstest.cSuccessNone0.056506s0.117506s
Success
epoll_edge_triggered.cSuccessNone0.212524s0.458849s
Success
epollcreate1.cSuccessNone0.056857s0.112287s
Success
error_handling_net.cSuccessNone0.062872s0.214756s
Success
getaddrinfo_test.cSuccessNone0.057871s0.141885s
Success
getaddrinfo_unspec.cSuccessNone0.062904s0.111938s
Success
gethostname.cSuccessNone0.050017s0.090543s
Success
getifaddrs.cSuccessNone0.056437s0.098763s
Success
getsockname.cSuccessNone0.061206s0.108215s
Success
getsockopt.cSuccessNone0.058935s0.162509s
Success
ipv6_basic.cSuccessNone0.056817s0.145358s
Success
makepipe.cSuccessNone0.050572s0.093760s
Success
nonblocking_eagain.cSuccessNone0.059439s0.163951s
Success
pipe.cSuccessNone0.057038s0.114025s
Success
pipe2.cSuccessNone0.056503s0.103660s
Success
pipeinput.cSuccessNone0.059228s0.125035s
Success
pipeinput2.cSuccessNone0.057417s0.120729s
Success
pipeonestring.cSuccessNone0.059883s0.127938s
Success
pipepong.cSuccessNone0.054869s0.120865s
Success
pipewrite.cSuccessNone0.052039s0.106860s
Success
poll.cSuccessNone0.056444s0.100187s
Success
recvfrom-sendto.cSuccessNone0.056987s0.112611s
Success
sendmsg_recvmsg_test.cSuccessNone0.057624s0.113140s
Success
serverclient.cSuccessNone0.056559s0.108454s
Success
shutdown.cSuccessNone0.057869s0.107572s
Success
shutdown_fork.cSuccessNone0.057274s0.114894s
Success
simple-select.cSuccessNone0.058089s0.124421s
Success
simple_epoll.cSuccessNone0.056017s0.113467s
Success
socket.cSuccessNone0.057232s0.103324s
Success
socket_cloexec.cSuccessNone0.050814s0.097038s
Success
socket_options_advanced.cSuccessNone0.061347s0.188033s
Success
socketepoll.cSuccessNone0.056546s0.103744s
Success
socketpair.cSuccessNone0.055639s0.110549s
Success
socketselect.cSuccessNone0.058150s0.110515s
Success
udp_send_recv.cSuccessNone0.163829s0.263766s
Success
uds-getsockname.cSuccessNone0.053122s0.100764s
Success
uds-nb-select.cSuccessNone2.066835s2.155969s
Success
uds-serverclient.cSuccessNone0.059726s0.131050s
Success
uds-socketselect.cSuccessNone0.056803s0.107561s
Success
writev_socket.cSuccessNone0.058227s0.144291s
Success
Process Tests
barrier_test.cSuccessNone0.052046s0.101883s
Success
chain_thread.cSuccessNone1.052131s1.104320s
Success
ctor_syscall_test.cSuccessNone0.043315s0.084923s
Success
cxa_atexit_test.cSuccessNone0.048672s0.088192s
Success
execve_shebang.cSuccessNone0.053279s0.095707s
Success
exit.cSuccessNone0.050056s0.091718s
Success
exit_failure.cSuccessNone0.051356s0.096910s
Success
exit_group_thread.cSuccessNone0.055673s0.107413s
Success
flockfile_test.cSuccessNone0.054138s0.111213s
Success
fork2malloc.cSuccessNone0.054638s0.106028s
Success
fork_select.cSuccessNone0.055448s0.119667s
Success
fork_simple.cSuccessNone0.051854s0.102071s
Success
fork_syscall.cSuccessNone0.059028s0.228622s
Success
fork_tls_ctype.cSuccessNone0.056043s0.127405s
Success
forkandopen.cSuccessNone0.054516s0.114770s
Success
forkdup.cSuccessNone0.057965s0.108244s
Success
forkexecuid.cSuccessNone0.053429s0.113897s
Success
forkexecv-arg.cSuccessNone0.054622s0.103672s
Success
forkexecv.cSuccessNone0.052528s0.103182s
Success
forkfiles.cSuccessNone0.057310s0.115967s
Success
forkmalloc.cSuccessNone0.054663s0.104033s
Success
forknodup.cSuccessNone0.054771s0.110506s
Success
function-ptr.cSuccessNone0.048294s0.092879s
Success
getegid_syscall.cSuccessNone0.052437s0.183559s
Success
getgid_syscall.cSuccessNone0.054789s0.201811s
Success
getpid.cSuccessNone0.047507s0.091682s
Success
getpid_syscall.cSuccessNone0.055637s0.213659s
Success
getppid.cSuccessNone0.052491s0.101570s
Success
getppid_syscall.cSuccessNone0.057812s0.177702s
Success
getuid.cSuccessNone0.054364s0.096531s
Success
getuid_syscall.cSuccessNone0.054509s0.132215s
Success
hello-arg.cSuccessNone0.044470s0.085305s
Success
hello.cSuccessNone0.044019s0.082199s
Success
longjmp.cSuccessNone0.046450s0.093715s
Success
mutex.cSuccessNone2.054247s2.104726s
Success
printf_deadlock_smoke.cSuccessNone0.061500s0.132084s
Success
printf_thread_test.cSuccessNone0.052219s0.108444s
Success
sem_forks.cSuccessNone0.055382s0.112822s
Success
setsid.cSuccessNone0.044504s0.082741s
Success
template.cSuccessNone0.050837s0.114158s
Success
test_exec_nofork.cSuccessNone0.051083s0.097014s
Success
test_unlink_open_file.cSuccessNone0.047386s0.089686s
Success
thread-guard.cSuccessNone0.052314s0.103216s
Success
thread-test.cSuccessNone0.046700s0.090635s
Success
thread.cSuccessNone0.047181s0.089940s
Success
thread_cageid_race.cSuccessNone0.049831s0.116517s
Success
tls_test.cSuccessNone0.050971s0.103996s
Success
uname.cSuccessNone0.045697s0.084325s
Success
wait.cSuccessNone2.050607s2.098536s
Success
waitpid_anychild.cSuccessNone0.055551s0.101424s
Success
waitpid_syscall.cSuccessNone1.053680s1.131946s
Success
waitpid_wnohang.cSuccessNone0.054273s0.106388s
Success
Signal Tests
alarm.cSuccessNone7.053258s7.128842s
Success
eintr_fork_signal.cSuccessNone1.057006s1.117194s
Success
kill.cSuccessNone1.052926s1.106827s
Success
setitimer.cSuccessNone7.052414s7.134885s
Success
sigalrm.cSuccessNone2.054023s2.111785s
Success
sigaltstack.cSuccessNone0.057236s0.110847s
Success
sigchld.cSuccessNone1.057061s1.101807s
Success
signal-fork.cSuccessNone4.057109s4.106733s
Success
signal-simple.cSuccessNone0.055211s0.101569s
Success
signal_SIGCHLD.cSuccessNone0.052711s0.109881s
Success
signal_fork.cSuccessNone0.052231s0.111712s
Success
signal_int_ignored.cSuccessNone2.057397s2.107821s
Success
signal_kill_cleanup.cSuccessNone1.051933s1.101022s
Success
signal_procmask.cSuccessNone0.049411s0.102538s
Success
signal_read_interrupt.cSuccessNone0.558140s0.612152s
Success
signal_recursive.cSuccessNone0.047537s0.098468s
Success
signal_sa_mask.cSuccessNone0.050851s0.098637s
Success
signal_select_interrupt.cSuccessNone0.558191s0.613137s
Success
signal_write_interrupt.cSuccessNone1.057553s1.115351s
Success
sigpipe.cSuccessNone1.057461s1.113833s
Success
sigprocmask.cSuccessNone1.056811s1.105174s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.046900s0.091498s
Success
Memory Tests
mmap-negative1.cSuccessNone0.133928s0.102884s
Success
mmap-negative2.cSuccessNone0.116765s0.099236s
Success
Signal Tests
signal_resethand.cSuccessNone1.054169s1.103233s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
LIBCPP_SORT_OK 1 2 3

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.055007s4.435375s
Success
thread.cSuccessNone0.046138s4.394983s
Success
tls_test.cSuccessNone0.065205s4.440997s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

LIBCPP_SORT_OK 1 2 3

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.046449s0.137141s
Success
chdir_getcwd.cSuccessNone0.047874s0.094021s
Success
chmod.cSuccessNone0.051942s0.098633s
Success
clock_gettime_highlevel.cSuccessNone0.117846s0.270565s
Success
clock_gettime_simple.cSuccessNone0.040760s0.082221s
Success
cloexec.cSuccessNone0.051123s0.101945s
Success
close.cSuccessNone0.058680s0.108779s
Success
creat_access.cSuccessNone0.049505s0.092811s
Success
doubleclose.cSuccessNone0.042099s0.078850s
Success
dup.cSuccessNone0.042617s0.091807s
Success
dup2.cSuccessNone0.048174s0.091249s
Success
dup3.cSuccessNone0.046544s0.091350s
Success
dupwrite.cSuccessNone0.052445s0.093785s
Success
etc_conf.cSuccessNone0.044369s0.097721s
Success
fchdir.cSuccessNone0.052495s0.101944s
Success
fchmod.cSuccessNone0.051930s0.099384s
Success
fcntl.cSuccessNone0.049954s0.099120s
Success
fdatasync.cSuccessNone0.048496s0.087656s
Success
filetest.cSuccessNone0.049656s0.088426s
Success
filetest1000.cSuccessNone0.056738s0.100283s
Success
flock.cSuccessNone0.059204s0.121364s
Success
fstat.cSuccessNone0.051088s0.099185s
Success
fstatfs.cSuccessNone0.044433s0.085993s
Success
fsync.cSuccessNone0.048987s0.089319s
Success
ftruncate.cSuccessNone0.053841s0.211208s
Success
getcwd.cSuccessNone0.045475s0.084979s
Success
getpgid.cSuccessNone0.043093s0.081721s
Success
getrandom.cSuccessNone0.049606s0.095357s
Success
ioctl.cSuccessNone0.052925s0.095680s
Success
link.cSuccessNone0.054193s0.145434s
Success
locale_test.cSuccessNone0.064546s0.590749s
Success
lseek.cSuccessNone0.053337s0.206949s
Success
lstat.cSuccessNone0.053661s0.108138s
Success
mkdir_rmdir.cSuccessNone0.050179s0.092067s
Success
mkfifo_test.cSuccessNone0.055202s0.128757s
Success
mknod.cSuccessNone0.048166s0.099847s
Success
nocancel_io.cSuccessNone0.052913s0.120371s
Success
open.cSuccessNone0.043856s0.081744s
Success
openat.cSuccessNone0.045871s0.089958s
Success
path_conversion_safety.cSuccessNone0.056769s0.118898s
Success
ppoll.cSuccessNone0.053391s0.103042s
Success
pread_pwrite.cSuccessNone0.046467s0.099407s
Success
preadv_pwritev.cSuccessNone0.051987s0.106993s
Success
printf.cSuccessNone0.040934s0.077071s
Success
prlimit64.cSuccessNone0.042843s0.084206s
Success
read.cSuccessNone0.050487s0.098734s
Success
readbytes.cSuccessNone0.045709s0.086799s
Success
readdir_basic.cSuccessNone0.054085s0.110136s
Success
readlink.cSuccessNone0.049492s0.096623s
Success
readlinkat.cSuccessNone0.051696s0.103209s
Success
readv_writev_test.cSuccessNone0.052169s0.106459s
Success
rename.cSuccessNone0.051431s0.095220s
Success
sc-writev.cSuccessNone0.047942s0.092051s
Success
stat.cSuccessNone0.051400s0.098114s
Success
statfs.cSuccessNone0.044491s0.086057s
Success
symlink.cSuccessNone0.052525s0.123139s
Success
sync_file_range.cSuccessNone0.047588s0.089052s
Success
timespec_time_t_compat.cSuccessNone0.046582s0.086356s
Success
truncate.cSuccessNone0.050831s0.103449s
Success
unlink.cSuccessNone0.051846s0.137329s
Success
unlinkat.cSuccessNone0.051162s0.110680s
Success
write.cSuccessNone0.043229s0.078992s
Success
writeloop.cSuccessNone0.052896s0.090743s
Success
writepartial.cSuccessNone0.050844s0.087941s
Success
writev.cSuccessNone0.051015s0.099181s
Success
Math Tests
math_link_smoke.cSuccessNone0.054208s0.089084s
Success
math_tests.cSuccessNone0.057903s0.105942s
Success
Memory Tests
brk.cSuccessNone0.046841s0.090698s
Success
fork_large_memory.cSuccessNone0.080540s0.324319s
Success
malloc.cSuccessNone0.046524s0.081389s
Success
malloc_large.cSuccessNone0.045993s0.087257s
Success
memcpy.cSuccessNone0.045253s0.082731s
Success
memory_error_test.cSuccessNone0.051714s0.121733s
Success
mmap.cSuccessNone0.041463s0.082719s
Success
mmap_aligned.cSuccessNone0.043783s0.098800s
Success
mmap_complicated.cSuccessNone0.049983s0.100692s
Success
mmap_file.cSuccessNone0.052636s0.093376s
Success
mmap_shared.cSuccessNone0.049406s0.095734s
Success
mmaptest.cSuccessNone0.045441s0.087509s
Success
mprotect.cSuccessNone0.043655s0.083249s
Success
mprotect_boundary.cSuccessNone0.043524s0.097896s
Success
mprotect_end_region.cSuccessNone0.043010s0.089921s
Success
mprotect_middle_region.cSuccessNone0.043292s0.092597s
Success
mprotect_multiple_times.cSuccessNone0.043033s0.092751s
Success
mprotect_same_value.cSuccessNone0.043327s0.087576s
Success
mprotect_spanning_regions.cSuccessNone0.043968s0.105684s
Success
munmap_adjacent_shm.cSuccessNone0.045449s0.097254s
Success
sbrk.cSuccessNone0.044972s0.083453s
Success
segfault.cSuccessNone0.051055s0.107861s
Success
shm.cSuccessNone0.049687s0.102012s
Success
shmtest.cSuccessNone0.044180s0.088281s
Success
thread_malloc_sequential.cSuccessNone0.051742s0.111065s
Success
vtable.cSuccessNone0.055414s0.103556s
Success
Networking Tests
accept4.cSuccessNone0.058520s0.106713s
Success
dns_resolve_test.cSuccessNone0.050243s0.093038s
Success
dnstest.cSuccessNone0.049453s0.102457s
Success
epoll_edge_triggered.cSuccessNone0.208595s0.436523s
Success
epollcreate1.cSuccessNone0.051421s0.103018s
Success
error_handling_net.cSuccessNone0.057936s0.205023s
Success
getaddrinfo_test.cSuccessNone0.053878s0.134395s
Success
getaddrinfo_unspec.cSuccessNone0.057904s0.138887s
Success
gethostname.cSuccessNone0.043785s0.080429s
Success
getifaddrs.cSuccessNone0.052061s0.094066s
Success
getsockname.cSuccessNone0.055848s0.096164s
Success
getsockopt.cSuccessNone0.054056s0.146860s
Success
ipv6_basic.cSuccessNone0.055228s0.138536s
Success
makepipe.cSuccessNone0.043793s0.079351s
Success
nonblocking_eagain.cSuccessNone0.057084s0.153119s
Success
pipe.cSuccessNone0.052521s0.101437s
Success
pipe2.cSuccessNone0.052515s0.095958s
Success
pipeinput.cSuccessNone0.054091s0.113097s
Success
pipeinput2.cSuccessNone0.053501s0.112113s
Success
pipeonestring.cSuccessNone0.053150s0.112156s
Success
pipepong.cSuccessNone0.052726s0.114900s
Success
pipewrite.cSuccessNone0.046168s0.093695s
Success
poll.cSuccessNone0.051067s0.088623s
Success
recvfrom-sendto.cSuccessNone0.052183s0.100892s
Success
sendmsg_recvmsg_test.cSuccessNone0.052841s0.103063s
Success
serverclient.cSuccessNone0.051806s0.099215s
Success
shutdown.cSuccessNone0.052507s0.098372s
Success
shutdown_fork.cSuccessNone0.051392s0.100934s
Success
simple-select.cSuccessNone0.053278s0.114221s
Success
simple_epoll.cSuccessNone0.051037s0.097932s
Success
socket.cSuccessNone0.049333s0.089306s
Success
socket_cloexec.cSuccessNone0.049699s0.089242s
Success
socket_options_advanced.cSuccessNone0.057294s0.166210s
Success
socketepoll.cSuccessNone0.049564s0.092012s
Success
socketpair.cSuccessNone0.050119s0.097869s
Success
socketselect.cSuccessNone0.050514s0.099536s
Success
udp_send_recv.cSuccessNone0.158668s0.253598s
Success
uds-getsockname.cSuccessNone0.050522s0.091327s
Success
uds-nb-select.cSuccessNone2.062848s2.146180s
Success
uds-serverclient.cSuccessNone0.055212s0.119814s
Success
uds-socketselect.cSuccessNone0.051397s0.096721s
Success
writev_socket.cSuccessNone0.055205s0.134186s
Success
Process Tests
barrier_test.cSuccessNone0.048989s0.096272s
Success
chain_thread.cSuccessNone1.051925s1.102260s
Success
ctor_syscall_test.cSuccessNone0.041329s0.079238s
Success
cxa_atexit_test.cSuccessNone0.048325s0.084727s
Success
execve_shebang.cSuccessNone0.051422s0.092780s
Success
exit.cSuccessNone0.049235s0.084859s
Success
exit_failure.cSuccessNone0.052452s0.094117s
Success
exit_group_thread.cSuccessNone0.051317s0.101095s
Success
flockfile_test.cSuccessNone0.051413s0.104315s
Success
fork2malloc.cSuccessNone0.051522s0.099656s
Success
fork_select.cSuccessNone0.050608s0.105958s
Success
fork_simple.cSuccessNone0.047950s0.092707s
Success
fork_syscall.cSuccessNone0.054928s0.216515s
Success
fork_tls_ctype.cSuccessNone0.053186s0.118380s
Success
forkandopen.cSuccessNone0.052492s0.111944s
Success
forkdup.cSuccessNone0.053905s0.099608s
Success
forkexecuid.cSuccessNone0.049346s0.107788s
Success
forkexecv-arg.cSuccessNone0.050305s0.096780s
Success
forkexecv.cSuccessNone0.047610s0.094161s
Success
forkfiles.cSuccessNone0.051754s0.104292s
Success
forkmalloc.cSuccessNone0.051528s0.096126s
Success
forknodup.cSuccessNone0.051760s0.105303s
Success
function-ptr.cSuccessNone0.045887s0.087368s
Success
getegid_syscall.cSuccessNone0.050821s0.181756s
Success
getgid_syscall.cSuccessNone0.051427s0.190682s
Success
getpid.cSuccessNone0.044482s0.082691s
Success
getpid_syscall.cSuccessNone0.052579s0.206934s
Success
getppid.cSuccessNone0.051149s0.095418s
Success
getppid_syscall.cSuccessNone0.053549s0.164304s
Success
getuid.cSuccessNone0.051185s0.091070s
Success
getuid_syscall.cSuccessNone0.050267s0.127949s
Success
hello-arg.cSuccessNone0.041676s0.079793s
Success
hello.cSuccessNone0.041874s0.078176s
Success
longjmp.cSuccessNone0.042741s0.083264s
Success
mutex.cSuccessNone2.053943s2.099089s
Success
printf_deadlock_smoke.cSuccessNone0.060569s0.122979s
Success
printf_thread_test.cSuccessNone0.049080s0.099921s
Success
sem_forks.cSuccessNone0.053149s0.107363s
Success
setsid.cSuccessNone0.043588s0.079421s
Success
template.cSuccessNone0.050471s0.112052s
Success
test_exec_nofork.cSuccessNone0.049059s0.092927s
Success
test_unlink_open_file.cSuccessNone0.045199s0.082542s
Success
thread-guard.cSuccessNone0.049593s0.094990s
Success
thread-test.cSuccessNone0.046053s0.087117s
Success
thread.cSuccessNone0.045488s0.086718s
Success
thread_cageid_race.cSuccessNone0.046370s0.104296s
Success
tls_test.cSuccessNone0.048293s0.097592s
Success
uname.cSuccessNone0.044783s0.081256s
Success
wait.cSuccessNone2.047723s2.095397s
Success
waitpid_anychild.cSuccessNone0.052834s0.095115s
Success
waitpid_syscall.cSuccessNone1.050618s1.126733s
Success
waitpid_wnohang.cSuccessNone0.051042s0.096590s
Success
Signal Tests
alarm.cSuccessNone7.050395s7.120339s
Success
eintr_fork_signal.cSuccessNone1.051793s1.107393s
Success
kill.cSuccessNone1.050347s1.098429s
Success
setitimer.cSuccessNone7.050575s7.126956s
Success
sigalrm.cSuccessNone2.051488s2.104802s
Success
sigaltstack.cSuccessNone0.053160s0.104579s
Success
sigchld.cSuccessNone1.052036s1.095829s
Success
signal-fork.cSuccessNone4.052918s4.099788s
Success
signal-simple.cSuccessNone0.051269s0.093924s
Success
signal_SIGCHLD.cSuccessNone0.049260s0.098153s
Success
signal_fork.cSuccessNone0.047395s0.098429s
Success
signal_int_ignored.cSuccessNone2.053625s2.099716s
Success
signal_kill_cleanup.cSuccessNone1.049290s1.094770s
Success
signal_procmask.cSuccessNone0.047819s0.095448s
Success
signal_read_interrupt.cSuccessNone0.554404s0.604709s
Success
signal_recursive.cSuccessNone0.045235s0.092398s
Success
signal_sa_mask.cSuccessNone0.045552s0.087401s
Success
signal_select_interrupt.cSuccessNone0.556265s0.607678s
Success
signal_write_interrupt.cSuccessNone1.052855s1.107569s
Success
sigpipe.cSuccessNone1.053350s1.105832s
Success
sigprocmask.cSuccessNone1.050225s1.096140s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.041549s0.080154s
Success
Memory Tests
mmap-negative1.cSuccessNone0.121915s0.083534s
Success
mmap-negative2.cSuccessNone0.125149s0.087646s
Success
Signal Tests
signal_resethand.cSuccessNone1.050164s1.095513s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, stdout must contain a line exactly LIBCPP_SORT_OK 1 2 3.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/hello.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

LIBCPP_SORT_OK 1 2 3

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.052285s4.405034s
Success
thread.cSuccessNone0.047062s4.444159s
Success
tls_test.cSuccessNone0.058738s4.460011s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, and verify native and wasm runs have identical exit codes and output.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

LIBCPP_SORT_OK 1 2 3

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.046250s0.138352s
Success
chdir_getcwd.cSuccessNone0.046286s0.094483s
Success
chmod.cSuccessNone0.052292s0.099637s
Success
clock_gettime_highlevel.cSuccessNone0.117817s0.271396s
Success
clock_gettime_simple.cSuccessNone0.040422s0.082810s
Success
cloexec.cSuccessNone0.050143s0.103032s
Success
close.cSuccessNone0.058448s0.108498s
Success
creat_access.cSuccessNone0.049447s0.093612s
Success
doubleclose.cSuccessNone0.042670s0.078240s
Success
dup.cSuccessNone0.042401s0.094140s
Success
dup2.cSuccessNone0.048314s0.091156s
Success
dup3.cSuccessNone0.046436s0.093084s
Success
dupwrite.cSuccessNone0.049930s0.089378s
Success
etc_conf.cSuccessNone0.044969s0.098191s
Success
fchdir.cSuccessNone0.053037s0.104808s
Success
fchmod.cSuccessNone0.051092s0.099774s
Success
fcntl.cSuccessNone0.049242s0.099464s
Success
fdatasync.cSuccessNone0.048496s0.090304s
Success
filetest.cSuccessNone0.048696s0.088457s
Success
filetest1000.cSuccessNone0.057321s0.101687s
Success
flock.cSuccessNone0.058605s0.123728s
Success
fstat.cSuccessNone0.052838s0.101516s
Success
fstatfs.cSuccessNone0.044015s0.087114s
Success
fsync.cSuccessNone0.048050s0.089141s
Success
ftruncate.cSuccessNone0.053919s0.209534s
Success
getcwd.cSuccessNone0.045854s0.086656s
Success
getpgid.cSuccessNone0.044797s0.082002s
Success
getrandom.cSuccessNone0.048938s0.094565s
Success
ioctl.cSuccessNone0.051427s0.096284s
Success
link.cSuccessNone0.053260s0.146747s
Success
locale_test.cSuccessNone0.063750s0.576950s
Success
lseek.cSuccessNone0.053532s0.212716s
Success
lstat.cSuccessNone0.053122s0.108881s
Success
mkdir_rmdir.cSuccessNone0.050125s0.093070s
Success
mkfifo_test.cSuccessNone0.055221s0.128834s
Success
mknod.cSuccessNone0.048949s0.100817s
Success
nocancel_io.cSuccessNone0.052845s0.119921s
Success
open.cSuccessNone0.045299s0.082522s
Success
openat.cSuccessNone0.044117s0.089360s
Success
path_conversion_safety.cSuccessNone0.055228s0.119180s
Success
ppoll.cSuccessNone0.054594s0.102372s
Success
pread_pwrite.cSuccessNone0.047091s0.099609s
Success
preadv_pwritev.cSuccessNone0.051773s0.107633s
Success
printf.cSuccessNone0.041170s0.077635s
Success
prlimit64.cSuccessNone0.044173s0.086578s
Success
read.cSuccessNone0.050176s0.099906s
Success
readbytes.cSuccessNone0.046270s0.086213s
Success
readdir_basic.cSuccessNone0.054368s0.109407s
Success
readlink.cSuccessNone0.050815s0.099820s
Success
readlinkat.cSuccessNone0.051165s0.104156s
Success
readv_writev_test.cSuccessNone0.051371s0.103528s
Success
rename.cSuccessNone0.052363s0.095703s
Success
sc-writev.cSuccessNone0.047637s0.091711s
Success
stat.cSuccessNone0.050800s0.098898s
Success
statfs.cSuccessNone0.044163s0.087454s
Success
symlink.cSuccessNone0.053366s0.126209s
Success
sync_file_range.cSuccessNone0.048580s0.090538s
Success
timespec_time_t_compat.cSuccessNone0.049413s0.090283s
Success
truncate.cSuccessNone0.051191s0.103880s
Success
unlink.cSuccessNone0.052020s0.135164s
Success
unlinkat.cSuccessNone0.052596s0.110799s
Success
write.cSuccessNone0.042840s0.079626s
Success
writeloop.cSuccessNone0.052615s0.091029s
Success
writepartial.cSuccessNone0.051235s0.104393s
Success
writev.cSuccessNone0.051743s0.099918s
Success
Math Tests
math_link_smoke.cSuccessNone0.053357s0.088996s
Success
math_tests.cSuccessNone0.058284s0.105845s
Success
Memory Tests
brk.cSuccessNone0.049270s0.093810s
Success
fork_large_memory.cSuccessNone0.082520s0.334589s
Success
malloc.cSuccessNone0.046134s0.083223s
Success
malloc_large.cSuccessNone0.045984s0.087756s
Success
memcpy.cSuccessNone0.048744s0.085712s
Success
memory_error_test.cSuccessNone0.054467s0.129201s
Success
mmap.cSuccessNone0.044506s0.088439s
Success
mmap_aligned.cSuccessNone0.045906s0.101979s
Success
mmap_complicated.cSuccessNone0.052035s0.104198s
Success
mmap_file.cSuccessNone0.051439s0.098109s
Success
mmap_shared.cSuccessNone0.051257s0.101316s
Success
mmaptest.cSuccessNone0.047621s0.091532s
Success
mprotect.cSuccessNone0.045217s0.086065s
Success
mprotect_boundary.cSuccessNone0.044907s0.102623s
Success
mprotect_end_region.cSuccessNone0.044738s0.093064s
Success
mprotect_middle_region.cSuccessNone0.044892s0.096670s
Success
mprotect_multiple_times.cSuccessNone0.046063s0.098967s
Success
mprotect_same_value.cSuccessNone0.044273s0.091302s
Success
mprotect_spanning_regions.cSuccessNone0.045516s0.111106s
Success
munmap_adjacent_shm.cSuccessNone0.047688s0.100958s
Success
sbrk.cSuccessNone0.046794s0.087873s
Success
segfault.cSuccessNone0.053283s0.114125s
Success
shm.cSuccessNone0.051404s0.105185s
Success
shmtest.cSuccessNone0.046653s0.092630s
Success
thread_malloc_sequential.cSuccessNone0.053449s0.114233s
Success
vtable.cSuccessNone0.056951s0.107256s
Success
Networking Tests
accept4.cSuccessNone0.056266s0.109129s
Success
dns_resolve_test.cSuccessNone0.049583s0.095602s
Success
dnstest.cSuccessNone0.049599s0.102473s
Success
epoll_edge_triggered.cSuccessNone0.208086s0.440236s
Success
epollcreate1.cSuccessNone0.051648s0.104087s
Success
error_handling_net.cSuccessNone0.059119s0.205164s
Success
getaddrinfo_test.cSuccessNone0.054403s0.136140s
Success
getaddrinfo_unspec.cSuccessNone0.056248s0.175032s
Success
gethostname.cSuccessNone0.043301s0.080813s
Success
getifaddrs.cSuccessNone0.051773s0.094531s
Success
getsockname.cSuccessNone0.054686s0.096819s
Success
getsockopt.cSuccessNone0.054147s0.145451s
Success
ipv6_basic.cSuccessNone0.054737s0.138846s
Success
makepipe.cSuccessNone0.043005s0.079576s
Success
nonblocking_eagain.cSuccessNone0.057043s0.157222s
Success
pipe.cSuccessNone0.052546s0.101896s
Success
pipe2.cSuccessNone0.052369s0.098459s
Success
pipeinput.cSuccessNone0.054348s0.113870s
Success
pipeinput2.cSuccessNone0.054600s0.114525s
Success
pipeonestring.cSuccessNone0.053897s0.112979s
Success
pipepong.cSuccessNone0.052790s0.114878s
Success
pipewrite.cSuccessNone0.046601s0.094892s
Success
poll.cSuccessNone0.050710s0.090223s
Success
recvfrom-sendto.cSuccessNone0.051949s0.100879s
Success
sendmsg_recvmsg_test.cSuccessNone0.052401s0.103489s
Success
serverclient.cSuccessNone0.051993s0.098680s
Success
shutdown.cSuccessNone0.053590s0.099494s
Success
shutdown_fork.cSuccessNone0.051947s0.101138s
Success
simple-select.cSuccessNone0.054629s0.113677s
Success
simple_epoll.cSuccessNone0.051986s0.098691s
Success
socket.cSuccessNone0.049245s0.090101s
Success
socket_cloexec.cSuccessNone0.049113s0.089958s
Success
socket_options_advanced.cSuccessNone0.056071s0.168090s
Success
socketepoll.cSuccessNone0.049845s0.092805s
Success
socketpair.cSuccessNone0.049132s0.096997s
Success
socketselect.cSuccessNone0.050255s0.096972s
Success
udp_send_recv.cSuccessNone0.158422s0.259104s
Success
uds-getsockname.cSuccessNone0.050679s0.093668s
Success
uds-nb-select.cSuccessNone2.062228s2.149079s
Success
uds-serverclient.cSuccessNone0.055320s0.122182s
Success
uds-socketselect.cSuccessNone0.051117s0.096900s
Success
writev_socket.cSuccessNone0.056688s0.136327s
Success
Process Tests
barrier_test.cSuccessNone0.051186s0.097655s
Success
chain_thread.cSuccessNone1.052521s1.101452s
Success
ctor_syscall_test.cSuccessNone0.040885s0.080790s
Success
cxa_atexit_test.cSuccessNone0.046667s0.086254s
Success
execve_shebang.cSuccessNone0.050651s0.093537s
Success
exit.cSuccessNone0.048254s0.084535s
Success
exit_failure.cSuccessNone0.049387s0.092100s
Success
exit_group_thread.cSuccessNone0.052759s0.100029s
Success
flockfile_test.cSuccessNone0.050735s0.104847s
Success
fork2malloc.cSuccessNone0.052236s0.100901s
Success
fork_select.cSuccessNone0.049641s0.104149s
Success
fork_simple.cSuccessNone0.048566s0.092956s
Success
fork_syscall.cSuccessNone0.054604s0.213090s
Success
fork_tls_ctype.cSuccessNone0.055041s0.122487s
Success
forkandopen.cSuccessNone0.052092s0.109536s
Success
forkdup.cSuccessNone0.054320s0.103208s
Success
forkexecuid.cSuccessNone0.049235s0.108429s
Success
forkexecv-arg.cSuccessNone0.049199s0.097275s
Success
forkexecv.cSuccessNone0.047191s0.094650s
Success
forkfiles.cSuccessNone0.051819s0.103189s
Success
forkmalloc.cSuccessNone0.053531s0.098243s
Success
forknodup.cSuccessNone0.052048s0.105260s
Success
function-ptr.cSuccessNone0.045448s0.086134s
Success
getegid_syscall.cSuccessNone0.050812s0.182599s
Success
getgid_syscall.cSuccessNone0.052150s0.192057s
Success
getpid.cSuccessNone0.043269s0.081658s
Success
getpid_syscall.cSuccessNone0.052815s0.200372s
Success
getppid.cSuccessNone0.051217s0.095350s
Success
getppid_syscall.cSuccessNone0.053813s0.164273s
Success
getuid.cSuccessNone0.050763s0.090247s
Success
getuid_syscall.cSuccessNone0.050074s0.128718s
Success
hello-arg.cSuccessNone0.041440s0.080498s
Success
hello.cSuccessNone0.043996s0.080065s
Success
longjmp.cSuccessNone0.042583s0.084545s
Success
mutex.cSuccessNone2.054006s2.098761s
Success
printf_deadlock_smoke.cSuccessNone0.059857s0.123626s
Success
printf_thread_test.cSuccessNone0.049030s0.100637s
Success
sem_forks.cSuccessNone0.053368s0.107658s
Success
setsid.cSuccessNone0.043454s0.081295s
Success
template.cSuccessNone0.051525s0.114275s
Success
test_exec_nofork.cSuccessNone0.048881s0.093750s
Success
test_unlink_open_file.cSuccessNone0.045691s0.083616s
Success
thread-guard.cSuccessNone0.050399s0.094972s
Success
thread-test.cSuccessNone0.045120s0.087282s
Success
thread.cSuccessNone0.045625s0.086825s
Success
thread_cageid_race.cSuccessNone0.047216s0.107406s
Success
tls_test.cSuccessNone0.049314s0.097777s
Success
uname.cSuccessNone0.045163s0.081973s
Success
wait.cSuccessNone2.047644s2.095344s
Success
waitpid_anychild.cSuccessNone0.053218s0.095727s
Success
waitpid_syscall.cSuccessNone1.051277s1.127152s
Success
waitpid_wnohang.cSuccessNone0.051072s0.097627s
Success
Signal Tests
alarm.cSuccessNone7.050017s7.118476s
Success
eintr_fork_signal.cSuccessNone1.053340s1.108588s
Success
kill.cSuccessNone1.050650s1.100122s
Success
setitimer.cSuccessNone7.051767s7.119650s
Success
sigalrm.cSuccessNone2.051218s2.104186s
Success
sigaltstack.cSuccessNone0.052420s0.101223s
Success
sigchld.cSuccessNone1.052441s1.095984s
Success
signal-fork.cSuccessNone4.052937s4.100337s
Success
signal-simple.cSuccessNone0.052615s0.093903s
Success
signal_SIGCHLD.cSuccessNone0.048991s0.101370s
Success
signal_fork.cSuccessNone0.048531s0.101612s
Success
signal_int_ignored.cSuccessNone2.050507s2.097009s
Success
signal_kill_cleanup.cSuccessNone1.050138s1.097911s
Success
signal_procmask.cSuccessNone0.044964s0.090468s
Success
signal_read_interrupt.cSuccessNone0.556880s0.605438s
Success
signal_recursive.cSuccessNone0.045833s0.093156s
Success
signal_sa_mask.cSuccessNone0.044759s0.088251s
Success
signal_select_interrupt.cSuccessNone0.554819s0.607800s
Success
signal_write_interrupt.cSuccessNone1.053396s1.108412s
Success
sigpipe.cSuccessNone1.053827s1.105055s
Success
sigprocmask.cSuccessNone1.050517s1.096635s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.042143s0.081371s
Success
Memory Tests
mmap-negative1.cSuccessNone0.123678s0.092615s
Success
mmap-negative2.cSuccessNone0.113568s0.101777s
Success
Signal Tests
signal_resethand.cSuccessNone1.050838s1.095836s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, and verify native and wasm runs have identical exit codes and output.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

LIBCPP_SORT_OK 1 2 3

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total12
Success12
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:

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: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

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

STDERR:

simple-tests/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.052285s4.405034s
Success
thread.cSuccessNone0.047062s4.444159s
Success
tls_test.cSuccessNone0.058738s4.460011s
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

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, and verify native and wasm runs have identical exit codes and output.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

LIBCPP_SORT_OK 1 2 3

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.046250s0.138352s
Success
chdir_getcwd.cSuccessNone0.046286s0.094483s
Success
chmod.cSuccessNone0.052292s0.099637s
Success
clock_gettime_highlevel.cSuccessNone0.117817s0.271396s
Success
clock_gettime_simple.cSuccessNone0.040422s0.082810s
Success
cloexec.cSuccessNone0.050143s0.103032s
Success
close.cSuccessNone0.058448s0.108498s
Success
creat_access.cSuccessNone0.049447s0.093612s
Success
doubleclose.cSuccessNone0.042670s0.078240s
Success
dup.cSuccessNone0.042401s0.094140s
Success
dup2.cSuccessNone0.048314s0.091156s
Success
dup3.cSuccessNone0.046436s0.093084s
Success
dupwrite.cSuccessNone0.049930s0.089378s
Success
etc_conf.cSuccessNone0.044969s0.098191s
Success
fchdir.cSuccessNone0.053037s0.104808s
Success
fchmod.cSuccessNone0.051092s0.099774s
Success
fcntl.cSuccessNone0.049242s0.099464s
Success
fdatasync.cSuccessNone0.048496s0.090304s
Success
filetest.cSuccessNone0.048696s0.088457s
Success
filetest1000.cSuccessNone0.057321s0.101687s
Success
flock.cSuccessNone0.058605s0.123728s
Success
fstat.cSuccessNone0.052838s0.101516s
Success
fstatfs.cSuccessNone0.044015s0.087114s
Success
fsync.cSuccessNone0.048050s0.089141s
Success
ftruncate.cSuccessNone0.053919s0.209534s
Success
getcwd.cSuccessNone0.045854s0.086656s
Success
getpgid.cSuccessNone0.044797s0.082002s
Success
getrandom.cSuccessNone0.048938s0.094565s
Success
ioctl.cSuccessNone0.051427s0.096284s
Success
link.cSuccessNone0.053260s0.146747s
Success
locale_test.cSuccessNone0.063750s0.576950s
Success
lseek.cSuccessNone0.053532s0.212716s
Success
lstat.cSuccessNone0.053122s0.108881s
Success
mkdir_rmdir.cSuccessNone0.050125s0.093070s
Success
mkfifo_test.cSuccessNone0.055221s0.128834s
Success
mknod.cSuccessNone0.048949s0.100817s
Success
nocancel_io.cSuccessNone0.052845s0.119921s
Success
open.cSuccessNone0.045299s0.082522s
Success
openat.cSuccessNone0.044117s0.089360s
Success
path_conversion_safety.cSuccessNone0.055228s0.119180s
Success
ppoll.cSuccessNone0.054594s0.102372s
Success
pread_pwrite.cSuccessNone0.047091s0.099609s
Success
preadv_pwritev.cSuccessNone0.051773s0.107633s
Success
printf.cSuccessNone0.041170s0.077635s
Success
prlimit64.cSuccessNone0.044173s0.086578s
Success
read.cSuccessNone0.050176s0.099906s
Success
readbytes.cSuccessNone0.046270s0.086213s
Success
readdir_basic.cSuccessNone0.054368s0.109407s
Success
readlink.cSuccessNone0.050815s0.099820s
Success
readlinkat.cSuccessNone0.051165s0.104156s
Success
readv_writev_test.cSuccessNone0.051371s0.103528s
Success
rename.cSuccessNone0.052363s0.095703s
Success
sc-writev.cSuccessNone0.047637s0.091711s
Success
stat.cSuccessNone0.050800s0.098898s
Success
statfs.cSuccessNone0.044163s0.087454s
Success
symlink.cSuccessNone0.053366s0.126209s
Success
sync_file_range.cSuccessNone0.048580s0.090538s
Success
timespec_time_t_compat.cSuccessNone0.049413s0.090283s
Success
truncate.cSuccessNone0.051191s0.103880s
Success
unlink.cSuccessNone0.052020s0.135164s
Success
unlinkat.cSuccessNone0.052596s0.110799s
Success
write.cSuccessNone0.042840s0.079626s
Success
writeloop.cSuccessNone0.052615s0.091029s
Success
writepartial.cSuccessNone0.051235s0.104393s
Success
writev.cSuccessNone0.051743s0.099918s
Success
Math Tests
math_link_smoke.cSuccessNone0.053357s0.088996s
Success
math_tests.cSuccessNone0.058284s0.105845s
Success
Memory Tests
brk.cSuccessNone0.049270s0.093810s
Success
fork_large_memory.cSuccessNone0.082520s0.334589s
Success
malloc.cSuccessNone0.046134s0.083223s
Success
malloc_large.cSuccessNone0.045984s0.087756s
Success
memcpy.cSuccessNone0.048744s0.085712s
Success
memory_error_test.cSuccessNone0.054467s0.129201s
Success
mmap.cSuccessNone0.044506s0.088439s
Success
mmap_aligned.cSuccessNone0.045906s0.101979s
Success
mmap_complicated.cSuccessNone0.052035s0.104198s
Success
mmap_file.cSuccessNone0.051439s0.098109s
Success
mmap_shared.cSuccessNone0.051257s0.101316s
Success
mmaptest.cSuccessNone0.047621s0.091532s
Success
mprotect.cSuccessNone0.045217s0.086065s
Success
mprotect_boundary.cSuccessNone0.044907s0.102623s
Success
mprotect_end_region.cSuccessNone0.044738s0.093064s
Success
mprotect_middle_region.cSuccessNone0.044892s0.096670s
Success
mprotect_multiple_times.cSuccessNone0.046063s0.098967s
Success
mprotect_same_value.cSuccessNone0.044273s0.091302s
Success
mprotect_spanning_regions.cSuccessNone0.045516s0.111106s
Success
munmap_adjacent_shm.cSuccessNone0.047688s0.100958s
Success
sbrk.cSuccessNone0.046794s0.087873s
Success
segfault.cSuccessNone0.053283s0.114125s
Success
shm.cSuccessNone0.051404s0.105185s
Success
shmtest.cSuccessNone0.046653s0.092630s
Success
thread_malloc_sequential.cSuccessNone0.053449s0.114233s
Success
vtable.cSuccessNone0.056951s0.107256s
Success
Networking Tests
accept4.cSuccessNone0.056266s0.109129s
Success
dns_resolve_test.cSuccessNone0.049583s0.095602s
Success
dnstest.cSuccessNone0.049599s0.102473s
Success
epoll_edge_triggered.cSuccessNone0.208086s0.440236s
Success
epollcreate1.cSuccessNone0.051648s0.104087s
Success
error_handling_net.cSuccessNone0.059119s0.205164s
Success
getaddrinfo_test.cSuccessNone0.054403s0.136140s
Success
getaddrinfo_unspec.cSuccessNone0.056248s0.175032s
Success
gethostname.cSuccessNone0.043301s0.080813s
Success
getifaddrs.cSuccessNone0.051773s0.094531s
Success
getsockname.cSuccessNone0.054686s0.096819s
Success
getsockopt.cSuccessNone0.054147s0.145451s
Success
ipv6_basic.cSuccessNone0.054737s0.138846s
Success
makepipe.cSuccessNone0.043005s0.079576s
Success
nonblocking_eagain.cSuccessNone0.057043s0.157222s
Success
pipe.cSuccessNone0.052546s0.101896s
Success
pipe2.cSuccessNone0.052369s0.098459s
Success
pipeinput.cSuccessNone0.054348s0.113870s
Success
pipeinput2.cSuccessNone0.054600s0.114525s
Success
pipeonestring.cSuccessNone0.053897s0.112979s
Success
pipepong.cSuccessNone0.052790s0.114878s
Success
pipewrite.cSuccessNone0.046601s0.094892s
Success
poll.cSuccessNone0.050710s0.090223s
Success
recvfrom-sendto.cSuccessNone0.051949s0.100879s
Success
sendmsg_recvmsg_test.cSuccessNone0.052401s0.103489s
Success
serverclient.cSuccessNone0.051993s0.098680s
Success
shutdown.cSuccessNone0.053590s0.099494s
Success
shutdown_fork.cSuccessNone0.051947s0.101138s
Success
simple-select.cSuccessNone0.054629s0.113677s
Success
simple_epoll.cSuccessNone0.051986s0.098691s
Success
socket.cSuccessNone0.049245s0.090101s
Success
socket_cloexec.cSuccessNone0.049113s0.089958s
Success
socket_options_advanced.cSuccessNone0.056071s0.168090s
Success
socketepoll.cSuccessNone0.049845s0.092805s
Success
socketpair.cSuccessNone0.049132s0.096997s
Success
socketselect.cSuccessNone0.050255s0.096972s
Success
udp_send_recv.cSuccessNone0.158422s0.259104s
Success
uds-getsockname.cSuccessNone0.050679s0.093668s
Success
uds-nb-select.cSuccessNone2.062228s2.149079s
Success
uds-serverclient.cSuccessNone0.055320s0.122182s
Success
uds-socketselect.cSuccessNone0.051117s0.096900s
Success
writev_socket.cSuccessNone0.056688s0.136327s
Success
Process Tests
barrier_test.cSuccessNone0.051186s0.097655s
Success
chain_thread.cSuccessNone1.052521s1.101452s
Success
ctor_syscall_test.cSuccessNone0.040885s0.080790s
Success
cxa_atexit_test.cSuccessNone0.046667s0.086254s
Success
execve_shebang.cSuccessNone0.050651s0.093537s
Success
exit.cSuccessNone0.048254s0.084535s
Success
exit_failure.cSuccessNone0.049387s0.092100s
Success
exit_group_thread.cSuccessNone0.052759s0.100029s
Success
flockfile_test.cSuccessNone0.050735s0.104847s
Success
fork2malloc.cSuccessNone0.052236s0.100901s
Success
fork_select.cSuccessNone0.049641s0.104149s
Success
fork_simple.cSuccessNone0.048566s0.092956s
Success
fork_syscall.cSuccessNone0.054604s0.213090s
Success
fork_tls_ctype.cSuccessNone0.055041s0.122487s
Success
forkandopen.cSuccessNone0.052092s0.109536s
Success
forkdup.cSuccessNone0.054320s0.103208s
Success
forkexecuid.cSuccessNone0.049235s0.108429s
Success
forkexecv-arg.cSuccessNone0.049199s0.097275s
Success
forkexecv.cSuccessNone0.047191s0.094650s
Success
forkfiles.cSuccessNone0.051819s0.103189s
Success
forkmalloc.cSuccessNone0.053531s0.098243s
Success
forknodup.cSuccessNone0.052048s0.105260s
Success
function-ptr.cSuccessNone0.045448s0.086134s
Success
getegid_syscall.cSuccessNone0.050812s0.182599s
Success
getgid_syscall.cSuccessNone0.052150s0.192057s
Success
getpid.cSuccessNone0.043269s0.081658s
Success
getpid_syscall.cSuccessNone0.052815s0.200372s
Success
getppid.cSuccessNone0.051217s0.095350s
Success
getppid_syscall.cSuccessNone0.053813s0.164273s
Success
getuid.cSuccessNone0.050763s0.090247s
Success
getuid_syscall.cSuccessNone0.050074s0.128718s
Success
hello-arg.cSuccessNone0.041440s0.080498s
Success
hello.cSuccessNone0.043996s0.080065s
Success
longjmp.cSuccessNone0.042583s0.084545s
Success
mutex.cSuccessNone2.054006s2.098761s
Success
printf_deadlock_smoke.cSuccessNone0.059857s0.123626s
Success
printf_thread_test.cSuccessNone0.049030s0.100637s
Success
sem_forks.cSuccessNone0.053368s0.107658s
Success
setsid.cSuccessNone0.043454s0.081295s
Success
template.cSuccessNone0.051525s0.114275s
Success
test_exec_nofork.cSuccessNone0.048881s0.093750s
Success
test_unlink_open_file.cSuccessNone0.045691s0.083616s
Success
thread-guard.cSuccessNone0.050399s0.094972s
Success
thread-test.cSuccessNone0.045120s0.087282s
Success
thread.cSuccessNone0.045625s0.086825s
Success
thread_cageid_race.cSuccessNone0.047216s0.107406s
Success
tls_test.cSuccessNone0.049314s0.097777s
Success
uname.cSuccessNone0.045163s0.081973s
Success
wait.cSuccessNone2.047644s2.095344s
Success
waitpid_anychild.cSuccessNone0.053218s0.095727s
Success
waitpid_syscall.cSuccessNone1.051277s1.127152s
Success
waitpid_wnohang.cSuccessNone0.051072s0.097627s
Success
Signal Tests
alarm.cSuccessNone7.050017s7.118476s
Success
eintr_fork_signal.cSuccessNone1.053340s1.108588s
Success
kill.cSuccessNone1.050650s1.100122s
Success
setitimer.cSuccessNone7.051767s7.119650s
Success
sigalrm.cSuccessNone2.051218s2.104186s
Success
sigaltstack.cSuccessNone0.052420s0.101223s
Success
sigchld.cSuccessNone1.052441s1.095984s
Success
signal-fork.cSuccessNone4.052937s4.100337s
Success
signal-simple.cSuccessNone0.052615s0.093903s
Success
signal_SIGCHLD.cSuccessNone0.048991s0.101370s
Success
signal_fork.cSuccessNone0.048531s0.101612s
Success
signal_int_ignored.cSuccessNone2.050507s2.097009s
Success
signal_kill_cleanup.cSuccessNone1.050138s1.097911s
Success
signal_procmask.cSuccessNone0.044964s0.090468s
Success
signal_read_interrupt.cSuccessNone0.556880s0.605438s
Success
signal_recursive.cSuccessNone0.045833s0.093156s
Success
signal_sa_mask.cSuccessNone0.044759s0.088251s
Success
signal_select_interrupt.cSuccessNone0.554819s0.607800s
Success
signal_write_interrupt.cSuccessNone1.053396s1.108412s
Success
sigpipe.cSuccessNone1.053827s1.105055s
Success
sigprocmask.cSuccessNone1.050517s1.096635s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.042143s0.081371s
Success
Memory Tests
mmap-negative1.cSuccessNone0.123678s0.092615s
Success
mmap-negative2.cSuccessNone0.113568s0.101777s
Success
Signal Tests
signal_resethand.cSuccessNone1.050838s1.095836s
Success

Libc++ integration

Full lind_compile_cpp (wasm-opt + precompile), lind_run on the .cwasm, and verify native and wasm runs have identical exit codes and output.

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

TestStatusError typeNative timeWasm timeOutput
tests/unit-tests/cpp/sort.cppSuccessN/AN/A
Native/Wasm parity verified (exit=0).

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.

4 participants