Skip to content

Guidance for test authors

Jakub K edited this page May 7, 2025 · 1 revision

This document mostly applies to Python tests but some of the guidance may be more broadly applicable.

Avoid libraries and frameworks

Test files should be relatively self contained. The libraries should only include very core or non-trivial code. It may be tempting to "factor out" the common code, but ignore that urge. Library code increases the barrier of entry, and complexity in general.

Local host is the DUT

Dual-host tests (tests with an endpoint) should be written from the DUT perspective. IOW the local machine should be the one tested, remote is just for traffic generation and may be shared.

Avoid modifying remote

Try not to make configuration changes to the remote system.

defer

The env must be clean after test exits. Register a defer() for any action that needs an "undo" as soon as possible. If you need to run the cancel action as part of the test - defer returns an object you can execute.

ksft_pr

Use ksft_pr() instead of print() to avoid breaking TAP format.

ksft_disruptive

By default the tests are expected to be able to run on a single-interface systems. All tests which may disconnect NETIF must be annotated with @ksft_disruptive.