Skip to content

Improve wasm test runner progress reporting#1286

Merged
Yaxuan-w merged 1 commit into
mainfrom
improve-test-runner-reporting
Jul 6, 2026
Merged

Improve wasm test runner progress reporting#1286
Yaxuan-w merged 1 commit into
mainfrom
improve-test-runner-reporting

Conversation

@DanielZ224

Copy link
Copy Markdown
Contributor

Purpose

This PR improves the progress and failure reporting for the wasm test runner.

Previously, the runner printed per-test success/failure messages and made it harder to quickly identify which tests failed. This update changes the runtime output to a compact progress format where each passing test prints ., each failing test prints X, and skipped/unknown cases print S.

At the end of the run, the runner now prints a summary and defers detailed failure output to a dedicated Failures section.

Related Issue

Fixes #1274.

Changes

  • Added compact progress reporting to wasmtestreport.py.
  • Prints:
    • . for passed tests
    • X for failed tests
    • S for skipped or unrecorded tests
  • Defers detailed failure output until after all tests complete.
  • Prints a final summary with passed, failed, and skipped counts.
  • Lowers per-test success/failure logging from info/error to debug so normal output stays concise.
  • Lowers skip logging to debug to reduce noise when using --run.

Example Output

Running 73 tests
......................................X............................XX...X
69 passed, 4 failed
Failures:
/home/lind/lind-wasm/tests/unit-tests/file_tests/deterministic/unlinkat.c
Error type: Failure_native_running
Native execution: Failed to create file in subdirectory: Permission denied

Testing

Ran syntax validation:

python3 -m py_compile scripts/test/harnesses/wasmtestreport.py

Also tested the updated reporting with:

python3 scripts/test/harnesses/wasmtestreport.py \
  --run file_tests \
  --allow-pre-compiled \
  --skip-libcpp

Observed the expected compact progress line, summary, and deferred failure details.

Note: the local file_tests run reported 69 passed and 4 failed. The failures appear related to local filesystem/test environment state, such as permission errors and pre-existing files, rather than the reporting change itself.

@DanielZ224 DanielZ224 requested a review from Yaxuan-w June 27, 2026 03:08
@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

static harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.056650s4.231572s
Success
thread.cSuccessNone0.047162s4.205339s
Success
tls_test.cSuccessNone0.053660s4.255454s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.048269s0.118206s
Success
dlopen_fork.cSuccessNone0.049671s0.147691s
Success
dlopen_thread.cSuccessNone0.052607s0.141238s
Success
double_fork_dlopen.cSuccessNone0.054324s0.186117s
Success
fork_dlopen.cSuccessNone0.049439s0.145040s
Success
longjmp_dlopen.cSuccessNone0.047802s0.136676s
Success
rdynamic_main.cSuccessNone0.049740s0.135857s
Success
File Tests
chartests.cSuccessNone0.050733s0.152985s
Success
chdir_getcwd.cSuccessNone0.048376s0.121042s
Success
chmod.cSuccessNone0.055289s0.130703s
Success
clock_gettime_highlevel.cSuccessNone0.121658s0.166467s
Success
clock_gettime_simple.cSuccessNone0.042534s0.107727s
Success
cloexec.cSuccessNone0.055903s0.147746s
Success
close.cSuccessNone0.058251s0.141440s
Success
copy_file_range.cSuccessNone0.052418s0.145595s
Success
creat_access.cSuccessNone0.053449s0.123136s
Success
doubleclose.cSuccessNone0.043880s0.102607s
Success
dup.cSuccessNone0.044178s0.116763s
Success
dup2.cSuccessNone0.050220s0.117138s
Success
dup3.cSuccessNone0.048418s0.117263s
Success
dupwrite.cSuccessNone0.051356s0.117440s
Success
etc_conf.cSuccessNone0.046874s0.122869s
Success
faccessat.cSuccessNone0.047656s0.122494s
Success
fchdir.cSuccessNone0.053388s0.133916s
Success
fchmod.cSuccessNone0.052317s0.130949s
Success
fchmodat.cSuccessNone0.046465s0.117823s
Success
fcntl.cSuccessNone0.056313s0.137667s
Success
fcntl_dupfd.cSuccessNone0.044671s0.113705s
Success
fdatasync.cSuccessNone0.049314s0.115972s
Success
filetest.cSuccessNone0.050307s0.112426s
Success
filetest1000.cSuccessNone0.060428s0.128010s
Success
flock.cSuccessNone0.059475s0.171754s
Success
fstat.cSuccessNone0.052930s0.135435s
Success
fstatfs.cSuccessNone0.046268s0.110982s
Success
fsync.cSuccessNone0.051425s0.118393s
Success
ftruncate.cSuccessNone0.055695s0.216203s
Success
getcwd.cSuccessNone0.048569s0.111998s
Success
getcwd_null.cSuccessNone0.051575s0.125783s
Success
getpgid.cSuccessNone0.045108s0.105826s
Success
getrandom.cSuccessNone0.053288s0.133079s
Success
ioctl.cSuccessNone0.054762s0.126256s
Success
link.cSuccessNone0.056498s0.163833s
Success
locale_test.cSuccessNone0.065218s0.319730s
Success
lseek.cSuccessNone0.056707s0.194198s
Success
lstat.cSuccessNone0.059683s0.140091s
Success
mkdir_rmdir.cSuccessNone0.051550s0.122499s
Success
mkfifo_test.cSuccessNone0.055689s0.172516s
Success
mknod.cSuccessNone0.049330s0.129866s
Success
nocancel_io.cSuccessNone0.055166s0.147909s
Success
open.cSuccessNone0.045777s0.107716s
Success
openat.cSuccessNone0.046650s0.115474s
Success
path_conversion_safety.cSuccessNone0.057131s0.140791s
Success
ppoll.cSuccessNone0.056688s0.130768s
Success
pread_pwrite.cSuccessNone0.048958s0.124916s
Success
preadv_pwritev.cSuccessNone0.055469s0.141079s
Success
printf.cSuccessNone0.042511s0.102249s
Success
prlimit64.cSuccessNone0.045937s0.111662s
Success
read.cSuccessNone0.052552s0.127835s
Success
readbytes.cSuccessNone0.046585s0.113453s
Success
readdir_basic.cSuccessNone0.055430s0.153669s
Success
readlink.cSuccessNone0.054238s0.130237s
Success
readlinkat.cSuccessNone0.053762s0.131192s
Success
readv_writev_test.cSuccessNone0.053869s0.135328s
Success
rename.cSuccessNone0.054628s0.120897s
Success
renameat.cSuccessNone0.055863s0.135536s
Success
sc-writev.cSuccessNone0.051166s0.118076s
Success
stat.cSuccessNone0.053281s0.132487s
Success
statfs.cSuccessNone0.045487s0.109230s
Success
symlink.cSuccessNone0.054285s0.154166s
Success
sync_file_range.cSuccessNone0.048597s0.112619s
Success
timespec_time_t_compat.cSuccessNone0.048729s0.114623s
Success
trailing_slash.cSuccessNone0.049911s0.123246s
Success
truncate.cSuccessNone0.052514s0.140340s
Success
unlink.cSuccessNone0.054036s0.154029s
Success
unlinkat.cSuccessNone0.055247s0.144602s
Success
utimensat.cSuccessNone0.050479s0.137216s
Success
write.cSuccessNone0.043733s0.102275s
Success
writeloop.cSuccessNone0.055603s0.119452s
Success
writepartial.cSuccessNone0.053066s0.115812s
Success
writev.cSuccessNone0.053267s0.125825s
Success
Math Tests
math_link_smoke.cSuccessNone0.059354s0.111011s
Success
math_tests.cSuccessNone0.059902s0.141676s
Success
printf_float.cSuccessNone0.055439s0.136546s
Success
Memory Tests
brk.cSuccessNone0.048378s0.114572s
Success
fork_large_memory.cSuccessNone0.083205s0.456840s
Success
malloc.cSuccessNone0.046611s0.104397s
Success
malloc_large.cSuccessNone0.047648s0.105417s
Success
memcpy.cSuccessNone0.047055s0.106933s
Success
memory_error_test.cSuccessNone0.054451s0.139644s
Success
mmap.cSuccessNone0.044167s0.106572s
Success
mmap_address_truncation.cSuccessNone0.045071s0.112183s
Success
mmap_aligned.cSuccessNone0.045662s0.121698s
Success
mmap_complicated.cSuccessNone0.052334s0.144622s
Success
mmap_file.cSuccessNone0.052788s0.123287s
Success
mmap_shared.cSuccessNone0.053484s0.137840s
Success
mmaptest.cSuccessNone0.047737s0.113649s
Success
mprotect.cSuccessNone0.044814s0.106551s
Success
mprotect_boundary.cSuccessNone0.044572s0.118169s
Success
mprotect_end_region.cSuccessNone0.047395s0.118166s
Success
mprotect_middle_region.cSuccessNone0.044336s0.115034s
Success
mprotect_multiple_times.cSuccessNone0.045495s0.113349s
Success
mprotect_same_value.cSuccessNone0.045106s0.111481s
Success
mprotect_spanning_regions.cSuccessNone0.046740s0.129677s
Success
munmap_adjacent_shm.cSuccessNone0.048006s0.127044s
Success
sbrk.cSuccessNone0.049411s0.111944s
Success
segfault.cSuccessNone0.052171s0.150094s
Success
shm.cSuccessNone0.051851s0.143738s
Success
shmtest.cSuccessNone0.045220s0.114571s
Success
thread_malloc_sequential.cSuccessNone0.052780s0.180579s
Success
vtable.cSuccessNone0.056499s0.127031s
Success
Networking Tests
accept4.cSuccessNone0.055467s0.137859s
Success
dns_resolve_test.cSuccessNone0.100455s0.243332s
Success
dnstest.cSuccessNone0.054436s0.125209s
Success
epoll_badfd.cSuccessNone0.044039s0.108037s
Success
epoll_edge_triggered.cSuccessNone0.210762s0.411302s
Success
epollcreate1.cSuccessNone0.055081s0.143801s
Success
error_handling_net.cSuccessNone0.065592s0.201713s
Success
getaddrinfo_test.cSuccessNone0.057840s0.173366s
Success
getaddrinfo_unspec.cSuccessNone0.087204s0.134594s
Success
gethostname.cSuccessNone0.052058s0.117571s
Success
getifaddrs.cSuccessNone0.109113s0.246124s
Success
getsockname.cSuccessNone0.054144s0.124822s
Success
getsockopt.cSuccessNone0.067305s0.185246s
Success
ipv6_basic.cSuccessNone0.056828s0.174956s
Success
makepipe.cSuccessNone0.046118s0.105994s
Success
nonblocking_eagain.cSuccessNone0.058204s0.174234s
Success
pipe.cSuccessNone0.056236s0.137839s
Success
pipe2.cSuccessNone0.065428s0.134533s
Success
pipeinput.cSuccessNone0.060152s0.173810s
Success
pipeinput2.cSuccessNone0.101976s0.206588s
Success
pipeonestring.cSuccessNone0.055363s0.155563s
Success
pipepong.cSuccessNone0.053853s0.159479s
Success
pipewrite.cSuccessNone0.049266s0.122846s
Success
poll.cSuccessNone0.052534s0.117915s
Success
recvfrom-sendto.cSuccessNone0.070584s0.136846s
Success
sendmsg_recvmsg_test.cSuccessNone0.055965s0.136321s
Success
serverclient.cSuccessNone0.092750s0.299549s
Success
shutdown.cSuccessNone0.054841s0.133219s
Success
shutdown_fork.cSuccessNone0.053680s0.148599s
Success
simple-select.cSuccessNone0.059830s0.169869s
Success
simple_epoll.cSuccessNone0.052185s0.128097s
Success
socket.cSuccessNone0.051861s0.129926s
Success
socket_cloexec.cSuccessNone0.054327s0.120129s
Success
socket_options_advanced.cSuccessNone0.087477s0.286247s
Success
socketepoll.cSuccessNone0.051402s0.119058s
Success
socketpair.cSuccessNone0.060386s0.163200s
Success
socketselect.cSuccessNone0.055653s0.132314s
Success
udp_send_recv.cSuccessNone0.163052s0.289684s
Success
uds-getsockname.cSuccessNone0.056195s0.131256s
Success
uds-nb-select.cSuccessNone2.061014s2.195997s
Success
uds-serverclient.cSuccessNone0.057115s0.172219s
Success
uds-socketselect.cSuccessNone0.058468s0.150329s
Success
uds_listen_poll.cSuccessNone1.064094s1.233466s
Success
writev_socket.cSuccessNone0.063851s0.173106s
Success
Process Tests
barrier_test.cSuccessNone0.051625s0.138635s
Success
chain_thread.cSuccessNone1.053418s1.146621s
Success
ctor_syscall_test.cSuccessNone0.041826s0.104952s
Success
cxa_atexit_test.cSuccessNone0.048772s0.114724s
Success
exec_non_utf8.cSuccessNone0.053321s0.121413s
Success
execve_shebang.cSuccessNone0.054004s0.120455s
Success
exit.cSuccessNone0.049531s0.110367s
Success
exit_failure.cSuccessNone0.051611s0.132465s
Success
exit_group_thread.cSuccessNone0.055103s0.155240s
Success
exit_status_first_wins.cSuccessNone0.056926s0.158846s
Success
flockfile_test.cSuccessNone0.053274s0.146030s
Success
fork2malloc.cSuccessNone0.054485s0.145728s
Success
fork_select.cSuccessNone0.052159s0.149330s
Success
fork_simple.cSuccessNone0.049804s0.129847s
Success
fork_syscall.cSuccessNone0.056505s0.630891s
Success
fork_tls_ctype.cSuccessNone0.056123s0.163312s
Success
forkandopen.cSuccessNone0.053172s0.149618s
Success
forkdup.cSuccessNone0.054803s0.144197s
Success
forkexecuid.cSuccessNone0.051417s0.154012s
Success
forkexecv-arg.cSuccessNone0.052493s0.144156s
Success
forkexecv.cSuccessNone0.050485s0.142807s
Success
forkfiles.cSuccessNone0.053367s0.148192s
Success
forkmalloc.cSuccessNone0.052649s0.134227s
Success
forknodup.cSuccessNone0.053943s0.147762s
Success
function-ptr.cSuccessNone0.046625s0.107895s
Success
getegid_syscall.cSuccessNone0.054570s0.484340s
Success
getgid_syscall.cSuccessNone0.053846s0.475927s
Success
getpid.cSuccessNone0.046503s0.107020s
Success
getpid_syscall.cSuccessNone0.056749s0.496352s
Success
getppid.cSuccessNone0.053396s0.138872s
Success
getppid_syscall.cSuccessNone0.057468s0.429705s
Success
getuid.cSuccessNone0.052876s0.116838s
Success
getuid_syscall.cSuccessNone0.052150s0.261358s
Success
hello-arg.cSuccessNone0.042874s0.109375s
Success
hello.cSuccessNone0.043407s0.103004s
Success
longjmp.cSuccessNone0.043883s0.115018s
Success
mutex.cSuccessNone2.056860s2.134393s
Success
printf_deadlock_smoke.cSuccessNone0.061502s0.171217s
Success
printf_thread_test.cSuccessNone0.051146s0.145103s
Success
sem_forks.cSuccessNone0.056252s0.190364s
Success
setjmp_edge.cSuccessNone0.048018s0.187570s
Success
setsid.cSuccessNone0.046176s0.105279s
Success
template.cSuccessNone0.053635s0.192044s
Success
test_crossmodule_longjmp.cSuccessNone0.054842s0.152969s
Success
test_exec_nofork.cSuccessNone0.052192s0.141865s
Success
test_unlink_open_file.cSuccessNone0.047893s0.109116s
Success
thread-guard.cSuccessNone0.049893s0.131782s
Success
thread-test.cSuccessNone0.046888s0.121550s
Success
thread.cSuccessNone0.046191s0.121653s
Success
thread_cageid_race.cSuccessNone0.048445s0.292270s
Success
tls_test.cSuccessNone0.051383s0.160680s
Success
uname.cSuccessNone0.045721s0.105170s
Success
wait.cSuccessNone0.050315s0.156280s
Success
waitpid_anychild.cSuccessNone0.052680s0.138648s
Success
waitpid_syscall.cSuccessNone1.054943s1.229941s
Success
waitpid_wnohang.cSuccessNone0.052025s0.136904s
Success
Signal Tests
alarm.cSuccessNone7.053820s7.147127s
Success
eintr_fork_signal.cSuccessNone1.054069s1.154418s
Success
kill.cSuccessNone1.050765s1.137636s
Success
pause_test.cSuccessNone1.052905s1.144484s
Success
setitimer.cSuccessNone7.052681s7.152311s
Success
sigalrm.cSuccessNone2.051946s2.134148s
Success
sigaltstack.cSuccessNone0.052509s0.131718s
Success
sigchld.cSuccessNone1.053326s1.139044s
Success
signal-fork.cSuccessNone4.054224s4.136362s
Success
signal-simple.cSuccessNone0.052610s0.121650s
Success
signal_SIGCHLD.cSuccessNone0.052717s0.144401s
Success
signal_fork.cSuccessNone0.049009s0.141734s
Success
signal_int_ignored.cSuccessNone2.053491s2.140672s
Success
signal_kill_cleanup.cSuccessNone1.049187s1.131979s
Success
signal_procmask.cSuccessNone0.045695s0.120030s
Success
signal_read_interrupt.cSuccessNone0.556692s0.649304s
Success
signal_recursive.cSuccessNone0.046145s0.125599s
Success
signal_sa_mask.cSuccessNone0.046376s0.116049s
Success
signal_select_interrupt.cSuccessNone0.556685s0.648627s
Success
signal_write_interrupt.cSuccessNone1.053775s1.140084s
Success
sigpipe.cSuccessNone1.053996s1.146809s
Success
sigprocmask.cSuccessNone1.051251s1.125217s
Success
sigsuspend_test.cSuccessNone1.050086s1.147153s
Success
test_sigsetjmp.cSuccessNone0.051460s0.152985s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.044664s0.110318s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.111819s0.113108s
Success
invalid_access_fork.cSuccessNone0.137790s0.201416s
Success
mmap-negative1.cSuccessNone0.137564s0.122770s
Success
mmap-negative2.cSuccessNone0.160708s0.186493s
Success
Signal Tests
signal_resethand.cSuccessNone1.051488s1.134778s
Success

C++ harness

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

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

@Yaxuan-w

Copy link
Copy Markdown
Member

Can we let make test do same thing?

@DanielZ224 DanielZ224 force-pushed the improve-test-runner-reporting branch from c7417a2 to 64225e0 Compare June 29, 2026 18:10
@DanielZ224

Copy link
Copy Markdown
Contributor Author

@Yaxuan-w Updated this so the unified runner path used by make test also preserves the compact wasm test progress and deferred failure summary. I verified it through scripts/test/test_runner.py --harness wasmtestreport, which now shows the same . / X progress line followed by the summary and Failures section.

@github-actions

Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

grate harness

Grate Test Report

MetricValue
Total15
Success15
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

[Grate|interpose-exit] PASS

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

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

STDERR:

static harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.061743s4.041211s
Success
thread.cSuccessNone0.051640s4.106179s
Success
tls_test.cSuccessNone0.058980s4.143013s
Success
Fail Tests

Summary

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

wasm harness

Test Report

Deterministic Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
basic.cSuccessNone0.052457s0.124852s
Success
dlopen_fork.cSuccessNone0.055234s0.153490s
Success
dlopen_thread.cSuccessNone0.055499s0.152939s
Success
double_fork_dlopen.cSuccessNone0.058179s0.197401s
Success
fork_dlopen.cSuccessNone0.054279s0.150351s
Success
longjmp_dlopen.cSuccessNone0.053571s0.142514s
Success
rdynamic_main.cSuccessNone0.055349s0.147714s
Success
File Tests
chartests.cSuccessNone0.052436s0.156267s
Success
chdir_getcwd.cSuccessNone0.054860s0.127737s
Success
chmod.cSuccessNone0.057927s0.138018s
Success
clock_gettime_highlevel.cSuccessNone0.125232s0.181380s
Success
clock_gettime_simple.cSuccessNone0.048607s0.116080s
Success
cloexec.cSuccessNone0.057347s0.154230s
Success
close.cSuccessNone0.065172s0.150247s
Success
copy_file_range.cSuccessNone0.056892s0.149462s
Success
creat_access.cSuccessNone0.057697s0.128990s
Success
doubleclose.cSuccessNone0.048621s0.109806s
Success
dup.cSuccessNone0.048995s0.124643s
Success
dup2.cSuccessNone0.054249s0.124567s
Success
dup3.cSuccessNone0.052785s0.125768s
Success
dupwrite.cSuccessNone0.054435s0.125475s
Success
etc_conf.cSuccessNone0.051375s0.132281s
Success
faccessat.cSuccessNone0.053694s0.130150s
Success
fchdir.cSuccessNone0.057986s0.139797s
Success
fchmod.cSuccessNone0.056814s0.138207s
Success
fchmodat.cSuccessNone0.052172s0.129344s
Success
fcntl.cSuccessNone0.054889s0.139552s
Success
fcntl_dupfd.cSuccessNone0.049909s0.119419s
Success
fdatasync.cSuccessNone0.053889s0.121816s
Success
filetest.cSuccessNone0.055161s0.122784s
Success
filetest1000.cSuccessNone0.064899s0.136926s
Success
flock.cSuccessNone0.062254s0.172230s
Success
fstat.cSuccessNone0.057703s0.141191s
Success
fstatfs.cSuccessNone0.049745s0.118621s
Success
fsync.cSuccessNone0.054572s0.121794s
Success
ftruncate.cSuccessNone0.060045s0.222348s
Success
getcwd.cSuccessNone0.052176s0.116602s
Success
getcwd_null.cSuccessNone0.055894s0.132320s
Success
getpgid.cSuccessNone0.049764s0.113629s
Success
getrandom.cSuccessNone0.056680s0.139203s
Success
ioctl.cSuccessNone0.058142s0.132689s
Success
link.cSuccessNone0.060287s0.168889s
Success
locale_test.cSuccessNone0.066149s0.324948s
Success
lseek.cSuccessNone0.060375s0.201005s
Success
lstat.cSuccessNone0.061860s0.150448s
Success
mkdir_rmdir.cSuccessNone0.056447s0.130624s
Success
mkfifo_test.cSuccessNone0.060345s0.178422s
Success
mknod.cSuccessNone0.055046s0.135705s
Success
nocancel_io.cSuccessNone0.058188s0.149949s
Success
open.cSuccessNone0.050603s0.115259s
Success
openat.cSuccessNone0.051179s0.121871s
Success
path_conversion_safety.cSuccessNone0.060092s0.146376s
Success
ppoll.cSuccessNone0.059523s0.132964s
Success
pread_pwrite.cSuccessNone0.052862s0.129481s
Success
preadv_pwritev.cSuccessNone0.058034s0.143441s
Success
printf.cSuccessNone0.048220s0.112633s
Success
prlimit64.cSuccessNone0.049898s0.116689s
Success
read.cSuccessNone0.056490s0.136442s
Success
readbytes.cSuccessNone0.052891s0.121463s
Success
readdir_basic.cSuccessNone0.059230s0.161543s
Success
readlink.cSuccessNone0.055938s0.134715s
Success
readlinkat.cSuccessNone0.057610s0.137137s
Success
readv_writev_test.cSuccessNone0.057926s0.139255s
Success
rename.cSuccessNone0.059567s0.129434s
Success
renameat.cSuccessNone0.058002s0.141902s
Success
sc-writev.cSuccessNone0.056291s0.128228s
Success
stat.cSuccessNone0.056840s0.138066s
Success
statfs.cSuccessNone0.051049s0.118205s
Success
symlink.cSuccessNone0.058107s0.158465s
Success
sync_file_range.cSuccessNone0.054176s0.123380s
Success
timespec_time_t_compat.cSuccessNone0.053685s0.120357s
Success
trailing_slash.cSuccessNone0.055084s0.131887s
Success
truncate.cSuccessNone0.057110s0.149244s
Success
unlink.cSuccessNone0.058128s0.163553s
Success
unlinkat.cSuccessNone0.057462s0.143338s
Success
utimensat.cSuccessNone0.054758s0.147121s
Success
write.cSuccessNone0.049754s0.110935s
Success
writeloop.cSuccessNone0.057528s0.126613s
Success
writepartial.cSuccessNone0.056798s0.120516s
Success
writev.cSuccessNone0.057569s0.134215s
Success
Math Tests
math_link_smoke.cSuccessNone0.062196s0.119015s
Success
math_tests.cSuccessNone0.064085s0.146434s
Success
printf_float.cSuccessNone0.060526s0.141413s
Success
Memory Tests
brk.cSuccessNone0.053359s0.121937s
Success
fork_large_memory.cSuccessNone0.088131s0.467800s
Success
malloc.cSuccessNone0.052300s0.114653s
Success
malloc_large.cSuccessNone0.052616s0.114504s
Success
memcpy.cSuccessNone0.052012s0.116389s
Success
memory_error_test.cSuccessNone0.056848s0.143126s
Success
mmap.cSuccessNone0.049179s0.114017s
Success
mmap_address_truncation.cSuccessNone0.051179s0.118883s
Success
mmap_aligned.cSuccessNone0.050342s0.131187s
Success
mmap_complicated.cSuccessNone0.056050s0.152706s
Success
mmap_file.cSuccessNone0.056361s0.128618s
Success
mmap_shared.cSuccessNone0.055198s0.145893s
Success
mmaptest.cSuccessNone0.052830s0.121386s
Success
mprotect.cSuccessNone0.050483s0.115573s
Success
mprotect_boundary.cSuccessNone0.050177s0.125136s
Success
mprotect_end_region.cSuccessNone0.049689s0.121975s
Success
mprotect_middle_region.cSuccessNone0.050121s0.120864s
Success
mprotect_multiple_times.cSuccessNone0.050937s0.124089s
Success
mprotect_same_value.cSuccessNone0.049622s0.119219s
Success
mprotect_spanning_regions.cSuccessNone0.053038s0.136701s
Success
munmap_adjacent_shm.cSuccessNone0.052339s0.136658s
Success
sbrk.cSuccessNone0.052914s0.118904s
Success
segfault.cSuccessNone0.057249s0.160695s
Success
shm.cSuccessNone0.055003s0.152422s
Success
shmtest.cSuccessNone0.051204s0.122541s
Success
thread_malloc_sequential.cSuccessNone0.058823s0.192865s
Success
vtable.cSuccessNone0.062820s0.133697s
Success
Networking Tests
accept4.cSuccessNone0.060379s0.143886s
Success
dns_resolve_test.cSuccessNone0.098063s0.198484s
Success
dnstest.cSuccessNone0.057357s0.149049s
Success
epoll_badfd.cSuccessNone0.051841s0.116053s
Success
epoll_edge_triggered.cSuccessNone0.214981s0.401500s
Success
epollcreate1.cSuccessNone0.058682s0.141629s
Success
error_handling_net.cSuccessNone0.065958s0.212972s
Success
getaddrinfo_test.cSuccessNone0.073466s0.179632s
Success
getaddrinfo_unspec.cSuccessNone0.083727s0.193662s
Success
gethostname.cSuccessNone0.051800s0.113573s
Success
getifaddrs.cSuccessNone0.059155s0.139712s
Success
getsockname.cSuccessNone0.060517s0.136973s
Success
getsockopt.cSuccessNone0.060021s0.167566s
Success
ipv6_basic.cSuccessNone0.064875s0.172495s
Success
makepipe.cSuccessNone0.051414s0.116276s
Success
nonblocking_eagain.cSuccessNone0.086980s0.217454s
Success
pipe.cSuccessNone0.076316s0.170133s
Success
pipe2.cSuccessNone0.061272s0.135213s
Success
pipeinput.cSuccessNone0.063814s0.175221s
Success
pipeinput2.cSuccessNone0.062447s0.171275s
Success
pipeonestring.cSuccessNone0.060163s0.165070s
Success
pipepong.cSuccessNone0.058402s0.168443s
Success
pipewrite.cSuccessNone0.055729s0.132016s
Success
poll.cSuccessNone0.056151s0.124027s
Success
recvfrom-sendto.cSuccessNone0.058206s0.139005s
Success
sendmsg_recvmsg_test.cSuccessNone0.062490s0.148154s
Success
serverclient.cSuccessNone0.061812s0.165819s
Success
shutdown.cSuccessNone0.060032s0.149359s
Success
shutdown_fork.cSuccessNone0.059906s0.155903s
Success
simple-select.cSuccessNone0.061283s0.167694s
Success
simple_epoll.cSuccessNone0.057429s0.134947s
Success
socket.cSuccessNone0.058427s0.131932s
Success
socket_cloexec.cSuccessNone0.070331s0.157556s
Success
socket_options_advanced.cSuccessNone0.065340s0.272570s
Success
socketepoll.cSuccessNone0.056687s0.126833s
Success
socketpair.cSuccessNone0.065775s0.167564s
Success
socketselect.cSuccessNone0.057776s0.139804s
Success
udp_send_recv.cSuccessNone0.205683s0.449788s
Success
uds-getsockname.cSuccessNone0.070499s0.140709s
Success
uds-nb-select.cSuccessNone2.066887s2.200136s
Success
uds-serverclient.cSuccessNone0.075136s0.285217s
Success
uds-socketselect.cSuccessNone0.057243s0.139540s
Success
uds_listen_poll.cSuccessNone1.068809s1.203308s
Success
writev_socket.cSuccessNone0.060118s0.163523s
Success
Process Tests
barrier_test.cSuccessNone0.055350s0.148466s
Success
chain_thread.cSuccessNone1.057051s1.152799s
Success
ctor_syscall_test.cSuccessNone0.046792s0.113904s
Success
cxa_atexit_test.cSuccessNone0.053643s0.120755s
Success
exec_non_utf8.cSuccessNone0.056768s0.129780s
Success
execve_shebang.cSuccessNone0.056291s0.124647s
Success
exit.cSuccessNone0.053853s0.117517s
Success
exit_failure.cSuccessNone0.055934s0.143277s
Success
exit_group_thread.cSuccessNone0.057758s0.162399s
Success
exit_status_first_wins.cSuccessNone0.059151s0.165473s
Success
flockfile_test.cSuccessNone0.056492s0.153337s
Success
fork2malloc.cSuccessNone0.056876s0.147008s
Success
fork_select.cSuccessNone0.054729s0.149979s
Success
fork_simple.cSuccessNone0.055092s0.141175s
Success
fork_syscall.cSuccessNone0.060830s0.649553s
Success
fork_tls_ctype.cSuccessNone0.058974s0.165108s
Success
forkandopen.cSuccessNone0.058240s0.157916s
Success
forkdup.cSuccessNone0.058740s0.153235s
Success
forkexecuid.cSuccessNone0.055742s0.165141s
Success
forkexecv-arg.cSuccessNone0.056660s0.161695s
Success
forkexecv.cSuccessNone0.054687s0.148680s
Success
forkfiles.cSuccessNone0.057139s0.151001s
Success
forkmalloc.cSuccessNone0.057263s0.143174s
Success
forknodup.cSuccessNone0.057827s0.155231s
Success
function-ptr.cSuccessNone0.052430s0.118912s
Success
getegid_syscall.cSuccessNone0.057003s0.497935s
Success
getgid_syscall.cSuccessNone0.058631s0.499983s
Success
getpid.cSuccessNone0.049003s0.113627s
Success
getpid_syscall.cSuccessNone0.059097s0.527050s
Success
getppid.cSuccessNone0.055763s0.140876s
Success
getppid_syscall.cSuccessNone0.058937s0.409375s
Success
getuid.cSuccessNone0.056838s0.124848s
Success
getuid_syscall.cSuccessNone0.055121s0.253714s
Success
hello-arg.cSuccessNone0.048403s0.119847s
Success
hello.cSuccessNone0.047761s0.110431s
Success
longjmp.cSuccessNone0.048948s0.120256s
Success
mutex.cSuccessNone2.058456s2.141844s
Success
printf_deadlock_smoke.cSuccessNone0.064459s0.175634s
Success
printf_thread_test.cSuccessNone0.055145s0.152637s
Success
sem_forks.cSuccessNone0.058991s0.184429s
Success
setjmp_edge.cSuccessNone0.051578s0.191330s
Success
setsid.cSuccessNone0.048748s0.111969s
Success
template.cSuccessNone0.055864s0.190865s
Success
test_crossmodule_longjmp.cSuccessNone0.057240s0.158295s
Success
test_exec_nofork.cSuccessNone0.055309s0.145819s
Success
test_unlink_open_file.cSuccessNone0.051239s0.113275s
Success
thread-guard.cSuccessNone0.054381s0.138324s
Success
thread-test.cSuccessNone0.052735s0.132109s
Success
thread.cSuccessNone0.052514s0.129522s
Success
thread_cageid_race.cSuccessNone0.051820s0.302633s
Success
tls_test.cSuccessNone0.055602s0.170699s
Success
uname.cSuccessNone0.050928s0.114814s
Success
wait.cSuccessNone0.052659s0.158351s
Success
waitpid_anychild.cSuccessNone0.057797s0.145637s
Success
waitpid_syscall.cSuccessNone1.058492s1.242080s
Success
waitpid_wnohang.cSuccessNone0.058335s0.148555s
Success
Signal Tests
alarm.cSuccessNone7.056000s7.153714s
Success
eintr_fork_signal.cSuccessNone1.059445s1.167544s
Success
kill.cSuccessNone1.057790s1.147906s
Success
pause_test.cSuccessNone1.057701s1.154263s
Success
setitimer.cSuccessNone7.057569s7.157121s
Success
sigalrm.cSuccessNone2.059276s2.147589s
Success
sigaltstack.cSuccessNone0.060757s0.140717s
Success
sigchld.cSuccessNone1.058060s1.148092s
Success
signal-fork.cSuccessNone4.059219s4.147558s
Success
signal-simple.cSuccessNone0.058231s0.132305s
Success
signal_SIGCHLD.cSuccessNone0.055743s0.153451s
Success
signal_fork.cSuccessNone0.055417s0.150699s
Success
signal_int_ignored.cSuccessNone2.058179s2.149093s
Success
signal_kill_cleanup.cSuccessNone1.057210s1.141339s
Success
signal_procmask.cSuccessNone0.052249s0.128607s
Success
signal_read_interrupt.cSuccessNone0.561022s0.651914s
Success
signal_recursive.cSuccessNone0.052464s0.134275s
Success
signal_sa_mask.cSuccessNone0.050460s0.121651s
Success
signal_select_interrupt.cSuccessNone0.561457s0.657361s
Success
signal_write_interrupt.cSuccessNone1.059727s1.148385s
Success
sigpipe.cSuccessNone1.059570s1.162315s
Success
sigprocmask.cSuccessNone1.057133s1.132442s
Success
sigsuspend_test.cSuccessNone1.054929s1.153023s
Success
test_sigsetjmp.cSuccessNone0.057179s0.160320s
Success
Fail Tests

Summary

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

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.049315s0.121025s
Success
Memory Tests
invalid_access_direct.cSuccessNone0.118882s0.134263s
Success
invalid_access_fork.cSuccessNone0.153127s0.209636s
Success
mmap-negative1.cSuccessNone0.138148s0.124164s
Success
mmap-negative2.cSuccessNone0.165530s0.227174s
Success
Signal Tests
signal_resethand.cSuccessNone1.055716s1.147574s
Success

C++ harness

Summary

MetricValue
Total1
Success1
Failures0
Compile failures0
Runtime failures0
Output mismatch0
Timeouts0

Cases

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

@Yaxuan-w Yaxuan-w merged commit 7d47b7a into main Jul 6, 2026
3 checks passed
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.

Improve test runner progress and failure reporting

3 participants