Skip to content

Run fewer proptest cases to improve ci time - #1908

Merged
ludfjig merged 1 commit into
hyperlight-dev:mainfrom
ludfjig:proptest_less
Oct 8, 2026
Merged

ludfjig merged 1 commit into
hyperlight-dev:mainfrom
ludfjig:proptest_less

Conversation

@ludfjig

@ludfjig ludfjig commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Runs 35 tests * 32 cases = 1120 testcases rather than previous 35 tests * 256 cases = 8960 testcases. Timings for these tests go from about 2 minutes to 10 seconds. This should be fine since we run this test so often (every pr push).

Closes #1787

Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com>
@ludfjig ludfjig added the C-enhancement For PRs adding features, improving functionality, docs, tests, etc. label Oct 8, 2026
@ludfjig
ludfjig marked this pull request as ready for review October 8, 2026 18:23
Copilot AI balanced review requested due to automatic review settings October 8, 2026 18:23
@ludfjig
ludfjig enabled auto-merge (squash) October 8, 2026 18:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The configuration correctly reduces test cases, with only minor comment wording outstanding.

1 open finding
What changed in this PR

Reduces CI time by limiting WIT round-trip property tests to 32 cases.

Changes:

  • Adds a shared property-test case limit.
  • Applies it to all generated round-trip tests.
File Description
src/​hyperlight_host/​tests/​wit_test.rs Configures generated property tests to run 32 cases.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/hyperlight_host/tests/wit_test.rs Resolved
@ludfjig ludfjig added S-needs-review PR is ready for (re-)review A-perf Addresses performance A-testing Related to tests or testing infrastructure labels Oct 8, 2026
@hyperlight-gh-bot

Copy link
Copy Markdown

Benchmark Results

Measured commit: 46f15f2a7b86
Baseline commit: 73f8f3ef9d3d

