Xaloqi TestLab — core
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 thexaloqi-simcommand). - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| xaloqi_tester-1.5.2.tar.gz | 91.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|