Skip to main content

Xaloqi TestLab — core

CI License: Apache 2.0 PyPI

Try a full UDS ECU with nothing but Python — no hardware, no CAN stack, no config file:

pipx run --spec xaloqi-tester xaloqi-sim --demo

or, if you'd rather install it:

pip install xaloqi-tester
xaloqi-sim --demo

That runs a real UDS conversation against an in-process simulated ECU: VIN read, session control, AES-CMAC SecurityAccess unlock, a security-gated DID read, DTC read — the same protocol traffic a real bench would see.

Run a full campaign against it

testlab-run --config testlab_config.yaml \
            --campaign campaigns/standalone_validation.yaml \
            --job basic_validation --virtual --json reports/run.json
testlab analyze --results reports/run.json

campaigns/*.yaml define test jobs — session control, SecurityAccess, DID/memory read-write, DTC handling, firmware transfer — as data, not code. --virtual runs them against the built-in simulator; the same YAML runs unmodified against real hardware once you add Xaloqi TestLab Pro.

What's in core (Apache-2.0)

  • UDS client (xaloqi.tester.UdsTester) — async and sync, all major UDS services including 0x27 SecurityAccess (AES-CMAC) and the 0x34/0x35/0x36/0x37 firmware up/download sequence. ISO-TP multi-frame sends honour the ECU's real Flow Control: BlockSize, STmin (both the millisecond and the 100–900us encodings), WAIT with a bounded WFTmax, and OVERFLOW.
  • VirtualBus — the in-process transport and the simulated ECU (xaloqi.sim, also the xaloqi-sim command).
  • Campaign runner (testlab-run) — 20 UDS actions, expect_nrc, variable capture/interpolation, JSON output (schema shared with the Xaloqi EDS diagnostics stack, so the same result format works with either).
  • testlab analyze — terminal summary of a run's JSON results.

Cross-implementation tested, not just self-tested

xaloqi-tester's DoipBus (this package, Python) is run in CI against the Xaloqi EDS DoIP server (C, native_sim) on every EDS push — a real cross-implementation, cross-language DoIP conversation, not two halves of one codebase talking to themselves. See EDS's CI workflow (job: DoIP Integration (native_sim + DoipBus)).

What's in Pro

Real transports (SocketCAN, PCAN/Kvaser, DoIP, SOME/IP), the SOVD client, multi-ECU workspace mode, RTOS comparison, HTML reports/trends/dashboard, and AI-assisted failure analysis are part of Xaloqi TestLab Pro — installed as an additional wheel alongside this package. Core discovers Pro automatically through Python entry points: install Pro and every testlab command and campaign action above works unchanged, plus the paid ones. Without Pro installed, a paid transport, action, or subcommand fails with one clear message telling you what it needs.

Installing from source

git clone https://github.com/Xaloqi/xaloqi-testlab-core
cd xaloqi-testlab-core
pip install -e ".[dev]"
XALOQI_LICENSE_SKIP=1 pytest tests/ -v

Contributing

See CONTRIBUTING.md. Found a security issue? See SECURITY.md — please don't open a public issue for it.

License

Apache License 2.0 — see LICENSE.

Metadata

Release files for xaloqi-tester 1.5.2

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

Source distribution (sdist)

Source distribution for xaloqi-tester 1.5.2
File Size Uploaded
xaloqi_tester-1.5.2.tar.gz 91.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xaloqi-tester 1.5.2
File Interpreter ABI Platform
xaloqi_tester-1.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 155.4 kB

Release files / xaloqi_tester-1.5.2.tar.gz

Download URL xaloqi_tester-1.5.2.tar.gz
Size 91.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cf1f550aea2eda76604d6b2b9759db5c44a8c46fb27938335d8d766faf84692a
BLAKE2b-256 checksum
How to use checksums
7a15424cce0705a13f76cc666762ea2b2cdf3e9dc663ab07a903fcb33dc630ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / xaloqi_tester-1.5.2-py3-none-any.whl

Download URL xaloqi_tester-1.5.2-py3-none-any.whl
Size 64.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
078749668e23e309a61456b87dd52000609ac32ae6e404ebe18811d9e6763355
BLAKE2b-256 checksum
How to use checksums
95232e0a2dbf56c75538f8a0463e12bc44899be5c7d9bc25c559412d6a954f64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

1.5.7

2 release files

1.5.6

2 release files

1.5.4

2 release files

1.5.3

2 release files

This release

1.5.2 This release

2 release files

1.5.1

2 release files

1.5.0

2 release files

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