commit | 613f07f95d77575aeddbd89c51a085b9b7829adf | [log] [tgz] |
---|---|---|
author | Jan Kundrát <jan.kundrat@cesnet.cz> | Fri Nov 03 13:28:51 2023 +0100 |
committer | Jan Kundrát <jan.kundrat@cesnet.cz> | Fri Nov 03 13:28:51 2023 +0100 |
tree | 073c75d11b45788295adbcae93b3eaf5379cf47e | |
parent | 0d8e90770c9c162fca812bb1c1ce33cabb53754b [diff] |
tests: rely on doctest+trompeloeil integration from upstream There's been a behavior change in doctest 2.8.9 which changed how strings are printed. This was fixed in Trompeloeil v43. Unfortunately, we were bundling that one trivial file that sends error info from Trompeloeil to Doctest, and that means that we were not getting the fix from Trompeloeil. As a result, failed expectations were (sometimes) printed as a pointer instead of the usual useful text. Why did we bundle this? That's an excellent question. It goes back to cla-sysrepo and pre-doctest days. It appears to have been introduced back when we switched from Catch v1 to Catch v2 in cla-sysrepo's commit 59cc09af22899579a354c2ab1c6ae2f1ae40ac2d. That in itself was just a modification to something from cla-sysrepo commit 321a3424a179e41df7bb43d101cf853993ef1c00 which refers to the upstream wiki. Chances are that they were not providing the `$UnitTestFramework/trompeloeil.hpp` file, so we might have had to copy-paste like that. Seven years later, let's just make our lives easier. Bug: https://github.com/rollbear/trompeloeil/issues/279 Change-Id: I926951e106c8b2aa4eb5eb8e3481e046021ddcde
Together with sysrepo, this software provides "general system management" of embedded devices. The target platform is anything that runs Linux with systemd. This runs in production on CzechLight SDN DWDM devices.
This component tracks the overal health state of the system, including various sensors, or the state of systemd
units. As an operator-friendly LED at the front panel of the appliance shows the aggregated health state.
Firmware can be updated via RAUC, and various aspects of the system's configuration can be adjusted. This includes a firewall, basic network settings, and authentication management.
For a full list, consult the yang/
directory in this repository.
ietf-access-control-list
, RFC 8519 (with deviations)ietf-hardware
, RFC 8348ietf-system
, RFC 7317 (partial support)ietf-interfaces
, RFC 8343 (generating config for systemd-networkd
, with extensions)ietf-routing
, RFC 8349 (see above)czechlight-system
For building, one needs:
1.75
)pkg-config
libnl-route
for talking to the Linux kernellibsystemd
and systemd
at runtimelibyang-cpp
- C++ bindings for libyangsysrepo-cpp
- C++ bindings for sysrepospdlog
- a logging librarysdbus-c++
- C++ library for D-Busfmt
- C++ string formatting librarynlohmann_json
- C++ JSON librarydocopt
for CLI option parsingnft
- the netfilter tooliproute2
- the ip
tool for testingThe build process uses CMake. A quick-and-dirty build with no fancy options can be as simple as mkdir build && cd build && cmake .. && make && make install
.