Commit Graph
269 Commits
Author SHA1 Message Date
Ahmed KaricandMattias Walström 46ad19793b test: refactor test environment 2024-09-03 12:13:32 +02:00
Mattias Walström dc4c38ede6 test: Adapt tests/infamy for the new test config
Instead of copy factoy config to reset between tests,
use the new test-config.cfg.

Change the logic in the factory config since the default values have changed.
2024-08-30 17:40:02 +02:00
Ahmed KaricandMattias Walström 8227f1bcde test: enable running infix tests from external projects
Minor adjustments have been made to enable calling infix tests from an
external project (i.e. 'make test' target).
This essentially allows running any external test (or a group of tests)
using the infix-9pm tool.
2024-08-30 12:26:39 +02:00
Mattias Walström b76904c0e6 Add retry if HTTP error 502 (bad gateway)
This is most likely caused by nginx is up but rousette
is not fully started yet.
2024-08-29 16:29:44 +02:00
Mattias Walström 2119fd239a test:syslog: Prefix with infix-syslog model
Unsure why this test ever passed.
2024-08-29 16:29:44 +02:00
Joachim Wiberg 740601dde1 test: cosmetic update + shellcheck
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-28 19:14:47 +02:00
Joachim Wiberg ee6d96d3ed test: adjust location for Infamy .venv directory to ~/.infix/venv
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-28 19:14:47 +02:00
Joachim Wiberg 8266984c63 test: save infamy ash history across runs
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-28 19:14:47 +02:00
Joachim Wiberg 0ffca5aa21 test: verify remote logging with rfc5424 log format
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-26 20:54:49 +02:00
Joachim Wiberg cc0321f38f test: new test ietf_syslog/basic.py
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-26 20:54:49 +02:00
Joachim Wiberg 588d8189bf test: run all CI tests with a random container name
Fixes #568

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-22 21:52:36 +02:00
Joachim Wiberg dbcc04c3f8 test: improve robustness of container actions
If a container has not yet stopped/started we may for proto RESTCONF get
"invalid URI" result back for some container actions.  With this change
we allow the action to be retried up to three times before passing on
the error.

In tests on Qemu (x86_64) this happens very rarely and need at most one
retry before succeeding.  Verified by iterating the same basic test over
night (9000+ iterations).

Fixes #558

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-08-22 21:52:36 +02:00
Mattias WalströmandTobias Waldekranz 60e8b24d01 infamy: Refactor xpath handling between restconf and netconf implmentation
Previous xpath may or may not been an xpath, we still called it xpath.
Remove the obscure function get_xpath() and instead transform to a
URI in restconf.py

This fix issue #490

Signed-off-by: Mattias Walström <lazzer@gmail.com>
2024-08-16 16:50:13 +02:00
Mattias Walström d27153ea95 Refactor randomization of transport protocol
Simplify the logic and add a parameter to the command line parser
instead of environment variable.
2024-06-27 15:43:06 +02:00
Mattias Walström e3cd981830 restconf: Add workaround for bug in request 2.32.x 2024-06-27 15:43:06 +02:00
Mattias Walström 4a3559d88f infamy: Remove duplicate function
Get management ip was implemented in two functions, removing one.
2024-06-27 15:43:06 +02:00
Mattias Walström d340ba7407 infamy: Wait for NETCONF and RESTCONF
Also remove some code duplication.
2024-06-27 15:43:06 +02:00
Mattias Walström b790c46dc4 restconf: Bugfix download yang modules
Actually check if the model is already downloaded,
before download.
2024-06-27 15:43:06 +02:00
Mattias Walström b57353294f test: usb: Make possible to run on physical devices
Virtual devices always have two USB ports, but physical, may have more
or less.
2024-06-27 15:43:06 +02:00
Mattias Walström 4cc23092b2 restconf: Implement actions
And refactor how it was implemented in netconf
2024-06-27 15:43:06 +02:00
Mattias Walström 2919c23fde tests: containers: Adapt tests to work with restconf
Move the web port used in containers from 80 -> 91
this to not collide with nginx which is required
for restconf.
2024-06-27 15:43:06 +02:00
Mattias Walström df7dab5951 infamy: Randomize tests for restconf/netconf 2024-06-27 15:43:06 +02:00
Mattias Walström dd0f1610ab Add get_current_time_with_offset to netconf/restconf
This allows the timezone tests to run on restconf as well
2024-06-27 15:43:06 +02:00
Mattias Walström 29f56eb384 Restconf, netconf: Implement full feature compatibility
Abstract functions and common functions are located in transport.py
Some quirks has been required due to how rousette works,
these functions has been added to the abstract class

Can be removed when rousette behaves as expected.
2024-06-27 15:43:06 +02:00
Mattias Walström ba4d4caeb3 infamy: netconf: Implement deletion by xpath
This is the only way to delete with restconf so it it must also be
implemented in netconf. This replace the put_diff_dict function.

