Running Leios Tests๏ƒ

The Leios testrun exercises the experimental Leios feature of cardano-node on the experimental Dijkstra era. It is a regular regression run with a different setup, plus the dedicated Leios tests in cardano_node_tests/tests/tests_dijkstra/test_leios_blocks.py.

The Leios Setup๏ƒ

The setup lives in runner/env_leios, except NODE_REV, which the launcher and the CI workflow default:

Variable

Value

Why

NODE_REV

leios-prototype

The node branch that has Leios.

TESTNET_VARIANT

leios_fast

Starts in Dijkstra, block rate slow enough to see EBs.

PROTOCOL_VERSION

12

Dijkstra protocol version.

ENABLE_TX_FIREHOSE

true

Tx load generator, needed to fill the mempool.

TX_TPS

15

Tx rate ceiling of the load generator.

Running in CI๏ƒ

Workflow 04 Regression tests with Leios triggered manually from the Actions tab (Run workflow) or with gh:

gh workflow run "04 Regression tests with Leios" --ref master

To fit into the 6h GitHub job limit, the CI run is limited to smoke, Leios and tests_dijkstra tests. Local runs run the full suite.

Inputs:

Input

Default

Description

node_rev

leios-prototype

cardano-node revision.

cli_rev

(empty)

cardano-cli revision, optional.

allow_unstable_error_msgs

false

Let tests pass with unstable error messages.

Running Locally๏ƒ

Full Leios Regression Run๏ƒ

Run the commands below from the repo root.

Inside a container. Preferred, as no local Nix is needed.

./runner/runc.sh -- ./scripts/test_leios.sh

Or directly on the host. Local Nix is needed.

./scripts/test_leios.sh

Any variable from runner/env_leios can be overridden, but only as a ``VAR=VALUE`` argument - the env file is loaded on top of the environment, so an exported value would be overwritten:

./scripts/test_leios.sh TX_TPS=10

The exceptions are NODE_REV and SESSION_TIMEOUT (default 8h) - there an already exported value wins, so the node branch can be switched without touching the setup:

NODE_REV=my-leios-branch ./scripts/test_leios.sh

Only VAR=VALUE arguments are accepted; anything else is rejected with a usage message. Results land in run_workdir.

Analyzing Failures๏ƒ

Locally๏ƒ

In AI agent:

/analyze-failures

In CI๏ƒ

On a failed testrun the workflow runs the analysis automatically and surfaces it in

  • the run summary of the workflow run, and a foldable Preliminary failure analysis group in the log of the Read failure analysis into env step,

  • failure_analysis.md in the testrun-files artifact.