Skip to content

run-veristat: add a portable runner and VM entrypoint - #240

Open
theihor wants to merge 7 commits into
mainfrom
veristat-runner-v2b
Open

theihor wants to merge 7 commits into
mainfrom
veristat-runner-v2b

Conversation

@theihor

@theihor theihor commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Add a portable measurement path for running multiple BPF corpora in one VM.

  • Consume prepared manifests, verify object SHA256s, and retain CSV, stderr,
    and completion status per corpus.
  • Add a dedicated veristat guest entrypoint using shared VM setup, and remove
    veristat from the BPF selftest harness.
  • Cover silent failures with focused tests and enable script-test CI on main
    pushes.

Callers upgrading from v4 must switch to the new entrypoint and prepare manifests
before booting the VM.

Local script tests, ShellCheck, and Black pass.

@theihor
theihor force-pushed the veristat-runner-v2b branch from b564d35 to f52b4f5 Compare November 9, 2026 23:03
The dedicated test workflow is no longer needed. Delete it along
with the status badge in the action's README, which linked to it.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Port the block added by kernel-patches/vmtest#520. libbpf/ci carries
its own copy of these configs and never received it, so the expected
KASAN reports from the `kasan` selftest failed the splat check on
libbpf/ci runs (e.g. run 42701280551) even though the test itself
passed.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Running several corpora in one guest needs measurement independent of the
selftest directory and GitHub environment. Accept prepared object paths
and checksums, and keep each corpus result in its own directory.

Require valid, nonempty CSV before marking a measurement complete. Keep
program rejection as data and continue after corpus errors so completed
results remain available to the caller.

Log input and failure context for CI diagnosis while keeping tool output
in files.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Callers select objects by directory and glob. Provide a small helper that
records that selection and its checksums, so single-corpus and batch
callers can prepare the same input format without duplicating hashing.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Custom VM scripts currently inherit the LATEST bpftool check and
selftest JSON reporting. This makes unrelated workloads require the
kernel selftest source and can report stale selftest results.

Select the guest before preparing BPF selftests and use that selection
to gate bpftool checks and summaries. Keep the config hook ability to
override the bpftool default.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Veristat currently enters through the BPF selftest script and its
per-corpus shell configs. Prepared manifests let it run independently of
that test-only setup.

Add a guest entrypoint that invokes the portable worker and records its
aggregate exit status for the host. Retire the selftest function and
selector configs; callers upgrading from v4 must use the new entrypoint.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Successful tool exits can hide empty measurements, changed inputs, or
missing completion receipts. Those cases can leave CI green while its
comparison inputs are unusable or have the wrong object identity.

Cover the CLI and receipt boundaries, and verify that the shell
entrypoint records an incomplete measurement as a failing status.

Run the existing script-test workflow on main pushes, matching the
repository default branch. Its repository-wide discovery includes the
new veristat suite.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
@theihor
theihor force-pushed the veristat-runner-v2b branch from f52b4f5 to 2b211c5 Compare November 9, 2026 23:09
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.

1 participant