Also: how the xpath looks is different in restconf/netconf therefore
each protocl has a get_xpath() function as well.
2024-06-27 15:43:06 +02:00
Mattias Walström 0595628e97 infamy: Adapt for operational changes between netconf and restconf 2024-06-27 15:43:06 +02:00
Mattias Walström 095b256971 Adapt tests to be able to run them with NETCONF and RESTCONF 2024-06-27 15:43:06 +02:00
Mattias Walström ef09c65f40 restconf: Add support to download YANG-modules 2024-06-27 15:43:06 +02:00
Joachim Wiberg 95a5f153df statd: increase port column width for 'show bridge mdb'
Fixes #462

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 19:08:22 +02:00
Joachim Wiberg 4202c07926 package/curios-httpd: bump to v24.05.0
- Fixes to missing BusyBox tools (cat)
 - Bump Buildroot to this year's LTS (2024.02)

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 19:08:22 +02:00
Joachim Wiberg 0d0d97ad3f test: verify hostname format %h-%m in running and operational
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 17:22:36 +02:00
Joachim Wiberg 32ef120928 test: verify admin user default password in running and operational
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 17:22:36 +02:00
Joachim Wiberg e5820e1e55 test: new method get_password() in Env
Allow tests to fetch expected factory default password of devices.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 17:22:36 +02:00
Joachim Wiberg fb424709d7 test: minor, fix pep-8 warnings from pylint
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 17:22:36 +02:00
Joachim Wiberg 8851b279f5 confd: merge infix-shell-types.yang with infix-system.yang
All typedefs and identities should be declared in the module that uses
them unless other modules need them.  This change also makes it easier
to work with tools like yanglint and pyang.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-25 17:22:36 +02:00
Mattias Walström b92276bfac docker: Upgrade requests to silence dependabot
Unintended leak of Proxy-Authorization header in requests #1
Requests `Session` object does not verify requests after making first request with verify=False #2
2024-06-19 15:35:51 +02:00
Tobias Waldekranz 8baca7df03 test: unit: defconfig: Skip root login checks for all boot configs
Also, hoist the whitelist check up one level, so that we can report
which configs we are exempting, and which ones we are actually
checking.
2024-06-17 14:59:27 +02:00
Tobias Waldekranz 640ccea288 test: case: vlan_qos: Add
Verify that we can map VLAN PCP to skb->priority on ingress, and back
to PCP on egress.
2024-06-07 10:10:38 +02:00
Tobias Waldekranz 68b1632f19 test: netns: Add packet capture helper
This tries to improve on the existing sniffer in a couple of ways:

- In addition to being usable as a context manager, also allow
  explicitly starting and stopping the capture.

- Try to synchronize the start of the capture by snooping stderr and
  wait for tcpdump to start up. This should eliminate the need for
  sleeps before starting to send packets.

- By default, execute a safety sleep when terminating the capture to
  ensure that any straggling packets have had time to arrive at their
  destination.
2024-06-07 10:10:38 +02:00
Tobias Waldekranz c39f122014 test: netns: ping: Support specifying an ID
By default, ping(1) will use a random ID in the ICMP packet. Allow
setting it to a fixed value instead.

This makes it easy to identify that particular packet in a packet
capture later on.
2024-06-07 10:10:38 +02:00
Joachim WibergandTobias Waldekranz fe036049b8 Fix #473: bridges never get IPv6 autoconf enabled
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-05 15:08:06 +02:00
Mattias Walström 23585486de test: Add backend to run tests with restconf
Very simple tests work (hostname.py), more complex
tests (static_routing.py) failes due to the lack of
model prefix, for example. infix-ip:ipv4 instead of just
ipv4.

We need to fix this before you send your configuration, run
it through libyang for example and get the full model-name.
2024-06-04 13:38:03 +02:00
Joachim WibergandTobias Waldekranz 21ef50ebfb test: new test, verify handling of non-admin users
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-03 23:05:04 +02:00
Joachim WibergandTobias Waldekranz 47ee01be96 test: minor, whitespace cleanup
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-03 23:05:04 +02:00
Tobias WaldekranzandJoachim Wiberg 8eb67c1d13 test: Fixup permissions of generated files when using docker
Since containers managed by docker runs as root, files created in bind
mounted volumes will be owned by root:root. This is a problem for
files generated during test execution, as the calling user does not
have permission to remove them.

Therefore, add a wrapper entrypoint that hooks up an exit handler that
will fixup the permissions before exiting the container.
2024-05-24 19:10:10 +02:00
Mattias WalströmandTobias Waldekranz 6e07f5b6f8 test: ipv4_autoconf: Increace possible delay when waiting for link local
No reason to be that narrow (10s) change to 30s
2024-05-24 11:58:47 +02:00
Mattias WalströmandTobias Waldekranz c4d567f994 infamy: route: ospf: Adopt to changes done in 2c88e1bdf5
Now there is no guarantee that the control-plane-protocol array
exist in operational.
2024-05-24 11:58:47 +02:00
Mattias WalströmandTobias Waldekranz 05f063d81b test: Refactor ipv4 address
More robust and less code duplication
2024-05-24 11:58:47 +02:00
Mattias Walström 115f5c8f52 infamy: igmp_vlan: Refactor
Simplify test, and speed it up when do positive testing.
2024-05-23 08:45:05 +02:00
Mattias Walström 6df2c90d85 test: Refactor routing tests
Make more in parallel and restructure code
2024-05-23 08:45:05 +02:00