Commit Graph
3 Commits
Author SHA1 Message Date
Tobias Waldekranz beecff2acf test: statd: Refactor cli and yanger testing
Existing tests relied on manually captured system data from various
points in Infix's history, making them hard to extend as we add new
features.

Move to a new model where we:

To update a unit test:
1. Use Infamy tests to setup a DUT in a known state
2. Use yanger's wrapper mode to capture the system state needed to
   produce operational data for a set of YANG models
3. Use cli-pretty to create the expected output for a set of show
   commands

When running unit tests, we can then use the captured data to verify
that yanger and cli-pretty works as expected without the need for a
running Infix system - just like before.  The difference is that it is
now much easier to capture a new snapshot when the system evolves.
2025-01-20 13:44:14 +01:00
Richard AlpeandMattias Walström a9fd58c772 test: add offline unit test for yanger and cli-pretty
In this patch we add some arbitrary system output files which contains
interface data. Such as the output from "ip link" and "ethtool". These
files are used by yanger instead of running the actual commands.

Yanger then generates a lot of YANG json data, which are merged using
jq into something that looks like the sysrepo operational data on
a running system. This data is then passed though cli-pretty and its
ouput is compared to the static expected output in the .txt files in
cli-output.

Here's a basic flow overview.
* system-output/foo.json -> yanger ->> data
* system-output/bar.json -> yanger ->> data
* data -> merge -> sysrepo-operational-data
* sysrepo-operational-data -> cli-pretty -> output.txt
* compare output.txt too cli-output/show-foobar.txt

The result of this is that if something changes in yanger OR in
cli-pretty. The corresponding system-output file needs to be updated
for the test to pass. This is indented to catch regression where the
output is unintentionally changed.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-12-05 10:02:51 +01:00
Richard AlpeandJoachim Wiberg f69b08ea59 test: add top level unit test suite
This currently includes cli-pretty tests. It could be executed
separately to clarify test results in github actions. This commit
includes it in the main test execution. The most important thing is
that it's executed.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:57:08 +02:00