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. By default the same token used to submit results is used (you will be prompted to authorize it in a browser the first time). You may pass a different token via --github-token.

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.0

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.0
File Size Uploaded Provenance
xemu_perf_tester-0.4.0.tar.gz 4.2 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 29.8 kB

Release files / xemu_perf_tester-0.4.0.tar.gz

Download URL xemu_perf_tester-0.4.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3262546d99f0c99a8de371694c1efd35dec255e2f21e051242732f847daf99e1
BLAKE2b-256 checksum
How to use checksums
1c77ddd1bbf6ff275b5de7ed80403f0641f4c94785e91c70e9edb48c4bc4bdf9
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.0-py3-none-any.whl

Download URL xemu_perf_tester-0.4.0-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
708eddc5dd12ead771b4cd1dd105171aeade532b767ab324ac1a65f9107037a3
BLAKE2b-256 checksum
How to use checksums
1f71f6149e2a10d4d1edc7abc9f6259b64ab93b60ce0739ab4112179fa1d24f5
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.0

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