Skip to content
Snippets Groups Projects
Commit 88aad787 authored by Daniel Salzman's avatar Daniel Salzman
Browse files

Merge branch 'tap' of /git/repositories/labs/knot

parents 02e1f574 0e36bd80
Branches
Tags
No related merge requests found
Showing
with 14 additions and 1135 deletions
......@@ -50,8 +50,9 @@
/m4/ltversion.m4
/m4/lt~obsolete.m4
# Binaries
/src/tests/unittests
/src/zscanner/zscanner-tool
/tests/runtests
/src/zscanner/tests/runtests
/src/zscanner/tests/zscanner-tool
/src/knotc
/src/knotd
/src/kdig
......@@ -61,16 +62,11 @@
/src/knot/conf/libknotd_la-cf-lex.c
/src/knot/conf/libknotd_la-cf-parse.c
/src/knot/conf/libknotd_la-cf-parse.h
/src/tests/libknot/parsed_data.rc
/src/tests/libknot/parsed_data_queries.rc
/src/tests/libknot/raw_data.rc
/src/tests/libknot/raw_data_queries.rc
/src/tests/libknot/realdata/
/src/tests/sample_conf.rc
src/zscanner/descriptor.h
src/zscanner/descriptor.c
src/zscanner/scanner.c.in
src/zscanner/test/cases/06-0_INCLUDE.in
src/zscanner/test/cases/06-3_INCLUDE.in
src/zscanner/test/cases/06-4_INCLUDE.in
src/zscanner/test/run_tests.sh
/tests/sample_conf.rc
/src/zscanner/descriptor.h
/src/zscanner/descriptor.c
/src/zscanner/scanner.c.in
/src/zscanner/tests/tap/libtap.a
/tests/tap/libtap.a
/tests/tmp/
/src/zscanner/tests/tmp/
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src samples doc man
EXTRA_DIST = resource.sh
include $(srcdir)/tests/Makefile.inc
......@@ -318,11 +318,7 @@ AC_CONFIG_FILES([Makefile
man/Makefile
src/Makefile
samples/Makefile
src/tests/Makefile
src/zscanner/Makefile
src/zscanner/test/cases/06-3_INCLUDE.in:src/zscanner/test/cases/06-3_INCLUDE.inin
src/zscanner/test/cases/06-4_INCLUDE.in:src/zscanner/test/cases/06-4_INCLUDE.inin
src/zscanner/test/cases/06-0_INCLUDE.in:src/zscanner/test/cases/06-0_INCLUDE.inin
man/khost.1
man/knotc.8
man/knotd.8
......@@ -332,6 +328,4 @@ AC_CONFIG_FILES([Makefile
man/knsec3hash.1
])
AC_CONFIG_FILES([src/zscanner/test/run_tests.sh], [chmod a+x src/zscanner/test/run_tests.sh])
AC_OUTPUT
ACLOCAL_AMFLAGS = -I $(top_srcdir)/m4
SUBDIRS = zscanner . tests
SUBDIRS = zscanner .
sbin_PROGRAMS = knotc knotd
bin_PROGRAMS = kdig khost knsupdate knsec3hash
......@@ -176,9 +176,6 @@ libknots_la_SOURCES = \
common/slab/slab.c \
common/slab/slab.h \
common/slab/alloc-common.h \
common/libtap/tap.c \
common/libtap/tap.h \
common/libtap/tap_unit.h \
common/atomic.h \
common/memdup.h \
common/mempattern.h \
......
NAME
====
libtap - Write tests in C
SYNOPSIS
========
#include <tap.h>
int foo () {return 3;}
char *bar () {return "fnord";}
int main () {
plan(5);
ok(foo() == 3);
is(bar(), "eek");
ok(foo() <= 8732, "foo <= %d", 8732);
like(bar(), "f(yes|no)r*[a-f]$", "is like");
cmp_ok(foo(), ">=", 10, "foo is greater than ten");
return exit_status();
}
results in:
1..5
ok 1
not ok 2
# Failed test at synopsis.c line 9.
# got: 'fnord'
# expected: 'eek'
ok 3 - foo <= 8732
ok 4 - is like
not ok 5 - foo is greater than ten
# Failed test 'foo is greater than ten'
# at synopsis.c line 12.
# 3
# >=
# 10
# Looks like you failed 2 tests of 5 run.
DESCRIPTION
===========
tap is an easy to read and easy to write way of creating tests for your
software. This library creates functions that can be used to generate it for
your C programs. It is mostly based on the Test::More Perl module.
FUNCTIONS
=========
- plan(tests)
- plan(NO_PLAN)
Use this to start a series of tests. When you know how many tests there
will be, you can put a number as a number of tests you expect to run. If
you do not know how many tests there will be, you can use plan(NO_PLAN)
or not call this function. When you pass it a number of tests to run, a
message similar to the following will appear in the output:
1..5
- ok(test)
- ok(test, fmt, ...)
Specify a test. the test can be any statement returning a true or false
value. You may optionally pass a format string describing the test.
ok(r = reader_new("Of Mice and Men"), "create a new reader");
ok(reader_go_to_page(r, 55), "can turn the page");
ok(r->page == 55, "page turned to the right one");
Should print out:
ok 1 - create a new reader
ok 2 - can turn the page
ok 3 - page turned to the right one
On failure, a diagnostic message will be printed out.
not ok 3 - page turned to the right one
# Failed test 'page turned to the right one'
# at reader.c line 13.
- is(got, expected)
- is(got, expected, fmt, ...)
- isnt(got, expected)
- isnt(got, expected, fmt, ...)
Tests that the string you got is what you expected. with isnt, it is the
reverse.
is("this", "that", "this is that");
prints:
not ok 1 - this is that
# Failed test 'this is that'
# at is.c line 6.
# got: 'this'
# expected: 'that'
- cmp_ok(a, op, b)
- cmp_ok(a, op, b, fmt, ...)
Compares two ints with any binary operator that doesn't require an lvalue.
This is nice to use since it provides a better error message than an
equivalent ok.
cmp_ok(420, ">", 666);
prints:
not ok 1
# Failed test at cmpok.c line 5.
# 420
# >
# 666
- like(got, expected)
- like(got, expected, fmt, ...)
- unlike(got, expected)
- unlike(got, expected, fmt, ...)
Tests that the string you got matches the expected extended POSIX regex.
unlike is the reverse. These macros are the equivalent of a skip on
Windows.
like("stranger", "^s.(r).*\\1$", "matches the regex");
prints:
ok 1 - matches the regex
- pass()
- pass(fmt, ...)
- fail()
- fail(fmt, ...)
Speciy that a test succeeded or failed. Use these when the statement is
longer than you can fit into the argument given to an ok() test.
- dies_ok(code)
- dies_ok(code, fmt, ...)
- lives_ok(code)
- lives_ok(code, fmt, ...)
Tests whether the given code causes your program to exit. The code gets
passed to a macro that will test it in a forked process. If the code
succeeds it will be executed in the parent process. You can test things
like passing a function a null pointer and make sure it doesnt
dereference it and crash.
dies_ok({abort();}, "abort does close your program");
dies_ok({int x = 0/0;}, "divide by zero crash");
lives ok({pow(3.0, 5.0)}, "nothing wrong with taking 3**5");
On Windows, these macros are the equivalent of a skip.
- exit_status()
Summarizes the tests that occurred. If there was no plan, it will print
out the number of tests as.
1..5
It will also print a diagnostic message about how many
failures there were.
# Looks like you failed 2 tests of 3 run.
If all planned tests were successful, it will return 0. If any test fails,
it will return the number of failed tests (including ones that were
missing). If they all passed, but there were missing tests, it will return
255.
- note(fmt, ...)
- diag(fmt, ...)
print out a message to the tap output. note prints to stdout and diag
prints to stderr. Each line is preceeded by a "# " so that you know its a
diagnostic message.
note("This is\na note\nto describe\nsomething.");
prints:
# This is
# a note
# to describe
# something
ok() and these functions return ints so you can use them like:
ok(1) && note("yo!");
ok(0) || diag("I have no idea what just happened");
- skip(test, n)
- skip(test, n, fmt, ...)
- endskip
Skip a series of n tests if test is true. You may give a reason why you are
skipping them or not. The (possibly) skipped tests must occur between the
skip and endskip macros.
skip(TRUE, 2);
ok(1);
ok(0);
endskip;
prints:
ok 1 # skip
ok 2 # skip
- todo()
- todo(fmt, ...)
- endtodo
Specifies a series of tests that you expect to fail because they are not
yet implemented.
todo()
ok(0);
endtodo;
prints:
not ok 1 # TODO
# Failed (TODO) test at todo.c line 7
/*
libtap - Write tests in C
Copyright (C) 2011 Jake Gelbman <gelbman@gmail.com>
This file is licensed under the GPL v3
*/
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "libknot/common.h"
#include "common/libtap/tap.h"
static int expected_tests = NO_PLAN;
static int failed_tests;
static int current_test;
static char *todo_mesg;
static char *
vstrdupf (const char *fmt, va_list args) {
char *str;
int size;
va_list args2;
va_copy(args2, args);
if (!fmt)
fmt = "";
size = vsnprintf(NULL, 0, fmt, args2) + 2;
str = malloc(size);
vsnprintf(str, size, fmt, args);
va_end(args2);
return str;
}
void
cplan (int tests, const char *fmt, ...) {
expected_tests = tests;
if (tests == SKIP_ALL) {
char *why;
va_list args;
va_start(args, fmt);
why = vstrdupf(fmt, args);
va_end(args);
printf("1..0 ");
note("SKIP %s\n", why);
exit(0);
}
if (tests != NO_PLAN) {
printf("1..%d\n", tests);
}
}
int
vok_at_loc (const char *file, int line, int test, const char *fmt,
va_list args)
{
char *name = vstrdupf(fmt, args);
printf("%sok %d", test ? "" : "not ", ++current_test);
if (*name)
printf(" - %s", name);
if (todo_mesg) {
printf(" # TODO");
if (*todo_mesg)
printf(" %s", todo_mesg);
}
printf("\n");
if (!test) {
if (*name)
diag(" Failed%s test '%s'\n at %s line %d.",
todo_mesg ? " (TODO)" : "", name, file, line);
else
diag(" Failed%s test at %s line %d.",
todo_mesg ? " (TODO)" : "", file, line);
if (!todo_mesg)
failed_tests++;
}
free(name);
return test;
}
int
ok_at_loc (const char *file, int line, int test, const char *fmt, ...) {
va_list args;
va_start(args, fmt);
vok_at_loc(file, line, test, fmt, args);
va_end(args);
return test;
}
static int
mystrcmp (const char *a, const char *b) {
return a == b ? 0 : !a ? -1 : !b ? 1 : strcmp(a, b);
}
#define eq(a, b) (!mystrcmp(a, b))
#define ne(a, b) (mystrcmp(a, b))
int
is_at_loc (const char *file, int line, const char *got, const char *expected,
const char *fmt, ...)
{
int test = eq(got, expected);
va_list args;
va_start(args, fmt);
vok_at_loc(file, line, test, fmt, args);
va_end(args);
if (!test) {
diag(" got: '%s'", got);
diag(" expected: '%s'", expected);
}
return test;
}
int
isnt_at_loc (const char *file, int line, const char *got, const char *expected,
const char *fmt, ...)
{
int test = ne(got, expected);
va_list args;
va_start(args, fmt);
vok_at_loc(file, line, test, fmt, args);
va_end(args);
if (!test) {
diag(" got: '%s'", got);
diag(" expected: anything else");
}
return test;
}
int
cmp_ok_at_loc (const char *file, int line, int a, const char *op, int b,
const char *fmt, ...)
{
int test = eq(op, "||") ? a || b
: eq(op, "&&") ? a && b
: eq(op, "|") ? a | b
: eq(op, "^") ? a ^ b
: eq(op, "&") ? a & b
: eq(op, "==") ? a == b
: eq(op, "!=") ? a != b
: eq(op, "<") ? a < b
: eq(op, ">") ? a > b
: eq(op, "<=") ? a <= b
: eq(op, ">=") ? a >= b
: eq(op, "<<") ? a << b
: eq(op, ">>") ? a >> b
: eq(op, "+") ? a + b
: eq(op, "-") ? a - b
: eq(op, "*") ? a * b
: eq(op, "/") ? a / b
: eq(op, "%") ? a % b
: diag("unrecognized operator '%s'", op);
va_list args;
va_start(args, fmt);
vok_at_loc(file, line, test, fmt, args);
va_end(args);
if (!test) {
diag(" %d", a);
diag(" %s", op);
diag(" %d", b);
}
return test;
}
static void
vdiag_to_fh (FILE *fh, const char *fmt, va_list args) {
char *mesg, *line;
int i;
if (!fmt)
return;
mesg = vstrdupf(fmt, args);
line = mesg;
for (i = 0; *line; i++) {
char c = mesg[i];
if (!c || c == '\n') {
mesg[i] = '\0';
fprintf(fh, "# %s\n", line);
if (!c)
break;
mesg[i] = c;
line = mesg + i + 1;
}
}
free(mesg);
return;
}
int
diag (const char *fmt, ...) {
va_list args;
va_start(args, fmt);
vdiag_to_fh(stderr, fmt, args);
va_end(args);
return 0;
}
int
note (const char *fmt, ...) {
va_list args;
va_start(args, fmt);
vdiag_to_fh(stdout, fmt, args);
va_end(args);
return 0;
}
int
exit_status () {
int retval = 0;
if (expected_tests == NO_PLAN) {
printf("1..%d\n", current_test);
}
else if (current_test != expected_tests) {
diag("Looks like you planned %d test%s but ran %d.",
expected_tests, expected_tests > 1 ? "s" : "", current_test);
retval = 255;
}
if (failed_tests) {
diag("Looks like you failed %d test%s of %d run.",
failed_tests, failed_tests > 1 ? "s" : "", current_test);
if (expected_tests == NO_PLAN)
retval = failed_tests;
else
retval = expected_tests - current_test + failed_tests;
}
return retval;
}
int
bail_out (int ignore, const char *fmt, ...) {
UNUSED(ignore);
va_list args;
va_start(args, fmt);
printf("Bail out! ");
vprintf(fmt, args);
printf("\n");
va_end(args);
exit(255);
return 0;
}
void
skippy (int n, const char *fmt, ...) {
char *why;
va_list args;
va_start(args, fmt);
why = vstrdupf(fmt, args);
va_end(args);
while (n --> 0) {
printf("ok %d ", ++current_test);
note("skip %s\n", why);
}
free(why);
}
void
ctodo (int ignore, const char *fmt, ...) {
UNUSED(ignore);
va_list args;
va_start(args, fmt);
todo_mesg = vstrdupf(fmt, args);
va_end(args);
}
void
cendtodo () {
free(todo_mesg);
todo_mesg = NULL;
}
#ifndef _WIN32
#include <sys/mman.h>
#include <regex.h>
#ifndef MAP_ANONYMOUS
#define MAP_ANONYMOUS MAP_ANON
#endif
/* Create a shared memory int to keep track of whether a piece of code executed
dies. to be used in the dies_ok and lives_ok macros */
int
tap_test_died (int status) {
static int *test_died = NULL;
int prev;
if (!test_died) {
test_died = mmap(0, sizeof (int), PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
*test_died = 0;
}
prev = *test_died;
*test_died = status;
return prev;
}
int
like_at_loc (int for_match, const char *file, int line, const char *got,
const char *expected, const char *fmt, ...)
{
int test;
regex_t re;
va_list args;
int err = regcomp(&re, expected, REG_EXTENDED);
if (err) {
char errbuf[256];
regerror(err, &re, errbuf, sizeof errbuf);
fprintf(stderr, "Unable to compile regex '%s': %s at %s line %d\n",
expected, errbuf, file, line);
exit(255);
}
err = regexec(&re, got, 0, NULL, 0);
regfree(&re);
test = for_match ? !err : err;
va_start(args, fmt);
vok_at_loc(file, line, test, fmt, args);
va_end(args);
if (!test) {
if (for_match) {
diag(" '%s'", got);
diag(" doesn't match: '%s'", expected);
}
else {
diag(" '%s'", got);
diag(" matches: '%s'", expected);
}
}
return test;
}
#endif
/*
libtap - Write tests in C
Copyright (C) 2011 Jake Gelbman <gelbman@gmail.com>
This file is licensed under the GPL v3
*/
#ifndef __TAP_H__
#define __TAP_H__
#ifdef __cplusplus
extern "C" {
#endif
#ifndef va_copy
#ifdef __va_copy
#define va_copy __va_copy
#else
#define va_copy(d, s) ((d) = (s))
#endif
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
int vok_at_loc (const char *file, int line, int test, const char *fmt,
va_list args);
int ok_at_loc (const char *file, int line, int test, const char *fmt,
...);
int is_at_loc (const char *file, int line, const char *got,
const char *expected, const char *fmt, ...);
int isnt_at_loc (const char *file, int line, const char *got,
const char *expected, const char *fmt, ...);
int cmp_ok_at_loc (const char *file, int line, int a, const char *op,
int b, const char *fmt, ...);
int bail_out (int ignore, const char *fmt, ...);
void cplan (int tests, const char *fmt, ...);
int diag (const char *fmt, ...);
int note (const char *fmt, ...);
int exit_status (void);
void skippy (int n, const char *fmt, ...);
void ctodo (int ignore, const char *fmt, ...);
void cendtodo (void);
#define NO_PLAN -1
#define SKIP_ALL -2
#define ok(...) ok_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL)
#define is(...) is_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL)
#define isnt(...) isnt_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL)
#define cmp_ok(...) cmp_ok_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL)
#define plan(...) cplan(__VA_ARGS__, NULL)
#define done_testing() return exit_status()
#define BAIL_OUT(...) bail_out(0, "" __VA_ARGS__, NULL)
#define pass(...) ok(1, "" __VA_ARGS__)
#define fail(...) ok(0, "" __VA_ARGS__)
#define skip(test, ...) do {if (test) {skippy(__VA_ARGS__, NULL); break;}
#define endskip } while (0)
#define todo(...) ctodo(0, "" __VA_ARGS__, NULL)
#define endtodo cendtodo()
#define dies_ok(...) dies_ok_common(1, __VA_ARGS__)
#define lives_ok(...) dies_ok_common(0, __VA_ARGS__)
#ifdef _WIN32
#define like(...) skippy(1, "like is not implemented on MSWin32")
#define unlike like
#define dies_ok_common(...) \
skippy(1, "Death detection is not supported on MSWin32")
#else
#define like(...) like_at_loc(1, __FILE__, __LINE__, __VA_ARGS__, NULL)
#define unlike(...) like_at_loc(0, __FILE__, __LINE__, __VA_ARGS__, NULL)
int like_at_loc (int for_match, const char *file, int line,
const char *got, const char *expected,
const char *fmt, ...);
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int tap_test_died (int status);
#define dies_ok_common(for_death, code, ...) \
do { \
int cpid; \
int it_died; \
tap_test_died(1); \
cpid = fork(); \
switch (cpid) { \
case -1: \
perror("fork error"); \
exit(1); \
case 0: \
close(1); \
close(2); \
code \
tap_test_died(0); \
exit(0); \
} \
if (waitpid(cpid, NULL, 0) < 0) { \
perror("waitpid error"); \
exit(1); \
} \
it_died = tap_test_died(0); \
if (!it_died) \
{code} \
ok(for_death ? it_died : !it_died, "" __VA_ARGS__); \
} while (0)
#endif
#ifdef __cplusplus
}
#endif
#endif
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file tap_unit.h
* \author Marek Vavrusa <marek.vavusa@nic.cz>
*
* \brief libtap test unit.
*
* Contains description of a single test unit API.
*
* Export unit_api in each module header file,
* and set function pointer to according test routines.
*
* <b>Example code for myunit.h</b>
* \code
* #ifndef MYUNIT_TEST_H
* #define MYUNIT_TEST_H
*
* // Export unittest symbol
* unit_api mymodule;
*
* #endif // MYUNIT_TEST_H
* \endcode
*
* <b>Example code for myunit.c</b>
* \code
* #include "myunit.h"
*
* // Function to return unit test count
* int myunit_count(int argc, char *argv[]) {
* return 1; // Number of tests in this unit
* }
*
* // Function to perform tests
* int myunit_run(int argc, char *argv[]) {
* // 1. test
* ok(1 == 1, "test OK");
* return 0;
* }
*
* // Declare module API
* unit_api mymodule = {
* "My module",
* &myunit_count,
* &myunit_run
* };
* \endcode
*
* To incorporate test, add it to unit tests main().
*
* See https://github.com/zorgnax/libtap for libtap API reference.
*
* \addtogroup tests
* @{
*/
#ifndef _TAP_UNIT_H_
#define _TAP_UNIT_H_
#include "common/libtap/tap.h"
/*! \brief Pointer to function for unit_api. */
typedef int(unitapi_f)(int, char*[]);
/*!
* \brief Basic Unit APIs.
*
* Each unit should have one global variable with
* an initialized instance of unit_api.
*/
typedef struct {
const char *name; /*!< Test unit name. */
unitapi_f *count; /*!< Function to calculate number of tests. */
unitapi_f *run; /*!< Function to run unit tests. */
} unit_api;
#endif // _TAP_UNIT_H_
/*! @} */
ACLOCAL_AMFLAGS = -I $(top_srcdir)/m4
AM_CPPFLAGS = -I$(top_srcdir)/src \
-DSYSCONFDIR='"$(sysconfdir)"' -DSBINDIR='"$(sbindir)"'
check_PROGRAMS = \
unittests
TESTS = unittests
EXTRA_DIST = \
files/sample_conf
BUILT_SOURCES = \
sample_conf.rc
CLEANFILES = \
sample_conf.rc
nodist_unittests_SOURCES = \
sample_conf.rc
unittests_SOURCES = \
common/acl_tests.c \
common/acl_tests.h \
common/base32hex_tests.c \
common/base32hex_tests.h \
common/base64_tests.c \
common/base64_tests.h \
common/descriptor_tests.h \
common/descriptor_tests.c \
common/events_tests.c \
common/events_tests.h \
common/fdset_tests.c \
common/fdset_tests.h \
common/hattrie_tests.c \
common/hattrie_tests.h \
common/slab_tests.c \
common/slab_tests.h \
knot/conf_tests.c \
knot/conf_tests.h \
knot/dthreads_tests.c \
knot/dthreads_tests.h \
knot/journal_tests.c \
knot/journal_tests.h \
knot/server_tests.c \
knot/server_tests.h \
knot/rrl_tests.h \
knot/rrl_tests.c \
libknot/dname_tests.h \
libknot/dname_tests.c \
libknot/ztree_tests.h \
libknot/ztree_tests.c \
libknot/wire_tests.h \
libknot/wire_tests.c \
libknot/rrset_tests.c \
libknot/rrset_tests.h \
libknot/dnssec_keys_tests.c \
libknot/dnssec_keys_tests.h \
libknot/dnssec_nsec3_tests.c \
libknot/dnssec_nsec3_tests.h \
libknot/dnssec_sign_tests.c \
libknot/dnssec_sign_tests.h \
libknot/dnssec_zone_nsec_tests.c \
libknot/dnssec_zone_nsec_tests.h \
unittests_main.c
unittests_LDADD = ../libknotd.la ../libknots.la @LIBOBJS@
sample_conf.rc: files/sample_conf
$(top_srcdir)/resource.sh $(srcdir)/files/sample_conf >$@
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_ACL_TESTS_H_
#define _KNOTD_ACL_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api acl_tests_api;
#endif /* _KNOTD_ACL_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_BASE32HEX_TESTS_H_
#define _KNOTD_BASE32HEX_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api base32hex_tests_api;
#endif /* _KNOTD_BASE32HEX_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_BASE64_TESTS_H_
#define _KNOTD_BASE64_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api base64_tests_api;
#endif /* _KNOTD_BASE64_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_DESCRIPTOR_TESTS_H_
#define _KNOTD_DESCRIPTOR_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api descriptor_tests_api;
#endif /* _KNOTD_DESCRIPTOR_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD__EVENTS_TESTS_H_
#define _KNOTD__EVENTS_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api events_tests_api;
#endif /* _KNOTD__EVENTS_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_FDSET_TESTS_H_
#define _KNOTD_FDSET_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api fdset_tests_api;
#endif /* _KNOTD_FDSET_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_HATTRIE_TESTS_H_
#define _KNOTD_HATTRIE_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api hattrie_tests_api;
#endif /* _KNOTD_HATTRIE_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_SLAB_TESTS_H_
#define _KNOTD_SLAB_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api slab_tests_api;
#endif /* _KNOTD_SLAB_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_CONF_TESTS_H_
#define _KNOTD_CONF_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api conf_tests_api;
#endif /* _KNOTD_CONF_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_DTHREADS_TESTS_H_
#define _KNOTD_DTHREADS_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api dthreads_tests_api;
#endif /* _KNOTD_DTHREADS_TESTS_H_ */
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _KNOTD_JOURNAL_TESTS_H_
#define _KNOTD_JOURNAL_TESTS_H_
#include "common/libtap/tap_unit.h"
/* Unit API. */
unit_api journal_tests_api;
#endif /* _KNOTD_JOURNAL_TESTS_H_ */
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment