image testing is a very central part of freerouter release process,
as i cannot live without the services provided here by routers.
the basic structure of every test case is the following:
we define the configuration of the routers, then we define the tests to execute on them,
and finally we can take some outputs from the routers for further analysis or as a screenshot.
the executed tests are mostly pings that should result in a given percent, mostly 100% or 0%
from a given router, but some perform online reconfiguration of the protocol being tested to
see if that changes the results in the expected way.
we can categorize these tests by the following way:
the feature oriented tests for every given feature of a given supported protocol.
they should show us if a piece of a protocol is broken or not.
these tests are the vast majority of the tests we have.
there are some bigger test cases to test some features together.
not all, and not in every combination, but object oriented language
and (hopefully good) design patterns are here for to help us.
the other big buck of tests are the interop tests,
where we test the features against some prominent vendor virtual images.
and finally we have the dataplane test cases, where we test the given
dataplane is capable of performing the given forwarding feature.
the fastpaths are not tested against the routing protocols at the moment
as it's believed that they're fully independent of them as the tables
are exported from central locations, and the protocols even have no
knowledge about it is happening.