Skip to main content

xemu-perf-tester

Orchestrates running xemu benchmarks using xemu-perf-tests.

Installation

Install from Pypi

pip install xemu-perf-tester

Use

Running benchmarks

Run xemu-perf-run -h for detailed information on executing the benchmarks.

One time setup: xemu-perf-run --import-install <path_to_your_xemu.toml_file>

Test the latest xemu with the latest benchmark release

The default behavior is to download the latest xemu-perf-tests iso and xemu release and run the benchmarks using the OpenGL backend. You may pass the --use-vulkan parameter to use Vulkan instead.

xemu-perf-run

Testing against specific xemu and/or xemu-perf-tests releases

xemu-perf-run \
  --xemu-tag v0.8.7 \
  --test-tag v12345

--xemu_tag accepts:

  • a xemu release version (e.g., v0.8.92)
  • the URL of a build action (e.g., https://github.com/xemu-project/xemu/actions/runs/16152580613)
  • the URL of a pull request (PR) (e.g., https://github.com/xemu-project/xemu/pull/2329).

For PRs and actions, the build artifact for your platform is taken from the newest successful run of the xemu CI workflow (override with --ci-workflow). The tool exits with an error if there is no such run (e.g., the build is still in progress, failed, or its artifacts have expired); it never falls back to a release build.

Downloading artifacts requires an authenticated GitHub token, chosen in this order:

  1. --github-token, if given.
  2. The GitHub CLI's token (gh auth token), if gh is installed and logged in.
  3. The same token used to submit results (you will be prompted to authorize it in a browser the first time).

Results produced from a PR or action build include a dev_build section (PR number, head SHA, workflow run, base xemu version) and are ingested separately from release results.

Reusing existing xemu-perf-tests ISO and/or xemu binary

You can use the --iso and --xemu flags to specify existing artifacts. This will skip the automated check against the GitHub API for the latest tagged artifacts.

xemu-perf-run \
  --xemu ~/bin/xemu \
  --iso ~/special_perf_tests.xiso

Using a development build of xemu on macOS

Some extra flags are needed to utilize a development build of xemu. You will need to set the DYLD_FALLBACK_LIBRARY_PATH environment variable to point at a valid xemu.app binary and will need to pass the --no-bundle argument to xemu-perf-run to prevent it from attempting to find a xemu.app bundle itself.

DYLD_FALLBACK_LIBRARY_PATH=/path/to/xemu_repo/dist/xemu.app/Contents/Libraries/arm64 \
xemu-perf-run \
  --xemu /path/to/xemu_repo/build/qemu-system-i386 \
  --no-bundle

Test configuration

Conditional block listing

Tests that cannot be executed on certain versions of xemu may be disallowed using a blocklist.json file specified using the --block-list-file command.

The file provides a simple list of JSON objects, each specifying a set of one or more conditions and one or more test names to be disabled if the condition is satisfied.

For example, to disable the entire "High vertex count" suite on xemu versions less than 0.8.54:

{
  "rules": [
    {
      "conditions": [
        "$version < 0.8.54"
      ],
      "skipped": [
        "High vertex count::"
      ]
    }
  ]
}

"conditions" may use the $version variable to test against the runtime reported version of xemu.

"skipped" entries are fully qualified test names, with anything before "::" referring to a test suite and everything after to a specific test. These are exact matches, so "Suite::Test" will only disable the test literally named " Suite::Test" but would still allow "Suite::Test1" to run. The trailing "::" may be omitted when disallowing an entire test suite. For example "Suite::" is equivalent to "Suite", both will disable all tests in the "Suite" suite.

Metadata

Release files for xemu-perf-tester 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xemu-perf-tester 0.4.1
File Size Uploaded Provenance
xemu_perf_tester-0.4.1.tar.gz 4.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for xemu-perf-tester 0.4.1
File Interpreter ABI Platform
xemu_perf_tester-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 30.2 kB

Release files / xemu_perf_tester-0.4.1.tar.gz

Download URL xemu_perf_tester-0.4.1.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e84b015643a55ce11f1649c026a529b5a456534acbaeb9d93d877b547cb2001f
BLAKE2b-256 checksum
How to use checksums
8db01fc032e7aec1b2e5fef6e8ea0f0e25601e4c736ef810015b04f73fece327
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / xemu_perf_tester-0.4.1-py3-none-any.whl

Download URL xemu_perf_tester-0.4.1-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe39b86f8d592f051bed6cd67b44672a84b7dab8870e2b9c7711520358855b52
BLAKE2b-256 checksum
How to use checksums
bc85bba6f4e1a8ed2371830ceadbb278054fa3a496110e5f7664049e99159e21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for xemu-perf-tester 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page