Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
K
Knot Resolver
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jonathan Coetzee
Knot Resolver
Commits
fa3b3465
Commit
fa3b3465
authored
Nov 19, 2015
by
Marek Vavruša
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tests: fixed deckard integration, doc, travis
parent
241270b1
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
36 additions
and
28 deletions
+36
-28
.travis.yml
.travis.yml
+1
-0
doc/build.rst
doc/build.rst
+19
-0
tests/README.rst
tests/README.rst
+6
-7
tests/integration.mk
tests/integration.mk
+9
-18
tests/tests.mk
tests/tests.mk
+1
-3
No files found.
.travis.yml
View file @
fa3b3465
...
...
@@ -35,6 +35,7 @@ script:
-
make -j2 install COVERAGE=1 PREFIX=${HOME}/.local
-
./daemon/kresd -h
-
make check COVERAGE=1 PREFIX=${HOME}/.local
-
make check-integration COVERAGE=1 PREFIX=${HOME}/.local
after_success
:
-
test $TRAVIS_OS_NAME = linux && coveralls -i lib -i daemon -x ".c" --gcov-options '\-lp'
sudo
:
false
...
...
doc/build.rst
View file @
fa3b3465
...
...
@@ -151,6 +151,22 @@ Building extras
The project can be built with code coverage tracking using the ``COVERAGE=1`` variable.
Running unit and integration tests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The unit tests require cmocka_ and are executed with ``make check``.
The integration tests use Deckard, the `DNS test harness <deckard>`_.
.. code-block:: bash
$ make check-integration
Note that the daemon and modules must be installed first before running integration tests, the reason is that the daemon
is otherwise unable to find and load modules.
Read the `documentation <deckard_doc>`_ for more information about requirements, how to run it and extend it.
.. _Docker images: https://registry.hub.docker.com/u/cznic/knot-resolver
.. _libuv: https://github.com/libuv/libuv
.. _MSVC: https://msdn.microsoft.com/en-us/vstudio/hh386302.aspx
...
...
@@ -172,3 +188,6 @@ The project can be built with code coverage tracking using the ``COVERAGE=1`` va
.. _Python: https://www.python.org/
.. _boot2docker: http://boot2docker.io/
.. _deckard: https://gitlab.labs.nic.cz/knot/deckard
.. _deckard_doc: https://gitlab.labs.nic.cz/knot/resolver/blob/master/tests/README.rst
tests/README.rst
View file @
fa3b3465
Unit tests
==========
The tests depend on cmocka_.
The
unit
tests depend on cmocka_.
.. code-block:: bash
$ make check-unit
$ make check
.. todo:: Writing tests.
Integration tests
=================
The tests depend on cwrap's `socket_wrapper`_, libfaketime_ and Python.
The libfaketime is included in ``contrib/libfaketime`` as it depends on rather latest version of it,
it is automatically synchronised with ``make``.
The integration tests are using Deckard, the `DNS test harness <deckard>`_.
It requires Jinja2_ and Python, `socket_wrapper`_, libfaketime_ are embedded in the build (cmake is required for `socket_wrapper`_).
Execute the tests by:
...
...
@@ -23,8 +21,9 @@ Execute the tests by:
$ make check-integration
.. todo:: Writing
tests.
See deckard_ documentation on how to write additional
tests.
.. _cmocka: https://cmocka.org/
.. _`socket_wrapper`: https://cwrap.org/socket_wrapper.html
.. _libfaketime: https://cwrap.org/socket_wrapper.html
.. _deckard: https://gitlab.labs.nic.cz/knot/deckard
tests/integration.mk
View file @
fa3b3465
#
# Integration tests
#
# Path to scenario files
# Config
TESTS
=
tests/integration/sets/resolver
# Path to daemon
DAEMON
=
kresd
# Template file name
TEMPLATE
=
template/kresd.j2
# Config file name
CONFIG
=
config
# Targets
deckard_DIR
:=
tests/integration
deckard
:=
$(libfaketime_DIR)
/deckard.py
libfaketime_DIR
:=
contrib/libfaketime
libfaketime
:=
$(
abspath
$(libfaketime_DIR)
)
/src/libfaketime
$(LIBEXT)
.1
libswrap_DIR
:=
contrib/libswrap
libswrap_cmake_DIR
:=
$(libswrap_DIR)
/obj
libswrap
=
$(
abspath
$(libswrap_cmake_DIR)
)
/src/libsocket_wrapper
$(LIBEXT)
.0
...
...
@@ -36,19 +25,21 @@ $(deckard):
@
git submodule update
--init
$(libfaketime_DIR)/Makefile
:
@
git submodule update
--init
# Build libfaketime contrib
# Build contrib libraries
$(libfaketime)
:
$(libfaketime_DIR)/Makefile
@
CFLAGS
=
""
$(MAKE)
-C
$(libfaketime_DIR)
$(libswrap_DIR)
:
@
git submodule update
--init
$(libswrap_cmake_DIR)
:
$(libswrap_DIR)
mkdir
$(libswrap_cmake_DIR)
$(libswrap_cmake_DIR)
:
$(libswrap_DIR)
@
mkdir
$(libswrap_cmake_DIR)
$(libswrap_cmake_DIR)/Makefile
:
$(libswrap_cmake_DIR)
@
cd
$(libswrap_cmake_DIR)
;
cmake ..
$(libswrap)
:
$(libswrap_cmake_DIR)/Makefile
@
CFLAGS
=
"-O2 -g"
$(MAKE)
-C
$(libswrap_cmake_DIR)
@
CFLAGS
=
"-O2 -g"
$(MAKE)
-
s
-
C
$(libswrap_cmake_DIR)
deckard
:
check-integration
check-integration
:
$(deckard) $(libswrap) $(libfaketime)
$(preload_syms)
tests/integration/deckard.py
$(TESTS)
$(DAEMON)
$(TEMPLATE)
$(CONFIG)
$(ADDITIONAL)
@
$(preload_LIBS)
$(preload_syms)
python tests/integration/deckard.py
$(TESTS)
$(
abspath
daemon/kresd
)
$(TEMPLATE)
config
.PHONY
:
check-integration
.PHONY
:
deckard
check-integration
tests/tests.mk
View file @
fa3b3465
...
...
@@ -17,12 +17,10 @@ endif
# Integration tests
ifeq
($(HAS_python)|$(HAS_socket_wrapper), yes|yes)
include
tests/integration.mk
else
$(warning
python
or
socket_wrapper
not
found,
skipping
integration
tests)
endif
# Targets
tests
:
check-unit
check-integration
tests
:
check-unit
tests-clean
:
$(foreach test
,
$(tests_BIN)
,
$(test)-clean)
.PHONY
:
tests tests-clean
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment