Skip to content

test(cage,fdtables): add CONC-001..005 concurrency and isolation coverage - #1349

Open
Shounak-Ghosh wants to merge 1 commit into
mainfrom
test-conc
Open

test(cage,fdtables): add CONC-001..005 concurrency and isolation coverage#1349
Shounak-Ghosh wants to merge 1 commit into
mainfrom
test-conc

Conversation

@Shounak-Ghosh

@Shounak-Ghosh Shounak-Ghosh commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements the full CONC-001..005 test matrix from #1304, which asks us to verify
that cage creation/destruction, fd-table operations, cage-table operations,
resource accounting, and concurrent syscall execution preserve runtime invariants.

This PR contains tests only. An earlier revision also carried the 11 bug fixes
these tests surfaced; per review feedback those are now split out into one issue
and one PR per bug.

Also adds a rust-unit-tests CI job for the cage and fdtables crates, whose
unit tests have never run in CI. The cage suite does not currently compile: two
tests in vmmap.rs bind a Vmmap without mut and then mutate it. Both are
one-word corrections inside #[cfg(test)] mod tests, so they touch test code
rather than runtime code, and they are here as the job cannot run
without them.

Related issues

Closes #1304.

Mapping to the issue's matrix (the issue lists CONC-005 as one row covering three
resources; it is implemented here as three separate tests, one per resource):

Row Oracle (from #1304) Implemented as
CONC-001 No cage-table race, no leaked host resource src/cage/src/cage.rs: conc_001_cage_spawn_destroy_stress, conc_001_finalize_waits_for_grate_inflight (matches the issue's "Cage lib inner test suite")
CONC-002 Zero data races conc_002_cage_fd_fs_stress.c + 4 in-crate conc_002_* tests
CONC-003 All interleavings preserve invariants conc_003_cage_fd_refcounts.c + 4 in-crate conc_003_* tests
CONC-004 No double-free, no leak conc_004_dup_close_fork_refcounts.c + 2 in-crate conc_004_* tests
CONC-005 Limits enforced per cage conc_005_fd_exhaustion_isolation.c, conc_005_memory_pressure_isolation.c, conc_005_syscall_flood_isolation.c + 3 in-crate conc_005_* tests

The C and Rust suites are deliberately complementary, not redundant: the C side
is a black-box differential test (the same binary is run natively and under lind,
and stdout is diffed), while the in-crate Rust side asserts exact refcount
equalities that the public C/POSIX interface cannot observe at all. Where the C
test can only watch a pipe reach EOF, the Rust mirror reads the count straight
out of a registered close handler.

Bugs found

Writing these tests surfaced 11 defects, plus one missing capability and one
behavioural inconsistency that needs a team decision. Per review feedback none of
the fixes are in this PR. Each is filed as its own issue and will be submitted as
its own PR after discussion. The full set of fixes is preserved verbatim on branch
test-conc-bug-fixes, where each is paired with the test that found it.

Three of the 11 are guest-triggerable, including one that lets any cage terminate
the entire runtime; those are called out in their respective issues.

Issue list: (to be filled in once filed)

Currently ignored / skipped

Eight tests cannot pass on current main and are marked #[ignore] or listed in
skip_test_cases.txt. The CI job is green as submitted. Each is annotated in
place with the condition that unblocks it, so the fix PRs can find them by grep.

Rust: #[ignore] (5)

Test Behaviour on unfixed main
cross_cage_fd_isolation Fails; pre-existing on main, not from this PR
get_specific_virtual_fd_rejects_fd_at_max Panics on an out-of-bounds index
conc_002_shared_underfd_refcount_race Deadlocks
conc_002_copy_fdtable_vs_concurrent_churn Deadlocks
conc_003_dup2_overwrite_refcount_conservation Deadlocks

The three deadlocks are not a judgement call: the refcount corruption panics one
worker thread, and the surviving workers then block forever on the round barrier.
Unfixed, these hang the test binary rather than reporting a failure, so #[ignore]
is required rather than merely tidy.

C: skip_test_cases.txt (3)

Test Why
conc_004_dup_close_fork_refcounts.c One assertion only (dup2(BADFD, BADFD)); the rest of the file passes today
conc_005_fd_exhaustion_isolation.c Needs three fd-exhaustion fixes; running it unfixed also leaks host descriptors
conc_005_memory_pressure_isolation.c Its setrlimit() reaches a lind_debug_panic! and takes the whole runtime down; unfixed it does not fail, it kills the harness

Each skipped file's header comment explains what blocks it and what to remove when
the fix lands.

Testing

# Rust in-crate suites (same invocation as the new CI job)
cargo test --manifest-path src/cage/Cargo.toml -- --test-threads=1
cargo test --manifest-path src/fdtables/Cargo.toml -- --test-threads=1

# C tests, native + wasm, stdout diffed by the harness
python3 scripts/test/harnesses/wasmtestreport.py \
  --testfiles tests/unit-tests/process_tests/deterministic/conc_002_cage_fd_fs_stress.c \
              tests/unit-tests/process_tests/deterministic/conc_003_cage_fd_refcounts.c \
              tests/unit-tests/process_tests/deterministic/conc_005_syscall_flood_isolation.c \
  --compile-flags -pthread -lpthread

Results on this branch:

  • cage: 38/38 pass, including both conc_001_* tests.
  • fdtables: 45 pass, 0 fail, 6 ignored (the 5 above plus one pre-existing
    #[ignore]), and a second binary at 24/24.
  • Re-run 25× (fdtables) and 15× (cage) consecutively with zero failures or
    hangs, since several of these tests are probabilistic by construction and a single
    green run proves little.
  • cargo fmt --check clean on both crates.

Every C test is written to be harness-safe: exactly one line of stdout, and no
pids, clocks, addresses, fd numbers, sizes, or errno values are ever printed or
compared, since those legitimately differ between the native and lind runs.
Diagnostics go to fd 2, which the harness surfaces only on a nonzero exit.

CI

Adds a rust-unit-tests job to lint.yml running both crates' tests.
--test-threads=1 is mandatory: both crates' tests mutate process-global state
(CAGE_MAP; FDTABLE/FDCOUNT/CLOSEHANDLERTABLE) and serialize on hand-rolled
mutexes rather than real test isolation.

One thing worth knowing about the existing suite: refresh() clears FDTABLE and
CLOSEHANDLERTABLE but not FDCOUNT, so refcount state leaks between tests in
one binary. At least one pre-existing test (test_dup_close, a #[should_panic])
depends on that leakage and fails when run in isolation. Every test added here uses
a dedicated fdkind and a disjoint underfd window specifically so it never
aliases another test's leftovers, but the ordering fragility in the older tests is
worth a follow-up.

Compatibility

No production code changes, so no guest-visible behaviour changes. The only
non-test files touched are .github/workflows/lint.yml (new job) and
skip_test_cases.txt.

Notes for reviewers

Suggested reading order:

  1. CI: .github/workflows/lint.yml, and the ignore/skip set above.
  2. Tests: the six conc_*.c files and the in-crate mod tests additions.

Each ignored or skipped test states, at its definition, the condition that unblocks
it. Those are worth reading alongside the corresponding issue.

Checklist

  • I have read the contribution guidelines.
  • I added or updated tests where appropriate.
  • I ran the relevant tests locally and they pass.
  • I formatted the code and ran the relevant linters.
  • I updated documentation for user-visible or architectural changes.
  • I disclosed security vulnerabilities privately rather than in this PR.

@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.060031s4.055652s
Success
thread.cSuccessNone0.048977s4.129362s
Success
tls_test.cSuccessNone0.055223s4.147822s
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-math 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
Math Tests
math_link_smoke.cSuccessNone0.056840s0.109537s
Success
math_tests.cSuccessNone0.057894s0.145772s
Success
printf_float.cSuccessNone0.057367s0.136919s
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-filesystem harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases75
Number of Successes75
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.050133s0.151477s
Success
chdir_getcwd.cSuccessNone0.051103s0.118047s
Success
chmod.cSuccessNone0.056729s0.132655s
Success
clock_gettime_highlevel.cSuccessNone0.121816s0.168522s
Success
clock_gettime_simple.cSuccessNone0.044085s0.107003s
Success
cloexec.cSuccessNone0.052980s0.147661s
Success
close.cSuccessNone0.062427s0.151398s
Success
copy_file_range.cSuccessNone0.054181s0.148794s
Success
creat_access.cSuccessNone0.054830s0.119418s
Success
cross_cage_fd_bruteforce.cSuccessNone0.056317s0.189404s
Success
doubleclose.cSuccessNone0.045239s0.102599s
Success
dup.cSuccessNone0.046491s0.123188s
Success
dup2.cSuccessNone0.052665s0.116613s
Success
dup3.cSuccessNone0.050094s0.126343s
Success
dupwrite.cSuccessNone0.054434s0.120533s
Success
etc_conf.cSuccessNone0.049080s0.120942s
Success
faccessat.cSuccessNone0.050431s0.121384s
Success
fchdir.cSuccessNone0.056548s0.136087s
Success
fchmod.cSuccessNone0.056313s0.132239s
Success
fchmodat.cSuccessNone0.048869s0.118893s
Success
fcntl.cSuccessNone0.052066s0.136550s
Success
fcntl_dupfd.cSuccessNone0.046876s0.112183s
Success
fdatasync.cSuccessNone0.053165s0.120310s
Success
filetest.cSuccessNone0.053231s0.115182s
Success
filetest1000.cSuccessNone0.061732s0.131247s
Success
flock.cSuccessNone0.065439s0.171166s
Success
fstat.cSuccessNone0.055493s0.134765s
Success
fstatfs.cSuccessNone0.047206s0.115072s
Success
fsync.cSuccessNone0.052408s0.117630s
Success
ftruncate.cSuccessNone0.058373s0.211779s
Success
getcwd.cSuccessNone0.050120s0.108215s
Success
getcwd_null.cSuccessNone0.054768s0.134657s
Success
getpgid.cSuccessNone0.047036s0.107450s
Success
getrandom.cSuccessNone0.052484s0.130460s
Success
ioctl.cSuccessNone0.058056s0.120656s
Success
link.cSuccessNone0.057546s0.166729s
Success
linkat.cSuccessNone0.057427s0.179551s
Success
locale_test.cSuccessNone0.064298s0.318074s
Success
lseek.cSuccessNone0.060124s0.193997s
Success
lstat.cSuccessNone0.058356s0.149639s
Success
mkdir_rmdir.cSuccessNone0.052810s0.122320s
Success
mkfifo_test.cSuccessNone0.060996s0.179245s
Success
mknod.cSuccessNone0.052398s0.132648s
Success
nocancel_io.cSuccessNone0.059524s0.144256s
Success
open.cSuccessNone0.047993s0.109158s
Success
openat.cSuccessNone0.049664s0.117919s
Success
path_conversion_safety.cSuccessNone0.057815s0.141276s
Success
ppoll.cSuccessNone0.058813s0.131971s
Success
pread_pwrite.cSuccessNone0.050588s0.122913s
Success
preadv_pwritev.cSuccessNone0.056992s0.139256s
Success
printf.cSuccessNone0.045786s0.106654s
Success
prlimit64.cSuccessNone0.047107s0.112368s
Success
read.cSuccessNone0.056487s0.131507s
Success
readbytes.cSuccessNone0.049744s0.111341s
Success
readdir_basic.cSuccessNone0.058516s0.154947s
Success
readlink.cSuccessNone0.053753s0.127559s
Success
readlinkat.cSuccessNone0.056108s0.129728s
Success
readv_writev_test.cSuccessNone0.055464s0.138627s
Success
rename.cSuccessNone0.056463s0.122748s
Success
renameat.cSuccessNone0.056042s0.138941s
Success
sc-writev.cSuccessNone0.052239s0.123725s
Success
stat.cSuccessNone0.057133s0.130611s
Success
statfs.cSuccessNone0.047802s0.114064s
Success
symlink.cSuccessNone0.056086s0.150615s
Success
sync_file_range.cSuccessNone0.052752s0.119569s
Success
timespec_time_t_compat.cSuccessNone0.051170s0.111746s
Success
trailing_slash.cSuccessNone0.052741s0.126953s
Success
truncate.cSuccessNone0.055261s0.141317s
Success
unlink.cSuccessNone0.056511s0.161585s
Success
unlinkat.cSuccessNone0.055650s0.137443s
Success
utimensat.cSuccessNone0.053133s0.139933s
Success
write.cSuccessNone0.046794s0.102648s
Success
writeloop.cSuccessNone0.057311s0.122042s
Success
writepartial.cSuccessNone0.054115s0.114212s
Success
writev.cSuccessNone0.054753s0.127862s
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-memory harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases28
Number of Successes28
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
brk.cSuccessNone0.073328s0.142450s
Success
fork_large_memory.cSuccessNone0.084791s0.468691s
Success
malloc.cSuccessNone0.064838s0.128682s
Success
malloc_large.cSuccessNone0.050435s0.105575s
Success
memcpy.cSuccessNone0.078299s0.143456s
Success
memory_error_test.cSuccessNone0.088862s0.194492s
Success
mmap.cSuccessNone0.066771s0.167427s
Success
mmap_address_truncation.cSuccessNone0.049830s0.115725s
Success
mmap_aligned.cSuccessNone0.048450s0.126485s
Success
mmap_complicated.cSuccessNone0.084704s0.218962s
Success
mmap_file.cSuccessNone0.097698s0.195184s
Success
mmap_shared.cSuccessNone0.067228s0.224978s
Success
mmaptest.cSuccessNone0.047780s0.110731s
Success
mprotect.cSuccessNone0.047794s0.109351s
Success
mprotect_boundary.cSuccessNone0.070677s0.185848s
Success
mprotect_end_region.cSuccessNone0.056026s0.173186s
Success
mprotect_middle_region.cSuccessNone0.046990s0.114864s
Success
mprotect_multiple_times.cSuccessNone0.059235s0.182852s
Success
mprotect_same_value.cSuccessNone0.047577s0.110211s
Success
mprotect_spanning_regions.cSuccessNone0.049338s0.128864s
Success
munmap_adjacent_shm.cSuccessNone0.049506s0.131515s
Success
sbrk.cSuccessNone0.049610s0.114611s
Success
segfault.cSuccessNone0.055462s0.154353s
Success
shm.cSuccessNone0.103725s0.223902s
Success
shmtest.cSuccessNone0.049042s0.114857s
Success
thread_malloc_sequential.cSuccessNone0.093650s0.474350s
Success
vmmap_escape.cSuccessNone0.072926s0.261260s
Success
vtable.cSuccessNone0.061503s0.127651s
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
Memory Tests
invalid_access_direct.cSuccessNone0.123374s0.124228s
Success
invalid_access_fork.cSuccessNone0.124473s0.142086s
Success
mmap-negative1.cSuccessNone0.171781s0.253449s
Success
mmap-negative2.cSuccessNone0.125397s0.213678s
Success
wasm-process harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases63
Number of Successes63
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
Process Tests
barrier_test.cSuccessNone0.052920s0.147380s
Success
chain_thread.cSuccessNone1.056094s1.154537s
Success
conc_002_cage_fd_fs_stress.cSuccessNone0.100239s0.617028s
Success
conc_003_cage_fd_refcounts.cSuccessNone0.075268s0.804144s
Success
conc_004_dup_close_fork_refcounts.cSuccessNone0.096685s1.557533s
Success
conc_005_fd_exhaustion_isolation.cSuccessNone0.071695s0.393946s
Success
conc_005_memory_pressure_isolation.cSuccessNone0.096070s0.342331s
Success
conc_005_syscall_flood_isolation.cSuccessNone0.135358s0.445049s
Success
ctor_syscall_test.cSuccessNone0.045319s0.112460s
Success
cxa_atexit_test.cSuccessNone0.049231s0.112205s
Success
exec_non_utf8.cSuccessNone0.054299s0.119223s
Success
execve_shebang.cSuccessNone0.054346s0.120133s
Success
exit.cSuccessNone0.050755s0.111186s
Success
exit_failure.cSuccessNone0.053328s0.136505s
Success
exit_group_thread.cSuccessNone0.055041s0.160452s
Success
exit_status_first_wins.cSuccessNone0.056455s0.162310s
Success
flockfile_test.cSuccessNone0.054619s0.149762s
Success
fork2malloc.cSuccessNone0.055217s0.142528s
Success
fork_select.cSuccessNone0.052645s0.152055s
Success
fork_simple.cSuccessNone0.053288s0.136732s
Success
fork_syscall.cSuccessNone0.057889s0.648434s
Success
fork_tls_ctype.cSuccessNone0.056750s0.165822s
Success
forkandopen.cSuccessNone0.055820s0.156614s
Success
forkdup.cSuccessNone0.055512s0.148124s
Success
forkexecuid.cSuccessNone0.051962s0.161200s
Success
forkexecv-arg.cSuccessNone0.051814s0.163416s
Success
forkexecv.cSuccessNone0.049376s0.150896s
Success
forkfiles.cSuccessNone0.056338s0.149671s
Success
forkmalloc.cSuccessNone0.056215s0.137990s
Success
forknodup.cSuccessNone0.053935s0.149119s
Success
function-ptr.cSuccessNone0.049601s0.108119s
Success
getegid_syscall.cSuccessNone0.053615s0.470805s
Success
getgid_syscall.cSuccessNone0.054482s0.495954s
Success
getpid.cSuccessNone0.046719s0.105050s
Success
getpid_syscall.cSuccessNone0.057899s0.524664s
Success
getppid.cSuccessNone0.054525s0.142742s
Success
getppid_syscall.cSuccessNone0.058658s0.394674s
Success
getuid.cSuccessNone0.054743s0.117406s
Success
getuid_syscall.cSuccessNone0.051860s0.253070s
Success
hello-arg.cSuccessNone0.044635s0.110372s
Success
hello.cSuccessNone0.044202s0.102148s
Success
longjmp.cSuccessNone0.045252s0.117818s
Success
mutex.cSuccessNone2.056295s2.140534s
Success
printf_deadlock_smoke.cSuccessNone0.062631s0.175541s
Success
printf_thread_test.cSuccessNone0.050555s0.147389s
Success
sem_forks.cSuccessNone0.056759s0.183242s
Success
sem_slow_path.cSuccessNone1.055426s1.147303s
Success
setjmp_edge.cSuccessNone0.051161s0.209015s
Success
setsid.cSuccessNone0.047214s0.105829s
Success
template.cSuccessNone0.052837s0.192729s
Success
test_crossmodule_longjmp.cSuccessNone0.056077s0.149453s
Success
test_exec_nofork.cSuccessNone0.051725s0.142356s
Success
test_unlink_open_file.cSuccessNone0.049128s0.108452s
Success
thread-guard.cSuccessNone0.053423s0.134273s
Success
thread-test.cSuccessNone0.047638s0.130090s
Success
thread.cSuccessNone0.049502s0.123748s
Success
thread_cageid_race.cSuccessNone0.049691s0.293381s
Success
tls_test.cSuccessNone0.052992s0.171757s
Success
uname.cSuccessNone0.046589s0.106809s
Success
wait.cSuccessNone0.049903s0.159947s
Success
waitpid_anychild.cSuccessNone0.054876s0.146412s
Success
waitpid_syscall.cSuccessNone1.054545s1.240190s
Success
waitpid_wnohang.cSuccessNone0.055635s0.148387s
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-signals harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases24
Number of Successes24
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
Signal Tests
alarm.cSuccessNone7.052180s7.146755s
Success
eintr_fork_signal.cSuccessNone1.056757s1.156843s
Success
kill.cSuccessNone1.052801s1.145929s
Success
pause_test.cSuccessNone1.054770s1.148147s
Success
setitimer.cSuccessNone7.054514s7.148049s
Success
sigalrm.cSuccessNone2.053073s2.135744s
Success
sigaltstack.cSuccessNone0.055877s0.132496s
Success
sigchld.cSuccessNone1.054731s1.148007s
Success
signal-fork.cSuccessNone4.055117s4.144216s
Success
signal-simple.cSuccessNone0.054337s0.120442s
Success
signal_SIGCHLD.cSuccessNone0.051989s0.146776s
Success
signal_fork.cSuccessNone0.050066s0.148590s
Success
signal_int_ignored.cSuccessNone2.053948s2.141717s
Success
signal_kill_cleanup.cSuccessNone1.051164s1.141031s
Success
signal_procmask.cSuccessNone0.048196s0.120725s
Success
signal_read_interrupt.cSuccessNone0.557517s0.648339s
Success
signal_recursive.cSuccessNone0.047969s0.125818s
Success
signal_sa_mask.cSuccessNone0.048422s0.117093s
Success
signal_select_interrupt.cSuccessNone0.557612s0.652830s
Success
signal_write_interrupt.cSuccessNone1.055483s1.144557s
Success
sigpipe.cSuccessNone1.055668s1.152894s
Success
sigprocmask.cSuccessNone1.054642s1.128202s
Success
sigsuspend_test.cSuccessNone1.051403s1.145398s
Success
test_sigsetjmp.cSuccessNone0.054857s0.156013s
Success

Fail Tests

Summary

MetricCount
Total Test Cases1
Number of Successes1
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
Signal Tests
signal_resethand.cSuccessNone1.052156s1.142768s
Success
wasm-networking harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases44
Number of Successes44
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
Networking Tests
accept4.cSuccessNone0.059754s0.141340s
Success
dns_resolve_test.cSuccessNone0.054811s0.122551s
Success
dnstest.cSuccessNone0.054950s0.119913s
Success
epoll_badfd.cSuccessNone0.048276s0.109832s
Success
epoll_edge_triggered.cSuccessNone0.213239s0.387936s
Success
epollcreate1.cSuccessNone0.053735s0.133247s
Success
error_handling_net.cSuccessNone0.063199s0.202568s
Success
getaddrinfo_test.cSuccessNone0.056563s0.156384s
Success
getaddrinfo_unspec.cSuccessNone0.065188s0.127143s
Success
gethostname.cSuccessNone0.047623s0.107473s
Success
getifaddrs.cSuccessNone0.056447s0.133957s
Success
getsockname.cSuccessNone0.057034s0.126420s
Success
getsockopt.cSuccessNone0.055424s0.162304s
Success
ipv6_basic.cSuccessNone0.058019s0.158175s
Success
makepipe.cSuccessNone0.046796s0.104701s
Success
nonblocking_eagain.cSuccessNone0.058218s0.170345s
Success
pipe.cSuccessNone0.058229s0.130740s
Success
pipe2.cSuccessNone0.057681s0.127122s
Success
pipeinput.cSuccessNone0.058490s0.160953s
Success
pipeinput2.cSuccessNone0.057805s0.169840s
Success
pipeonestring.cSuccessNone0.058413s0.169085s
Success
pipepong.cSuccessNone0.056343s0.166020s
Success
pipewrite.cSuccessNone0.051839s0.120409s
Success
poll.cSuccessNone0.054918s0.122868s
Success
recvfrom-sendto.cSuccessNone0.056833s0.131475s
Success
sendmsg_recvmsg_test.cSuccessNone0.056864s0.139071s
Success
serverclient.cSuccessNone0.055696s0.142067s
Success
shutdown.cSuccessNone0.055710s0.133226s
Success
shutdown_fork.cSuccessNone0.056904s0.149445s
Success
simple-select.cSuccessNone0.058008s0.160345s
Success
simple_epoll.cSuccessNone0.054889s0.123612s
Success
socket.cSuccessNone0.054139s0.125701s
Success
socket_cloexec.cSuccessNone0.052566s0.116211s
Success
socket_options_advanced.cSuccessNone0.061356s0.183543s
Success
socketepoll.cSuccessNone0.052811s0.118068s
Success
socketpair.cSuccessNone0.055114s0.152831s
Success
socketselect.cSuccessNone0.053860s0.128315s
Success
udp_send_recv.cSuccessNone0.162190s0.285507s
Success
uds-getsockname.cSuccessNone0.055949s0.124838s
Success
uds-nb-select.cSuccessNone2.067340s2.202172s
Success
uds-serverclient.cSuccessNone0.058772s0.167438s
Success
uds-socketselect.cSuccessNone0.056082s0.135187s
Success
uds_listen_poll.cSuccessNone1.061600s1.178155s
Success
writev_socket.cSuccessNone0.059210s0.160724s
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-dynamic-linking harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases7
Number of Successes7
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.048795s0.118524s
Success
dlopen_fork.cSuccessNone0.051082s0.150497s
Success
dlopen_thread.cSuccessNone0.052974s0.144384s
Success
double_fork_dlopen.cSuccessNone0.054690s0.193364s
Success
fork_dlopen.cSuccessNone0.051846s0.146435s
Success
longjmp_dlopen.cSuccessNone0.049854s0.141618s
Success
rdynamic_main.cSuccessNone0.053668s0.142718s
Success

Fail Tests

Summary

MetricCount
Total Test Cases1
Number of Successes1
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.043103s0.106518s
Success

@Yaxuan-w Yaxuan-w left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for doing all the work here. These are valuable! I think some changes will need discussion (especially for the glibc and vmmap bug fixes). That would be great to:

  • Only include test in this PR (put test into skip list if they cannot be passed on current version)
  • Open up issues for each bug you found
  • Submit PR per bug after the discussion with the team

Implements the CONC-001..005 oracles from #1304. Tests that cannot pass on
current main are marked #[ignore] or listed in skip_test_cases.txt, each
naming the issue that unblocks it.

The 11 bug fixes these tests surfaced are split into separate PRs per review
feedback; the full original work is preserved on branch test-conc-bug-fixes.

Refs #1304
@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.044401s4.031144s
Success
thread.cSuccessNone0.040611s4.090333s
Success
tls_test.cSuccessNone0.042272s4.085636s
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-math 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
Math Tests
math_link_smoke.cSuccessNone0.047097s0.096910s
Success
math_tests.cSuccessNone0.051314s0.121384s
Success
printf_float.cSuccessNone0.046693s0.118997s
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-filesystem harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases75
Number of Successes75
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.041942s0.130057s
Success
chdir_getcwd.cSuccessNone0.042134s0.102507s
Success
chmod.cSuccessNone0.046726s0.123078s
Success
clock_gettime_highlevel.cSuccessNone0.277881s0.177700s
Success
clock_gettime_simple.cSuccessNone0.037594s0.094278s
Success
cloexec.cSuccessNone0.042748s0.126843s
Success
close.cSuccessNone0.047970s0.120326s
Success
copy_file_range.cSuccessNone0.045183s0.125851s
Success
creat_access.cSuccessNone0.044742s0.111688s
Success
cross_cage_fd_bruteforce.cSuccessNone0.045830s0.165791s
Success
doubleclose.cSuccessNone0.038727s0.088484s
Success
dup.cSuccessNone0.038825s0.104890s
Success
dup2.cSuccessNone0.043506s0.110385s
Success
dup3.cSuccessNone0.042394s0.103450s
Success
dupwrite.cSuccessNone0.043730s0.103964s
Success
etc_conf.cSuccessNone0.040743s0.112410s
Success
faccessat.cSuccessNone0.041761s0.107328s
Success
fchdir.cSuccessNone0.046273s0.114620s
Success
fchmod.cSuccessNone0.046062s0.115590s
Success
fchmodat.cSuccessNone0.041415s0.100959s
Success
fcntl.cSuccessNone0.043307s0.116703s
Success
fcntl_dupfd.cSuccessNone0.038733s0.103594s
Success
fdatasync.cSuccessNone0.042984s0.102946s
Success
filetest.cSuccessNone0.043774s0.101269s
Success
filetest1000.cSuccessNone0.047390s0.117764s
Success
flock.cSuccessNone0.049898s0.158405s
Success
fstat.cSuccessNone0.046088s0.125267s
Success
fstatfs.cSuccessNone0.040509s0.099295s
Success
fsync.cSuccessNone0.043666s0.102866s
Success
ftruncate.cSuccessNone0.050099s0.196111s
Success
getcwd.cSuccessNone0.040779s0.093220s
Success
getcwd_null.cSuccessNone0.043792s0.112787s
Success
getpgid.cSuccessNone0.039534s0.093822s
Success
getrandom.cSuccessNone0.044940s0.113683s
Success
ioctl.cSuccessNone0.045931s0.110764s
Success
link.cSuccessNone0.046006s0.149240s
Success
linkat.cSuccessNone0.046457s0.157905s
Success
locale_test.cSuccessNone0.055172s0.282164s
Success
lseek.cSuccessNone0.048192s0.172201s
Success
lstat.cSuccessNone0.046856s0.122168s
Success
mkdir_rmdir.cSuccessNone0.044959s0.117490s
Success
mkfifo_test.cSuccessNone0.050224s0.156060s
Success
mknod.cSuccessNone0.043548s0.111062s
Success
nocancel_io.cSuccessNone0.046339s0.126169s
Success
open.cSuccessNone0.040450s0.092270s
Success
openat.cSuccessNone0.040514s0.108249s
Success
path_conversion_safety.cSuccessNone0.046718s0.122523s
Success
ppoll.cSuccessNone0.047685s0.118737s
Success
pread_pwrite.cSuccessNone0.042384s0.114735s
Success
preadv_pwritev.cSuccessNone0.046786s0.119034s
Success
printf.cSuccessNone0.036699s0.089417s
Success
prlimit64.cSuccessNone0.038797s0.097085s
Success
read.cSuccessNone0.046508s0.123332s
Success
readbytes.cSuccessNone0.041943s0.103659s
Success
readdir_basic.cSuccessNone0.046058s0.135078s
Success
readlink.cSuccessNone0.045547s0.110885s
Success
readlinkat.cSuccessNone0.045012s0.117370s
Success
readv_writev_test.cSuccessNone0.046229s0.114297s
Success
rename.cSuccessNone0.046501s0.104751s
Success
renameat.cSuccessNone0.044290s0.117692s
Success
sc-writev.cSuccessNone0.041696s0.103385s
Success
stat.cSuccessNone0.045527s0.113936s
Success
statfs.cSuccessNone0.039117s0.103087s
Success
symlink.cSuccessNone0.047114s0.131246s
Success
sync_file_range.cSuccessNone0.045347s0.102244s
Success
timespec_time_t_compat.cSuccessNone0.041680s0.096795s
Success
trailing_slash.cSuccessNone0.042927s0.114959s
Success
truncate.cSuccessNone0.044234s0.136132s
Success
unlink.cSuccessNone0.047993s0.135632s
Success
unlinkat.cSuccessNone0.045699s0.118904s
Success
utimensat.cSuccessNone0.043479s0.130946s
Success
write.cSuccessNone0.039126s0.098604s
Success
writeloop.cSuccessNone0.047685s0.104235s
Success
writepartial.cSuccessNone0.045282s0.097050s
Success
writev.cSuccessNone0.045731s0.110657s
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-memory harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases28
Number of Successes28
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
brk.cSuccessNone0.048092s0.115111s
Success
fork_large_memory.cSuccessNone0.073481s0.507227s
Success
malloc.cSuccessNone0.043389s0.106167s
Success
malloc_large.cSuccessNone0.044780s0.106527s
Success
memcpy.cSuccessNone0.048907s0.104706s
Success
memory_error_test.cSuccessNone0.051724s0.150629s
Success
mmap.cSuccessNone0.045481s0.102749s
Success
mmap_address_truncation.cSuccessNone0.044866s0.109184s
Success
mmap_aligned.cSuccessNone0.046502s0.133578s
Success
mmap_complicated.cSuccessNone0.045024s0.143840s
Success
mmap_file.cSuccessNone0.052143s0.123507s
Success
mmap_shared.cSuccessNone0.048962s0.158570s
Success
mmaptest.cSuccessNone0.043087s0.103864s
Success
mprotect.cSuccessNone0.042600s0.109572s
Success
mprotect_boundary.cSuccessNone0.042922s0.116900s
Success
mprotect_end_region.cSuccessNone0.045990s0.124612s
Success
mprotect_middle_region.cSuccessNone0.041165s0.104952s
Success
mprotect_multiple_times.cSuccessNone0.049640s0.136466s
Success
mprotect_same_value.cSuccessNone0.041949s0.112813s
Success
mprotect_spanning_regions.cSuccessNone0.049845s0.136860s
Success
munmap_adjacent_shm.cSuccessNone0.046667s0.135594s
Success
sbrk.cSuccessNone0.047677s0.120187s
Success
segfault.cSuccessNone0.048767s0.154887s
Success
shm.cSuccessNone0.047836s0.162491s
Success
shmtest.cSuccessNone0.046801s0.130722s
Success
thread_malloc_sequential.cSuccessNone0.052797s0.205785s
Success
vmmap_escape.cSuccessNone0.045614s0.140611s
Success
vtable.cSuccessNone0.054852s0.121949s
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
Memory Tests
invalid_access_direct.cSuccessNone0.091547s0.102341s
Success
invalid_access_fork.cSuccessNone0.101927s0.162908s
Success
mmap-negative1.cSuccessNone0.120023s0.100745s
Success
mmap-negative2.cSuccessNone0.105370s0.115810s
Success
wasm-process harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases60
Number of Successes60
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
Process Tests
barrier_test.cSuccessNone0.042391s0.134223s
Success
chain_thread.cSuccessNone1.044775s1.157158s
Success
conc_002_cage_fd_fs_stress.cSuccessNone0.079707s0.713686s
Success
conc_003_cage_fd_refcounts.cSuccessNone0.060561s0.758289s
Success
conc_005_syscall_flood_isolation.cSuccessNone0.090237s0.438397s
Success
ctor_syscall_test.cSuccessNone0.036758s0.095496s
Success
cxa_atexit_test.cSuccessNone0.042619s0.099416s
Success
exec_non_utf8.cSuccessNone0.046432s0.111357s
Success
execve_shebang.cSuccessNone0.045969s0.103005s
Success
exit.cSuccessNone0.044669s0.097448s
Success
exit_failure.cSuccessNone0.043603s0.123714s
Success
exit_group_thread.cSuccessNone0.045268s0.144149s
Success
exit_status_first_wins.cSuccessNone0.047002s0.149242s
Success
flockfile_test.cSuccessNone0.044562s0.136054s
Success
fork2malloc.cSuccessNone0.045890s0.130808s
Success
fork_select.cSuccessNone0.042530s0.133783s
Success
fork_simple.cSuccessNone0.041531s0.127986s
Success
fork_syscall.cSuccessNone0.046979s0.621606s
Success
fork_tls_ctype.cSuccessNone0.047440s0.141524s
Success
forkandopen.cSuccessNone0.048017s0.136335s
Success
forkdup.cSuccessNone0.045918s0.131379s
Success
forkexecuid.cSuccessNone0.045562s0.167078s
Success
forkexecv-arg.cSuccessNone0.044565s0.168437s
Success
forkexecv.cSuccessNone0.042780s0.139440s
Success
forkfiles.cSuccessNone0.045160s0.131187s
Success
forkmalloc.cSuccessNone0.049530s0.134418s
Success
forknodup.cSuccessNone0.046713s0.132655s
Success
function-ptr.cSuccessNone0.042981s0.096731s
Success
getegid_syscall.cSuccessNone0.045261s0.487615s
Success
getgid_syscall.cSuccessNone0.045753s0.505677s
Success
getpid.cSuccessNone0.040916s0.095531s
Success
getpid_syscall.cSuccessNone0.051714s0.457040s
Success
getppid.cSuccessNone0.044731s0.124558s
Success
getppid_syscall.cSuccessNone0.046507s0.378225s
Success
getuid.cSuccessNone0.043884s0.099173s
Success
getuid_syscall.cSuccessNone0.043978s0.249323s
Success
hello-arg.cSuccessNone0.041341s0.115428s
Success
hello.cSuccessNone0.037388s0.088685s
Success
longjmp.cSuccessNone0.037310s0.098866s
Success
mutex.cSuccessNone2.045691s2.116824s
Success
printf_deadlock_smoke.cSuccessNone0.052716s0.173942s
Success
printf_thread_test.cSuccessNone0.042711s0.135822s
Success
sem_forks.cSuccessNone0.045799s0.177625s
Success
sem_slow_path.cSuccessNone1.047003s1.136397s
Success
setjmp_edge.cSuccessNone0.043955s0.195728s
Success
setsid.cSuccessNone0.038148s0.090010s
Success
template.cSuccessNone0.044801s0.180458s
Success
test_crossmodule_longjmp.cSuccessNone0.046409s0.137276s
Success
test_exec_nofork.cSuccessNone0.046754s0.133079s
Success
test_unlink_open_file.cSuccessNone0.040817s0.093119s
Success
thread-guard.cSuccessNone0.042583s0.123950s
Success
thread-test.cSuccessNone0.043002s0.187278s
Success
thread.cSuccessNone0.040708s0.107954s
Success
thread_cageid_race.cSuccessNone0.042644s0.329439s
Success
tls_test.cSuccessNone0.045193s0.156071s
Success
uname.cSuccessNone0.038570s0.090856s
Success
wait.cSuccessNone0.040673s0.142633s
Success
waitpid_anychild.cSuccessNone0.044117s0.125441s
Success
waitpid_syscall.cSuccessNone1.051467s1.276200s
Success
waitpid_wnohang.cSuccessNone0.044615s0.135098s
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-signals harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases24
Number of Successes24
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
Signal Tests
alarm.cSuccessNone7.044344s7.137213s
Success
eintr_fork_signal.cSuccessNone1.047760s1.135680s
Success
kill.cSuccessNone1.044150s1.124503s
Success
pause_test.cSuccessNone1.044414s1.134124s
Success
setitimer.cSuccessNone7.044499s7.136084s
Success
sigalrm.cSuccessNone2.043899s2.132308s
Success
sigaltstack.cSuccessNone0.045781s0.114056s
Success
sigchld.cSuccessNone1.046543s1.133117s
Success
signal-fork.cSuccessNone4.046820s4.121512s
Success
signal-simple.cSuccessNone0.045006s0.104405s
Success
signal_SIGCHLD.cSuccessNone0.044267s0.133556s
Success
signal_fork.cSuccessNone0.041637s0.129729s
Success
signal_int_ignored.cSuccessNone2.044422s2.128323s
Success
signal_kill_cleanup.cSuccessNone1.042218s1.120579s
Success
signal_procmask.cSuccessNone0.040178s0.112140s
Success
signal_read_interrupt.cSuccessNone0.549684s0.639802s
Success
signal_recursive.cSuccessNone0.041270s0.111716s
Success
signal_sa_mask.cSuccessNone0.040242s0.104024s
Success
signal_select_interrupt.cSuccessNone0.547446s0.642224s
Success
signal_write_interrupt.cSuccessNone1.046017s1.128670s
Success
sigpipe.cSuccessNone1.046903s1.135519s
Success
sigprocmask.cSuccessNone1.046172s1.112355s
Success
sigsuspend_test.cSuccessNone1.042357s1.128811s
Success
test_sigsetjmp.cSuccessNone0.044854s0.134101s
Success

Fail Tests

Summary

MetricCount
Total Test Cases1
Number of Successes1
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
Signal Tests
signal_resethand.cSuccessNone1.042783s1.129179s
Success
wasm-networking harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases44
Number of Successes44
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
Networking Tests
accept4.cSuccessNone0.049369s0.124935s
Success
dns_resolve_test.cSuccessNone0.043967s0.107434s
Success
dnstest.cSuccessNone0.044801s0.105468s
Success
epoll_badfd.cSuccessNone0.040566s0.096462s
Success
epoll_edge_triggered.cSuccessNone0.201492s0.359995s
Success
epollcreate1.cSuccessNone0.048335s0.118901s
Success
error_handling_net.cSuccessNone0.052178s0.172058s
Success
getaddrinfo_test.cSuccessNone0.048235s0.147092s
Success
getaddrinfo_unspec.cSuccessNone0.057127s0.132932s
Success
gethostname.cSuccessNone0.041189s0.090834s
Success
getifaddrs.cSuccessNone0.046152s0.110520s
Success
getsockname.cSuccessNone0.044569s0.110699s
Success
getsockopt.cSuccessNone0.048478s0.143406s
Success
ipv6_basic.cSuccessNone0.049733s0.140451s
Success
makepipe.cSuccessNone0.040297s0.095026s
Success
nonblocking_eagain.cSuccessNone0.048560s0.147923s
Success
pipe.cSuccessNone0.046910s0.124022s
Success
pipe2.cSuccessNone0.045302s0.107251s
Success
pipeinput.cSuccessNone0.047866s0.144496s
Success
pipeinput2.cSuccessNone0.047630s0.148757s
Success
pipeonestring.cSuccessNone0.048026s0.141374s
Success
pipepong.cSuccessNone0.048125s0.145238s
Success
pipewrite.cSuccessNone0.041671s0.105158s
Success
poll.cSuccessNone0.045532s0.108309s
Success
recvfrom-sendto.cSuccessNone0.045964s0.117233s
Success
sendmsg_recvmsg_test.cSuccessNone0.046434s0.118285s
Success
serverclient.cSuccessNone0.047184s0.126297s
Success
shutdown.cSuccessNone0.046878s0.123035s
Success
shutdown_fork.cSuccessNone0.046105s0.131914s
Success
simple-select.cSuccessNone0.047880s0.149181s
Success
simple_epoll.cSuccessNone0.045012s0.112451s
Success
socket.cSuccessNone0.046594s0.104979s
Success
socket_cloexec.cSuccessNone0.042510s0.102027s
Success
socket_options_advanced.cSuccessNone0.049653s0.157262s
Success
socketepoll.cSuccessNone0.044209s0.110562s
Success
socketpair.cSuccessNone0.044129s0.126803s
Success
socketselect.cSuccessNone0.045064s0.110097s
Success
udp_send_recv.cSuccessNone0.151895s0.263479s
Success
uds-getsockname.cSuccessNone0.044438s0.110324s
Success
uds-nb-select.cSuccessNone2.052833s2.177482s
Success
uds-serverclient.cSuccessNone0.049284s0.156763s
Success
uds-socketselect.cSuccessNone0.044538s0.114528s
Success
uds_listen_poll.cSuccessNone1.051107s1.159383s
Success
writev_socket.cSuccessNone0.048689s0.139271s
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-dynamic-linking harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases7
Number of Successes7
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.040114s0.113733s
Success
dlopen_fork.cSuccessNone0.042117s0.132010s
Success
dlopen_thread.cSuccessNone0.044659s0.129584s
Success
double_fork_dlopen.cSuccessNone0.046531s0.188422s
Success
fork_dlopen.cSuccessNone0.044012s0.131563s
Success
longjmp_dlopen.cSuccessNone0.041106s0.127609s
Success
rdynamic_main.cSuccessNone0.044603s0.126380s
Success

Fail Tests

Summary

MetricCount
Total Test Cases1
Number of Successes1
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.037201s0.106941s
Success

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tests: concurrency, signals, and lifecycle test coverage

2 participants