Skip to content
Snippets Groups Projects
Commit cc4d2be8 authored by Petr Špaček's avatar Petr Špaček
Browse files

Merge branch 'packaging-tests' into 'master'

packaging: tests - explicitly specify repository for testing

See merge request !525
parents 02c3bde2 fddd8d87
No related branches found
No related tags found
1 merge request!525packaging: tests - explicitly specify repository for testing
Pipeline #
......@@ -13,18 +13,24 @@ which configures OBS repository, installs the knot-resolver package,
starts the kresd@1 service and finally attempts to use it to resolve
a domain name. It also tests that DNSSEC validation is turned on.
By default, the *knot-resolver-latest* repo is used. To test the
*knot-resolver-devel* repo, enable in it `knot-resolver-test.yaml`.
By default, the *knot-resolver-devel* repo (for knot-resolver) along
with *knot-resoler-latest* (for knot) is used. To test only the
*knot-resolver-latest* repo, set it in `repos.yaml` (or use the
test-distro.sh script which overwrites this file). If you're running
tests in parallel, they all HAVE TO use the same repo(s).
Run the following command for every distro (aka directory with
Vagrantfile):
./test-distro.sh debian9
```
./test-distro.sh devel debian9
```
Caveats
-------
or
This tests the latest `knot-resolver` package that is available. In certain
cases, this may result in unexpected behaviour, because it might be testing a
different package than expected.
```
./test-distro.sh latest debian9
```
At the end of the test, the package version that was tested is
printed out. Make sure you're testing what you intended to.
......@@ -5,9 +5,6 @@
become: true
vars:
repos:
- knot-resolver-latest
# - knot-resolver-devel # enable to test development builds
ansible_python_interpreter: /usr/bin/python2
dig_package:
Debian: dnsutils
......@@ -31,6 +28,19 @@
wget -nv https://download.opensuse.org/repositories/home:CZ-NIC:{{ item }}/xUbuntu_16.04/Release.key -O Release.key &&
apt-key add - < Release.key &&
apt-get update
show_package_version:
Archlinux:
pacman -Qi knot-resolver | grep '^Version'
Fedora: |
rpm -qi knot-resolver | grep '^Version'
CentOS: |
rpm -qi knot-resolver | grep '^Version'
Debian:
dpkg -s knot-resolver | grep '^Version'
Ubuntu: |
dpkg -s knot-resolver | grep '^Version'
vars_files:
- repos.yaml
# HACK: Ansible requires Python 2, but it's not installed by default in all distros
gather_facts: false
......@@ -77,6 +87,10 @@
name: knot-resolver
state: latest
- name: get installed package version
shell: "{{ show_package_version[ansible_distribution] }}"
register: package_version
- name: install dig
package:
name: "{{ dig_package[ansible_distribution] }}"
......@@ -88,25 +102,31 @@
state: latest
when: ansible_distribution in ['RedHat', 'Fedora']
- name: start kresd@1.service
service:
name: kresd@1.service
state: restarted
- name: resolve nic.cz
shell: dig @127.0.0.1 nic.cz
register: res
failed_when: '"status: NOERROR" not in res.stdout'
- name: test dnssec is turned on
- name: testing block
block:
- name: test dnssec-failed.org +cd returns NOERROR
shell: dig +cd @127.0.0.1 dnssec-failed.org
- name: start kresd@1.service
service:
name: kresd@1.service
state: restarted
- name: resolve nic.cz
shell: dig @127.0.0.1 nic.cz
register: res
failed_when: '"status: NOERROR" not in res.stdout'
- name: test dnssec-failed.org returns SERVFAIL
shell: dig @127.0.0.1 dnssec-failed.org
register: res
failed_when: '"status: SERVFAIL" not in res.stdout'
- name: test dnssec is turned on
block:
- name: test dnssec-failed.org +cd returns NOERROR
shell: dig +cd @127.0.0.1 dnssec-failed.org
register: res
failed_when: '"status: NOERROR" not in res.stdout'
- name: test dnssec-failed.org returns SERVFAIL
shell: dig @127.0.0.1 dnssec-failed.org
register: res
failed_when: '"status: SERVFAIL" not in res.stdout'
always:
- name: show installed version
debug:
var: package_version.stdout
repos:
- knot-resolver-latest
- knot-resolver-devel
#!/bin/bash -x
# Configure which repos to use in knot-resolver-test.yaml (vars - repos)
# Example usage: ./test-distro.sh debian9
# ./test-distro.sh {devel|latest} {distro}
# Example usage: ./test-distro.sh devel debian9
cd "$1"
distro=$2
repo=$1
# Select repos
echo -e 'repos:\n - knot-resolver-latest' > repos.yaml # latest is needed for knot
case "$repo" in
devel)
echo -e ' - knot-resolver-devel' >> repos.yaml
;;
latest)
;;
*)
echo "Unknown repo, choose devel|latest"
exit 1
;;
esac
cd "$distro"
vagrant destroy &>/dev/null
vagrant up
ret=$?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment