From f5c66d3e9082bf7c906393e00e6c61476f4492a3 Mon Sep 17 00:00:00 2001 From: Marek Vavrusa <marek@vavrusa.com> Date: Wed, 6 Apr 2011 11:21:13 +0200 Subject: [PATCH] Separated dnslib unittests. libtap moved to common. Commit refs #701. --- Knot.files | 44 +++++----- src/Makefile.am | 64 +++++++------- src/{tests => common}/libtap/README | 0 src/{tests => common}/libtap/tap.c | 0 src/{tests => common}/libtap/tap.h | 0 src/common/libtap/tap_unit.h | 79 ++++++++++++++++++ src/{ => dnslib}/tests/dnslib/cuckoo_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/cuckoo_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/dname_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/dname_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/edns_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/edns_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/node_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/node_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/rdata_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/rdata_tests.h | 2 +- .../tests/dnslib/response_tests.c | 10 +-- .../tests/dnslib/response_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/rrset_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/rrset_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/zone_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/zone_tests.h | 2 +- src/{ => dnslib}/tests/dnslib/zonedb_tests.c | 2 +- src/{ => dnslib}/tests/dnslib/zonedb_tests.h | 2 +- src/{ => dnslib}/tests/files/parsed_data | Bin .../tests/files/parsed_data_queries | Bin src/{ => dnslib}/tests/files/raw_data | Bin src/{ => dnslib}/tests/files/raw_data_queries | Bin src/dnslib/tests/unittests_dnslib.c | 63 ++++++++++++++ src/tests/common/da_tests.h | 2 +- src/tests/common/skiplist_tests.h | 2 +- src/tests/common/slab_tests.h | 2 +- src/tests/knot/conf_tests.h | 2 +- src/tests/knot/dthreads_tests.h | 2 +- src/tests/knot/server_tests.h | 2 +- src/tests/libtap/tap_unit.h | 37 -------- src/tests/template_tests.c | 41 --------- src/tests/unittests_main.c | 22 +---- src/zoneparser/tests/unittests_zp_main.c | 2 +- 39 files changed, 227 insertions(+), 181 deletions(-) rename src/{tests => common}/libtap/README (100%) rename src/{tests => common}/libtap/tap.c (100%) rename src/{tests => common}/libtap/tap.h (100%) create mode 100644 src/common/libtap/tap_unit.h rename src/{ => dnslib}/tests/dnslib/cuckoo_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/cuckoo_tests.h (79%) rename src/{ => dnslib}/tests/dnslib/dname_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/dname_tests.h (79%) rename src/{ => dnslib}/tests/dnslib/edns_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/edns_tests.h (89%) rename src/{ => dnslib}/tests/dnslib/node_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/node_tests.h (78%) rename src/{ => dnslib}/tests/dnslib/rdata_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/rdata_tests.h (97%) rename src/{ => dnslib}/tests/dnslib/response_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/response_tests.h (91%) rename src/{ => dnslib}/tests/dnslib/rrset_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/rrset_tests.h (89%) rename src/{ => dnslib}/tests/dnslib/zone_tests.c (99%) rename src/{ => dnslib}/tests/dnslib/zone_tests.h (78%) rename src/{ => dnslib}/tests/dnslib/zonedb_tests.c (92%) rename src/{ => dnslib}/tests/dnslib/zonedb_tests.h (79%) rename src/{ => dnslib}/tests/files/parsed_data (100%) rename src/{ => dnslib}/tests/files/parsed_data_queries (100%) rename src/{ => dnslib}/tests/files/raw_data (100%) rename src/{ => dnslib}/tests/files/raw_data_queries (100%) create mode 100644 src/dnslib/tests/unittests_dnslib.c delete mode 100644 src/tests/libtap/tap_unit.h delete mode 100644 src/tests/template_tests.c diff --git a/Knot.files b/Knot.files index 5c6a988b3b..0e97bd0576 100644 --- a/Knot.files +++ b/Knot.files @@ -9,6 +9,9 @@ src/common/slab/malloc.h src/common/slab/slab.c src/common/slab/slab.h src/common/slab/alloc-common.h +src/common/libtap/tap.c +src/common/libtap/tap.h +src/common/libtap/tap_unit.h src/common/lists.h src/common/lists.c src/common/base32.h @@ -72,6 +75,25 @@ src/dnslib/hash/hash-functions.c src/dnslib/hash/hash-functions.h src/dnslib/hash/universal-system.c src/dnslib/hash/universal-system.h +src/dnslib/tests/dnslib/dname_tests.c +src/dnslib/tests/dnslib/dname_tests.h +src/dnslib/tests/dnslib/edns_tests.c +src/dnslib/tests/dnslib/edns_tests.h +src/dnslib/tests/dnslib/node_tests.c +src/dnslib/tests/dnslib/node_tests.h +src/dnslib/tests/dnslib/rdata_tests.c +src/dnslib/tests/dnslib/rdata_tests.h +src/dnslib/tests/dnslib/response_tests.c +src/dnslib/tests/dnslib/response_tests.h +src/dnslib/tests/dnslib/rrset_tests.c +src/dnslib/tests/dnslib/rrset_tests.h +src/dnslib/tests/dnslib/zone_tests.c +src/dnslib/tests/dnslib/zone_tests.h +src/dnslib/tests/dnslib/zonedb_tests.c +src/dnslib/tests/dnslib/zonedb_tests.h +src/dnslib/tests/dnslib/cuckoo_tests.c +src/dnslib/tests/dnslib/cuckoo_tests.h +src/dnslib/tests/unittests_dnslib.c src/zoneparser/zoneparser_main.c src/zoneparser/parser-descriptor.h src/zoneparser/parser-descriptor.c @@ -123,35 +145,13 @@ src/tests/common/skiplist_tests.c src/tests/common/skiplist_tests.h src/tests/common/slab_tests.c src/tests/common/slab_tests.h -src/tests/dnslib/dname_tests.c -src/tests/dnslib/dname_tests.h -src/tests/dnslib/edns_tests.c -src/tests/dnslib/edns_tests.h -src/tests/dnslib/node_tests.c -src/tests/dnslib/node_tests.h -src/tests/dnslib/rdata_tests.c -src/tests/dnslib/rdata_tests.h -src/tests/dnslib/response_tests.c -src/tests/dnslib/response_tests.h -src/tests/dnslib/rrset_tests.c -src/tests/dnslib/rrset_tests.h -src/tests/dnslib/zone_tests.c -src/tests/dnslib/zone_tests.h -src/tests/dnslib/zonedb_tests.c -src/tests/dnslib/zonedb_tests.h -src/tests/dnslib/cuckoo_tests.c -src/tests/dnslib/cuckoo_tests.h src/tests/knot/dthreads_tests.c src/tests/knot/dthreads_tests.h src/tests/knot/conf_tests.c src/tests/knot/conf_tests.h src/tests/knot/server_tests.c src/tests/knot/server_tests.h -src/tests/libtap/tap.c -src/tests/libtap/tap.h -src/tests/libtap/tap_unit.h src/tests/unittests_main.c -src/tests/template_tests.c tests/querytcp.c src/zoneparser/tests/unittests_zp_main.c src/zoneparser/tests/zcompile_tests.c diff --git a/src/Makefile.am b/src/Makefile.am index a5a334db85..6dd3349197 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = -I ../m4 bin_PROGRAMS = knotc -libexec_PROGRAMS = knot-zcompile unittests unittests-zcompile +libexec_PROGRAMS = knot-zcompile unittests unittests-zcompile unittests-dnslib sbin_PROGRAMS = knotd # $(YACC) will generate header file @@ -12,17 +12,17 @@ libknot_la_LFLAGS = # TODO: reentrant parser, prefix LDADD = libknot.la @LIBOBJS@ BUILT_SOURCES = \ - tests/dnslib/parsed_data.rc \ - tests/dnslib/raw_data_queries.rc \ - tests/dnslib/raw_data.rc \ - tests/dnslib/parsed_data_queries.rc \ + dnslib/tests/parsed_data.rc \ + dnslib/tests/raw_data_queries.rc \ + dnslib/tests/raw_data.rc \ + dnslib/tests/parsed_data_queries.rc \ tests/sample_conf.rc CLEANFILES = \ - tests/dnslib/parsed_data.rc \ - tests/dnslib/raw_data_queries.rc \ - tests/dnslib/raw_data.rc \ - tests/dnslib/parsed_data_queries.rc \ + dnslib/tests/parsed_data.rc \ + dnslib/tests/raw_data_queries.rc \ + dnslib/tests/raw_data.rc \ + dnslib/tests/parsed_data_queries.rc \ tests/sample_conf.rc \ zparser.h \ zparser.c \ @@ -46,24 +46,26 @@ knot_zcompile_SOURCES = \ zoneparser/parser-descriptor.c unittests_SOURCES = \ - tests/libtap/tap.c \ tests/common/da_tests.c \ tests/common/skiplist_tests.c \ tests/common/slab_tests.c \ - tests/dnslib/cuckoo_tests.c \ - tests/dnslib/dname_tests.c \ - tests/dnslib/edns_tests.c \ - tests/dnslib/node_tests.c \ - tests/dnslib/rdata_tests.c \ - tests/dnslib/response_tests.c \ - tests/dnslib/rrset_tests.c \ - tests/dnslib/zone_tests.c \ - tests/dnslib/zonedb_tests.c \ tests/knot/conf_tests.c \ tests/knot/dthreads_tests.c \ tests/knot/server_tests.c \ tests/unittests_main.c +unittests_dnslib_SOURCES = \ + dnslib/tests/dnslib/cuckoo_tests.c \ + dnslib/tests/dnslib/dname_tests.c \ + dnslib/tests/dnslib/edns_tests.c \ + dnslib/tests/dnslib/node_tests.c \ + dnslib/tests/dnslib/rdata_tests.c \ + dnslib/tests/dnslib/response_tests.c \ + dnslib/tests/dnslib/rrset_tests.c \ + dnslib/tests/dnslib/zone_tests.c \ + dnslib/tests/dnslib/zonedb_tests.c \ + dnslib/tests/unittests_dnslib.c + unittests_zcompile_SOURCES = \ zoneparser/parser-util.h \ zoneparser/parser-descriptor.h \ @@ -73,14 +75,13 @@ unittests_zcompile_SOURCES = \ zoneparser/zoneparser.c \ zoneparser/parser-util.c \ zoneparser/parser-descriptor.c \ - tests/libtap/tap.c \ zoneparser/tests/unittests_zp_main.c nodist_unittests_SOURCES = \ - tests/dnslib/parsed_data.rc \ - tests/dnslib/raw_data_queries.rc \ - tests/dnslib/raw_data.rc \ - tests/dnslib/parsed_data_queries.rc \ + dnslib/tests/parsed_data.rc \ + dnslib/tests/raw_data_queries.rc \ + dnslib/tests/raw_data.rc \ + dnslib/tests/parsed_data_queries.rc \ tests/sample_conf.rc knotd_SOURCES = \ @@ -92,6 +93,9 @@ libknot_la_SOURCES = \ common/slab/malloc.c \ common/slab/slab.h \ common/slab/malloc.h \ + common/libtap/tap.c \ + common/libtap/tap.h \ + common/tap_unit.h \ common/lists.c \ common/base32.c \ common/lists.h \ @@ -177,25 +181,23 @@ libknot_la_SOURCES = \ knot/server/udp-handler.h \ knot/server/tcp-handler.h \ knot/server/dthreads.h \ - knot/server/server.h \ - tests/libtap/tap.h \ - tests/tap_unit.h + knot/server/server.h libknot_la_LIBADD = @LIBOBJS@ # automake complains on % rules: # `%'-style pattern rules are a GNU make extension -tests/dnslib/parsed_data.rc: tests/files/parsed_data +dnslib/tests/parsed_data.rc: dnslib/tests/files/parsed_data ../resource.sh $< >$@ -tests/dnslib/parsed_data_queries.rc: tests/files/parsed_data_queries +dnslib/tests/parsed_data_queries.rc: dnslib/tests/files/parsed_data_queries ../resource.sh $< >$@ -tests/dnslib/raw_data_queries.rc: tests/files/raw_data_queries +dnslib/tests/raw_data_queries.rc: dnslib/tests/files/raw_data_queries ../resource.sh $< >$@ -tests/dnslib/raw_data.rc: tests/files/raw_data +dnslib/tests/raw_data.rc: dnslib/tests/files/raw_data ../resource.sh $< >$@ tests/sample_conf.rc: tests/files/sample_conf diff --git a/src/tests/libtap/README b/src/common/libtap/README similarity index 100% rename from src/tests/libtap/README rename to src/common/libtap/README diff --git a/src/tests/libtap/tap.c b/src/common/libtap/tap.c similarity index 100% rename from src/tests/libtap/tap.c rename to src/common/libtap/tap.c diff --git a/src/tests/libtap/tap.h b/src/common/libtap/tap.h similarity index 100% rename from src/tests/libtap/tap.h rename to src/common/libtap/tap.h diff --git a/src/common/libtap/tap_unit.h b/src/common/libtap/tap_unit.h new file mode 100644 index 0000000000..0a008ce7c7 --- /dev/null +++ b/src/common/libtap/tap_unit.h @@ -0,0 +1,79 @@ +/*! + * \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_ + +/*! @} */ + diff --git a/src/tests/dnslib/cuckoo_tests.c b/src/dnslib/tests/dnslib/cuckoo_tests.c similarity index 99% rename from src/tests/dnslib/cuckoo_tests.c rename to src/dnslib/tests/dnslib/cuckoo_tests.c index d09409106e..f461183769 100644 --- a/src/tests/dnslib/cuckoo_tests.c +++ b/src/dnslib/tests/dnslib/cuckoo_tests.c @@ -1,7 +1,7 @@ #include <time.h> #include <assert.h> -#include "tests/dnslib/cuckoo_tests.h" +#include "dnslib/tests/dnslib/cuckoo_tests.h" #include "dnslib/hash/cuckoo-hash-table.h" #define CT_TEST_REHASH diff --git a/src/tests/dnslib/cuckoo_tests.h b/src/dnslib/tests/dnslib/cuckoo_tests.h similarity index 79% rename from src/tests/dnslib/cuckoo_tests.h rename to src/dnslib/tests/dnslib/cuckoo_tests.h index 7b1b846320..56400ba164 100644 --- a/src/tests/dnslib/cuckoo_tests.h +++ b/src/dnslib/tests/dnslib/cuckoo_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_CUCKOO_TESTS_H_ #define _KNOT_CUCKOO_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api cuckoo_tests_api; diff --git a/src/tests/dnslib/dname_tests.c b/src/dnslib/tests/dnslib/dname_tests.c similarity index 99% rename from src/tests/dnslib/dname_tests.c rename to src/dnslib/tests/dnslib/dname_tests.c index 8f98d385c8..6115ae410a 100644 --- a/src/tests/dnslib/dname_tests.c +++ b/src/dnslib/tests/dnslib/dname_tests.c @@ -1,7 +1,7 @@ #include <string.h> #include <assert.h> -#include "tests/dnslib/dname_tests.h" +#include "dnslib/tests/dnslib/dname_tests.h" #include "dnslib/dname.h" #include "dnslib/node.h" diff --git a/src/tests/dnslib/dname_tests.h b/src/dnslib/tests/dnslib/dname_tests.h similarity index 79% rename from src/tests/dnslib/dname_tests.h rename to src/dnslib/tests/dnslib/dname_tests.h index 7fd008ff7e..6f12817928 100644 --- a/src/tests/dnslib/dname_tests.h +++ b/src/dnslib/tests/dnslib/dname_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_DNAME_TESTS_H_ #define _KNOT_DNAME_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api dname_tests_api; diff --git a/src/tests/dnslib/edns_tests.c b/src/dnslib/tests/dnslib/edns_tests.c similarity index 99% rename from src/tests/dnslib/edns_tests.c rename to src/dnslib/tests/dnslib/edns_tests.c index cb8fdfa9b9..ba69517e01 100644 --- a/src/tests/dnslib/edns_tests.c +++ b/src/dnslib/tests/dnslib/edns_tests.c @@ -1,6 +1,6 @@ #include <assert.h> -#include "tests/dnslib/edns_tests.h" +#include "dnslib/tests/dnslib/edns_tests.h" #include "dnslib/dnslib-common.h" #include "dnslib/edns.h" diff --git a/src/tests/dnslib/edns_tests.h b/src/dnslib/tests/dnslib/edns_tests.h similarity index 89% rename from src/tests/dnslib/edns_tests.h rename to src/dnslib/tests/dnslib/edns_tests.h index c61f1f85bf..d79cae5707 100644 --- a/src/tests/dnslib/edns_tests.h +++ b/src/dnslib/tests/dnslib/edns_tests.h @@ -11,7 +11,7 @@ #ifndef _KNOT_EDNS_TESTS_H_ #define _KNOT_EDNS_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api edns_tests_api; diff --git a/src/tests/dnslib/node_tests.c b/src/dnslib/tests/dnslib/node_tests.c similarity index 99% rename from src/tests/dnslib/node_tests.c rename to src/dnslib/tests/dnslib/node_tests.c index fc49d9bbec..c62bec0f09 100644 --- a/src/tests/dnslib/node_tests.c +++ b/src/dnslib/tests/dnslib/node_tests.c @@ -1,4 +1,4 @@ -#include "tests/dnslib/node_tests.h" +#include "dnslib/tests/dnslib/node_tests.h" #include "dnslib/dname.h" #include "dnslib/node.h" #include "dnslib/descriptor.h" diff --git a/src/tests/dnslib/node_tests.h b/src/dnslib/tests/dnslib/node_tests.h similarity index 78% rename from src/tests/dnslib/node_tests.h rename to src/dnslib/tests/dnslib/node_tests.h index a4b4af01fa..eebaf6934b 100644 --- a/src/tests/dnslib/node_tests.h +++ b/src/dnslib/tests/dnslib/node_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_NODE_TESTS_H_ #define _KNOT_NODE_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api node_tests_api; diff --git a/src/tests/dnslib/rdata_tests.c b/src/dnslib/tests/dnslib/rdata_tests.c similarity index 99% rename from src/tests/dnslib/rdata_tests.c rename to src/dnslib/tests/dnslib/rdata_tests.c index a0beda9b86..340ca441b5 100644 --- a/src/tests/dnslib/rdata_tests.c +++ b/src/dnslib/tests/dnslib/rdata_tests.c @@ -1,7 +1,7 @@ #include <stdlib.h> #include <assert.h> -#include "tests/dnslib/rdata_tests.h" +#include "dnslib/tests/dnslib/rdata_tests.h" #include "dnslib/dnslib-common.h" #include "dnslib/rdata.h" #include "dnslib/descriptor.h" diff --git a/src/tests/dnslib/rdata_tests.h b/src/dnslib/tests/dnslib/rdata_tests.h similarity index 97% rename from src/tests/dnslib/rdata_tests.h rename to src/dnslib/tests/dnslib/rdata_tests.h index c409b81829..a3930cab0d 100644 --- a/src/tests/dnslib/rdata_tests.h +++ b/src/dnslib/tests/dnslib/rdata_tests.h @@ -29,7 +29,7 @@ #ifndef _KNOT_RDATA_TESTS_H_ #define _KNOT_RDATA_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api rdata_tests_api; diff --git a/src/tests/dnslib/response_tests.c b/src/dnslib/tests/dnslib/response_tests.c similarity index 99% rename from src/tests/dnslib/response_tests.c rename to src/dnslib/tests/dnslib/response_tests.c index 44a96074eb..25d8151f2e 100644 --- a/src/tests/dnslib/response_tests.c +++ b/src/dnslib/tests/dnslib/response_tests.c @@ -6,7 +6,7 @@ #endif //#define RESP_TEST_DEBUG -#include "tests/dnslib/response_tests.h" +#include "dnslib/tests/dnslib/response_tests.h" #include "dnslib/dnslib-common.h" #include "dnslib/response.h" #include "dnslib/rdata.h" @@ -20,10 +20,10 @@ * Resources * \note .rc files are generated on compile-time. */ -#include "tests/dnslib/parsed_data_queries.rc" -#include "tests/dnslib/parsed_data.rc" -#include "tests/dnslib/raw_data_queries.rc" -#include "tests/dnslib/raw_data.rc" +#include "dnslib/tests/parsed_data_queries.rc" +#include "dnslib/tests/parsed_data.rc" +#include "dnslib/tests/raw_data_queries.rc" +#include "dnslib/tests/raw_data.rc" static int dnslib_response_tests_count(int argc, char *argv[]); static int dnslib_response_tests_run(int argc, char *argv[]); diff --git a/src/tests/dnslib/response_tests.h b/src/dnslib/tests/dnslib/response_tests.h similarity index 91% rename from src/tests/dnslib/response_tests.h rename to src/dnslib/tests/dnslib/response_tests.h index 3d11996432..24c62cba2d 100644 --- a/src/tests/dnslib/response_tests.h +++ b/src/dnslib/tests/dnslib/response_tests.h @@ -12,7 +12,7 @@ #ifndef _KNOT_RESPONSE_TESTS_H_ #define _KNOT_RESPONSE_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api response_tests_api; diff --git a/src/tests/dnslib/rrset_tests.c b/src/dnslib/tests/dnslib/rrset_tests.c similarity index 99% rename from src/tests/dnslib/rrset_tests.c rename to src/dnslib/tests/dnslib/rrset_tests.c index f1f9a3be3a..1ee13d555e 100644 --- a/src/tests/dnslib/rrset_tests.c +++ b/src/dnslib/tests/dnslib/rrset_tests.c @@ -1,6 +1,6 @@ #include <assert.h> -#include "tests/dnslib/rrset_tests.h" +#include "dnslib/tests/dnslib/rrset_tests.h" #include "dnslib/dnslib-common.h" #include "dnslib/descriptor.h" #include "dnslib/rrset.h" diff --git a/src/tests/dnslib/rrset_tests.h b/src/dnslib/tests/dnslib/rrset_tests.h similarity index 89% rename from src/tests/dnslib/rrset_tests.h rename to src/dnslib/tests/dnslib/rrset_tests.h index 1c69c5c2b8..7491efaef4 100644 --- a/src/tests/dnslib/rrset_tests.h +++ b/src/dnslib/tests/dnslib/rrset_tests.h @@ -11,7 +11,7 @@ #ifndef _KNOT_RRSET_TESTS_H_ #define _KNOT_RRSET_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api rrset_tests_api; diff --git a/src/tests/dnslib/zone_tests.c b/src/dnslib/tests/dnslib/zone_tests.c similarity index 99% rename from src/tests/dnslib/zone_tests.c rename to src/dnslib/tests/dnslib/zone_tests.c index 1544e1e4b4..0e43be32d8 100644 --- a/src/tests/dnslib/zone_tests.c +++ b/src/dnslib/tests/dnslib/zone_tests.c @@ -1,6 +1,6 @@ #include <assert.h> -#include "tests/dnslib/zone_tests.h" +#include "dnslib/tests/dnslib/zone_tests.h" #include "dnslib/dnslib-common.h" #include "dnslib/zone.h" #include "dnslib/node.h" diff --git a/src/tests/dnslib/zone_tests.h b/src/dnslib/tests/dnslib/zone_tests.h similarity index 78% rename from src/tests/dnslib/zone_tests.h rename to src/dnslib/tests/dnslib/zone_tests.h index 98ccd42084..6b57dc7ec8 100644 --- a/src/tests/dnslib/zone_tests.h +++ b/src/dnslib/tests/dnslib/zone_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_ZONE_TESTS_H_ #define _KNOT_ZONE_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api zone_tests_api; diff --git a/src/tests/dnslib/zonedb_tests.c b/src/dnslib/tests/dnslib/zonedb_tests.c similarity index 92% rename from src/tests/dnslib/zonedb_tests.c rename to src/dnslib/tests/dnslib/zonedb_tests.c index 18f4fe45f8..cab5c43a67 100644 --- a/src/tests/dnslib/zonedb_tests.c +++ b/src/dnslib/tests/dnslib/zonedb_tests.c @@ -1,4 +1,4 @@ -#include "tests/dnslib/zonedb_tests.h" +#include "dnslib/tests/dnslib/zonedb_tests.h" static int zonedb_tests_count(int argc, char *argv[]); diff --git a/src/tests/dnslib/zonedb_tests.h b/src/dnslib/tests/dnslib/zonedb_tests.h similarity index 79% rename from src/tests/dnslib/zonedb_tests.h rename to src/dnslib/tests/dnslib/zonedb_tests.h index 16affd55f3..2499dad25e 100644 --- a/src/tests/dnslib/zonedb_tests.h +++ b/src/dnslib/tests/dnslib/zonedb_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_ZONEDB_TESTS_H_ #define _KNOT_ZONEDB_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api zonedb_tests_api; diff --git a/src/tests/files/parsed_data b/src/dnslib/tests/files/parsed_data similarity index 100% rename from src/tests/files/parsed_data rename to src/dnslib/tests/files/parsed_data diff --git a/src/tests/files/parsed_data_queries b/src/dnslib/tests/files/parsed_data_queries similarity index 100% rename from src/tests/files/parsed_data_queries rename to src/dnslib/tests/files/parsed_data_queries diff --git a/src/tests/files/raw_data b/src/dnslib/tests/files/raw_data similarity index 100% rename from src/tests/files/raw_data rename to src/dnslib/tests/files/raw_data diff --git a/src/tests/files/raw_data_queries b/src/dnslib/tests/files/raw_data_queries similarity index 100% rename from src/tests/files/raw_data_queries rename to src/dnslib/tests/files/raw_data_queries diff --git a/src/dnslib/tests/unittests_dnslib.c b/src/dnslib/tests/unittests_dnslib.c new file mode 100644 index 0000000000..7f3067dcb5 --- /dev/null +++ b/src/dnslib/tests/unittests_dnslib.c @@ -0,0 +1,63 @@ +#include <config.h> +#include "knot/common.h" +#include "common/libtap/tap_unit.h" + +// Units to test +#include "dnslib/cuckoo_tests.h" +#include "dnslib/dname_tests.h" +#include "dnslib/edns_tests.h" +#include "dnslib/node_tests.h" +#include "dnslib/rdata_tests.h" +#include "dnslib/response_tests.h" +#include "dnslib/rrset_tests.h" +#include "dnslib/zone_tests.h" +#include "dnslib/zonedb_tests.h" + +// Run all loaded units +int main(int argc, char *argv[]) +{ + // Open log + log_init(LOG_UPTO(LOG_ERR), LOG_MASK(LOG_ERR) | LOG_MASK(LOG_WARNING)); + + // Build test set + unit_api *tests[] = { + + /* DNS units */ + &cuckoo_tests_api, //! Cuckoo hashing unit + &dname_tests_api, //! DNS library (dname) unit + &edns_tests_api, //! DNS library (EDNS0) unit + &node_tests_api, //! DNS library (node) unit + &rdata_tests_api, //! DNS library (rdata) unit + &response_tests_api, //! DNS library (response) unit + &rrset_tests_api, //! DNS library (rrset) unit + &zone_tests_api, //! DNS library (zone) unit + &zonedb_tests_api, //! DNS library (zonedb) unit + }; + + // Plan number of tests + int id = 0; + int test_count = 0; + note("Units:"); + while (tests[id] != NULL) { + note("- %s : %d tests", tests[id]->name, + tests[id]->count(argc, argv)); + test_count += tests[id]->count(argc, argv); + ++id; + } + + plan(test_count); + + // Run tests + id = 0; + while (tests[id] != NULL) { + diag("Testing unit: %s", tests[id]->name); + tests[id]->run(argc, argv); + ++id; + } + + log_close(); + + // Evaluate + return exit_status(); +} + diff --git a/src/tests/common/da_tests.h b/src/tests/common/da_tests.h index de6a3ecaee..5237ce2015 100644 --- a/src/tests/common/da_tests.h +++ b/src/tests/common/da_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_DA_TESTS_H_ #define _KNOT_DA_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api da_tests_api; diff --git a/src/tests/common/skiplist_tests.h b/src/tests/common/skiplist_tests.h index 676cf77126..e18ff80bf4 100644 --- a/src/tests/common/skiplist_tests.h +++ b/src/tests/common/skiplist_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_SKIPLIST_TESTS_H_ #define _KNOT_SKIPLIST_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api skiplist_tests_api; diff --git a/src/tests/common/slab_tests.h b/src/tests/common/slab_tests.h index c6a8721d97..d8cb23089a 100644 --- a/src/tests/common/slab_tests.h +++ b/src/tests/common/slab_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_SLAB_TESTS_H_ #define _KNOT_SLAB_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api slab_tests_api; diff --git a/src/tests/knot/conf_tests.h b/src/tests/knot/conf_tests.h index 7982751eae..7069dd7dd6 100644 --- a/src/tests/knot/conf_tests.h +++ b/src/tests/knot/conf_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_CONF_TESTS_H_ #define _KNOT_CONF_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api conf_tests_api; diff --git a/src/tests/knot/dthreads_tests.h b/src/tests/knot/dthreads_tests.h index 11b9db8902..933700261f 100644 --- a/src/tests/knot/dthreads_tests.h +++ b/src/tests/knot/dthreads_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_DTHREADS_TESTS_H_ #define _KNOT_DTHREADS_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api dthreads_tests_api; diff --git a/src/tests/knot/server_tests.h b/src/tests/knot/server_tests.h index 13e091fbc0..41f639e727 100644 --- a/src/tests/knot/server_tests.h +++ b/src/tests/knot/server_tests.h @@ -1,7 +1,7 @@ #ifndef _KNOT_SERVER_TESTS_H_ #define _KNOT_SERVER_TESTS_H_ -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" /* Unit API. */ unit_api server_tests_api; diff --git a/src/tests/libtap/tap_unit.h b/src/tests/libtap/tap_unit.h deleted file mode 100644 index bad329931f..0000000000 --- a/src/tests/libtap/tap_unit.h +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * \file tap_unit.h - * \author Marek Vavrusa <marek.vavusa@nic.cz> - * - * \brief libtap test unit. - * - * Contains description of a single test unit API. - * - * \addtogroup tests - * @{ - */ - -#ifndef _KNOT_TAP_UNIT_H_ -#define _KNOT_TAP_UNIT_H_ - -#include "tests/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 // _KNOT_TAP_UNIT_H_ - -/*! @} */ - diff --git a/src/tests/template_tests.c b/src/tests/template_tests.c deleted file mode 100644 index ba5f5ae6df..0000000000 --- a/src/tests/template_tests.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "tests/tap_unit.h" - -/* - This is unit test template. - Implement two mandatory functions below, - name them accordingly and export unit API - via global variable of "unit_api". - - Add the exported variable into the list - "unit_api* tests[]" in src/tests/main.c - - There is no header file, all modules *.c files - are included directly into src/tests/main.c - - See https://github.com/zorgnax/libtap for libtap API reference. - - */ - -/*! \brief Report the number of scheduled tests for given parameters. */ -static int TEMPLATE_tests_count(int argc, char *argv[]) -{ - return 1; -} - -/*! \brief Run all scheduled tests for given parameters. */ -static int TEMPLATE_tests_run(int argc, char *argv[]) -{ - ok(1 == 1, "dummy test"); - return 0; -} - -/*! - * \brief Exported unit API for later incorporation. - * - * Name must be unique for each module. - */ -unit_api TEMPLATE_tests_api = { - "TEMPLATE unit", /*!< Unit name. */ - &TEMPLATE_tests_count, /*!< Count scheduled tests. */ - &TEMPLATE_tests_run /*!< Run scheduled tests. */ -}; diff --git a/src/tests/unittests_main.c b/src/tests/unittests_main.c index 0b8472f5a5..5d6c14bae5 100644 --- a/src/tests/unittests_main.c +++ b/src/tests/unittests_main.c @@ -1,20 +1,11 @@ #include <config.h> #include "knot/common.h" -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" // Units to test #include "tests/common/slab_tests.h" #include "tests/common/skiplist_tests.h" #include "tests/common/da_tests.h" -#include "tests/dnslib/cuckoo_tests.h" -#include "tests/dnslib/dname_tests.h" -#include "tests/dnslib/edns_tests.h" -#include "tests/dnslib/node_tests.h" -#include "tests/dnslib/rdata_tests.h" -#include "tests/dnslib/response_tests.h" -#include "tests/dnslib/rrset_tests.h" -#include "tests/dnslib/zone_tests.h" -#include "tests/dnslib/zonedb_tests.h" #include "tests/knot/dthreads_tests.h" #include "tests/knot/server_tests.h" #include "tests/knot/conf_tests.h" @@ -33,17 +24,6 @@ int main(int argc, char *argv[]) &dthreads_tests_api, //! DThreads testing unit &da_tests_api, //! Dynamic array unit - /* DNS units */ - &cuckoo_tests_api, //! Cuckoo hashing unit - &dname_tests_api, //! DNS library (dname) unit - &edns_tests_api, //! DNS library (EDNS0) unit - &node_tests_api, //! DNS library (node) unit - &rdata_tests_api, //! DNS library (rdata) unit - &response_tests_api, //! DNS library (response) unit - &rrset_tests_api, //! DNS library (rrset) unit - &zone_tests_api, //! DNS library (zone) unit - &zonedb_tests_api, //! DNS library (zonedb) unit - /* Server parts. */ &conf_tests_api, //! Configuration parser tests &server_tests_api, //! Server unit diff --git a/src/zoneparser/tests/unittests_zp_main.c b/src/zoneparser/tests/unittests_zp_main.c index 9bd38c421c..0f8d71b268 100644 --- a/src/zoneparser/tests/unittests_zp_main.c +++ b/src/zoneparser/tests/unittests_zp_main.c @@ -1,6 +1,6 @@ #include <config.h> #include "knot/common.h" -#include "tests/libtap/tap_unit.h" +#include "common/libtap/tap_unit.h" // Units to test #include "zcompile_tests.c" -- GitLab