diff --git a/scripts/test.sh b/scripts/test.sh index 388d8026..82d56484 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -2,10 +2,6 @@ set -eo pipefail -# todo: some plugins will be needed as prerequisites - should be installed automatically -# os-firewall, os-wireguard, os-frr, os-bind -# todo: also: a opt1 interface is needed for some tests - echo '' DEBUG=false diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 00000000..63945ea9 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,73 @@ +# Tests + +## Tester dependencies + +```bash +python3 -m pip install -r requirements_test.txt +``` + +## Firewall dependencies + +The Firewall used for testing should be a dedicated VM for testing. You can use the official [ova image](https://docs.opnsense.org/manual/how-tos/installova.html). + +**THE TESTS WILL OVERRIDE THE EXISTING CONFIG!** + +Most tests fail if some other config is found. + +### Packages + +Some tests need packages to be pre-installed: + +* rule* - `os-firewall` +* wireguard_* - `os-wireguard` +* frr_* - `os-frr` +* bind_* - `os-bind` + +### Interfaces + +Some tests benefit from having a second network-interface available. + +You need to add a `opt1` dummy-interface named `TEST`. The assigned IPs do not matter. + +### Internet access + +To perform some tests (package/firmware, ids) the test firewall needs to reach some public service: + +* package/firmware - `pkg.opnsense.org` +* ids - `rules.emergingthreats.net` + +---- + +## Run + +### Single module + +```bash +bash scripts/test_single.sh +> Arguments: +> 1: firewall +> 2: api key file +> 3: path to local collection - set to '0' to clone from github +> 4: name of test to run +> 5: if check-mode should be ran (optional; 0/1; default=1) +> 6: path to virtual environment (optional) +``` + +### All modules + +```bash +bash scripts/test.sh +> Arguments: +> 1: firewall +> 2: api key file +> 3: path to local collection - set to '0' to clone from github +> 4: path to virtual environment (optional) +``` + +---- + +## Logs of automatic tests + +The tests are run automatically using the [AnsibleGuy infrastructure](https://github.com/ansibleguy/_meta_cicd)! + +Logs for those functional tests can be found here: [Short](https://badges.ansibleguy.net/log/collection_opnsense_test_short.log), [Full](https://badges.ansibleguy.net/log/collection_opnsense_test.log) diff --git a/tests/Readme.md b/tests/Readme.md deleted file mode 100644 index 35ed8a7d..00000000 --- a/tests/Readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Tests - -## Logs - -Link to test-log: [LINK](https://badges.ansibleguy.net/log/collection_opnsense_test.log) (_only if test failed_) - -## Dependencies - -```bash -python3 -m pip install -r requirements_test.txt -```