kvm / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 795.79 ns (➖ 1.06x slower)
vec_bytes 586.10 ns (➖ 1.00x slower)
373.09 µs (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
262144 522.47 ns (➖ 1.00x faster)
65536 141.62 ns (➖ 1.00x faster)

sandboxes

create_initialized_and_drop
medium 80.50 ms (➖ 1.01x slower)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
9.00 ns (➖ 1.16x slower) 7.71 ns (➖ 1.00x slower) 7.73 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 94.49 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.54 µs (➖ 1.05x slower) 8.34 µs (➖ 1.18x slower)
65536 2.06 µs (➖ 1.07x slower) 1.93 µs (➖ 1.09x faster)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 6.25 µs (➖ 1.10x faster) 6.17 µs (➖ 1.05x faster)
8192 1.05 µs (➖ 1.06x faster) 1.04 µs (➖ 1.01x faster)
262144 27.88 µs (➖ 1.01x slower)
kvm / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 708.76 ns (➖ 1.05x slower)
vec_bytes 508.02 ns (➖ 1.01x faster)
663.38 µs (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
262144 519.01 ns (➖ 1.03x slower)
65536 135.53 ns (➖ 1.00x slower)

sandboxes

create_initialized_and_drop
medium 76.27 ms (➖ 1.01x slower)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
6.91 ns (➖ 1.00x faster) 6.93 ns (➖ 1.00x slower) 6.93 ns (➖ 1.00x slower)

snapshot_files

load_snapshot_unverified
small 45.01 µs (➖ 1.01x faster)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.46 µs (➖ 1.01x faster) 7.57 µs (➖ 1.01x slower)
65536 2.12 µs (➖ 1.01x slower) 2.12 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 7.06 µs (➖ 1.00x faster) 7.00 µs (➖ 1.01x faster)
8192 727.24 ns (➖ 1.03x faster) 725.91 ns (➖ 1.02x faster)
262144 29.47 µs (➖ 1.06x faster)
mshv3 / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 951.07 ns (➖ 1.02x slower)
vec_bytes 703.98 ns (➖ 1.01x faster)
318.37 µs (➖ 1.02x slower)

payload_allocation

slot_pool_segmented
262144 672.93 ns (➖ 1.00x slower)
65536 182.16 ns (➖ 1.02x faster)

sandboxes

create_initialized_and_drop
medium 59.04 ms (➖ 1.14x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
11.10 ns (➖ 1.12x slower) 9.92 ns (➖ 1.00x faster) 9.92 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 86.15 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 9.23 µs (➖ 1.04x faster) 10.69 µs (➖ 1.09x slower)
65536 2.67 µs (➖ 1.01x faster) 2.47 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 7.95 µs (➖ 1.04x faster) 7.96 µs (➖ 1.02x faster)
8192 1.34 µs (➖ 1.03x slower) 1.38 µs (➖ 1.06x slower)
262144 34.86 µs (➖ 1.02x faster)
mshv3 / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 946.12 ns (➖ 1.03x slower)
vec_bytes 670.63 ns (➖ 1.02x slower)
803.24 µs (➖ 1.18x slower)

payload_allocation

slot_pool_segmented
262144 629.11 ns (➖ 1.01x slower)
65536 167.39 ns (➖ 1.02x slower)

sandboxes

create_initialized_and_drop
medium 68.56 ms (➖ 1.07x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
9.71 ns (➖ 1.01x slower) 8.77 ns (➖ 1.00x faster) 8.80 ns (➖ 1.01x faster)

snapshot_files

load_snapshot_unverified
small 47.61 µs (➖ 1.04x faster)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 8.08 µs (➖ 1.01x slower) 8.00 µs (➖ 1.00x faster)
65536 2.32 µs (➖ 1.03x slower) 2.31 µs (➖ 1.02x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 7.54 µs (➖ 1.01x slower) 7.57 µs (➖ 1.01x faster)
8192 939.72 ns (➖ 1.00x slower) 935.07 ns (➖ 1.04x faster)
262144 38.10 µs (➖ 1.01x faster)
hyperv-ws2025 / amd (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.12 µs (➖ 1.03x faster)
vec_bytes 748.23 ns (➖ 1.00x faster)
1.98 ms (➖ 1.05x slower)

payload_allocation

slot_pool_segmented
262144 782.05 ns (➖ 1.03x faster)
65536 233.98 ns (➖ 1.01x slower)

sandboxes

create_initialized_and_drop
medium 77.86 ms (➖ 1.02x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
11.91 ns (➖ 1.12x slower) 10.82 ns (➖ 1.09x faster) 10.73 ns (➖ 1.05x faster)

snapshot_files

load_snapshot_unverified
small 707.14 µs (➖ 1.16x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 8.71 µs (➖ 1.01x slower) 8.62 µs (➖ 1.01x faster)
65536 2.55 µs (➖ 1.01x faster) 2.55 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 8.64 µs (➖ 1.01x faster) 8.57 µs (➖ 1.02x faster)
8192 1.41 µs (➖ 1.04x faster) 1.39 µs (➖ 1.01x slower)
262144 37.37 µs (➖ 1.01x faster)
hyperv-ws2025 / intel (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.23 µs (➖ 1.02x slower)
vec_bytes 787.05 ns (➖ 1.00x faster)
3.31 ms (➖ 1.03x slower)

payload_allocation

slot_pool_segmented
262144 752.07 ns (➖ 1.02x slower)
65536 211.55 ns (➖ 1.10x faster)

sandboxes

create_initialized_and_drop
medium 148.11 ms (➖ 1.32x slower)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
10.33 ns (➖ 1.00x slower) 10.01 ns (➖ 1.00x slower) 10.58 ns (➖ 1.00x slower)

snapshot_files

load_snapshot_unverified
small 586.72 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.80 µs (➖ 1.00x slower) 7.75 µs (➖ 1.01x faster)
65536 2.38 µs (➖ 1.02x slower) 2.33 µs (➖ 1.00x faster)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 8.43 µs (➖ 1.01x faster) 8.51 µs (➖ 1.04x faster)
8192 1.11 µs (➖ 1.01x faster) 1.13 µs (➖ 1.03x slower)
262144 40.21 µs (➖ 1.33x faster)

Reported by cargo ci bench-report --candidate run:37823945657 --config-file bench_report.toml.

@ludfjig
ludfjig disabled auto-merge October 8, 2026 21:34
@ludfjig
ludfjig merged commit 401c149 into hyperlight-dev:main Oct 8, 2026
68 checks passed
@github-actions github-actions Bot removed the S-needs-review PR is ready for (re-)review label Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-perf Addresses performance A-testing Related to tests or testing infrastructure C-enhancement For PRs adding features, improving functionality, docs, tests, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reduce wit-test prop test samples

3 participants