diff --git a/Knot.files b/Knot.files index 5c6a988b3bc83a0862f07e0291a8b9bc7d2db566..0e97bd05764ae16f091fd70f0c434c4fb8a6a1d6 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 a5a334db85bf80651f907f83872ae143ea1a7f49..6dd334919738b384f772648cbf7dd75485b4dc3d 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 0000000000000000000000000000000000000000..0a008ce7c7e296cf752dc172618eb94e9680eef1 --- /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 d09409106e5a4d01e507bfcc48221d2243700831..f46118376997fc7f01103f0e4b5be81ced32db83 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 7b1b846320b974e452f6776a009c36f6dfd70959..56400ba164f74b3580fd37f263f22163c7b8043b 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 8f98d385c8cb81c394fc06a6038aa862f74434ad..6115ae410a8010ae86bfcbf6a0fe733a894c5992 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 7fd008ff7e98d779d74d8d46efdaacc5ed234e37..6f1281792808279b20ac7c082ebc447db30e015d 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 cb8fdfa9b9b262b78cf17dd819da13ced523aca4..ba69517e01b068b45e3f59506154eb7284d4a6c7 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 c61f1f85bf379761faf8097dde5bbbf8133e474d..d79cae57072ca730825e17a2d57970d93fc8373c 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 fc49d9bbec1298348d19e0440aed8a2c9dfdecf0..c62bec0f09ea5d678fb6e32d23eb768b7cbc5183 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 a4b4af01fabe00a831bb062ec2007dee2a2ea368..eebaf6934b8c040a8740111b92561f45c4b09b95 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 a0beda9b863db66889c36bc298c05cebf69342a9..340ca441b58d3bd3789fe8f1faebb38457042683 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 c409b81829f93188ba38a62fe87e2a9f88a00d4f..a3930cab0db985ddda2659ca3d8896febf4d1e48 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 44a96074eb70422567e11ae8aaf172867ad60f4d..25d8151f2eab20ba46698855ab88f53173062ca2 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 3d11996432fb58616274e91f07d2223c8d1c8f0b..24c62cba2d492edfc0dc88215b326df8742b0309 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 f1f9a3be3a3dc12339d31cbb9e1fa383d905dfa2..1ee13d555e8fc8b96b9c7e1c60c1482b1ca771bb 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 1c69c5c2b857ec431a643a28b8292d81ddf0174e..7491efaef4c1fdc4cf65d94039901544dc3597dd 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 1544e1e4b41ef3cfa2b80e9c6a12e797a51161e5..0e43be32d8d4298e535cbb6968a2d9c65ccf8579 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 98ccd420845d68f9d226168a65e62b85f3e3100b..6b57dc7ec8e3022ef87dd4998e9bc98d87b4c48a 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 18f4fe45f810bc2826ef37a153eaa0cd9e32f2e0..cab5c43a67c284e0a56fa4302a78670f2b391969 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 16affd55f3f88eeb7ab8d1643792cb1ab3da6dc7..2499dad25edf412c158b56f747e1f18816ef0624 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 0000000000000000000000000000000000000000..7f3067dcb5cc898d185f827908d877ed9d6e4726 --- /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 de6a3ecaee549dcf27f3ce9a2229d230f019aa5a..5237ce20155e0b18b5eff9e5e5284f545a6765c1 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 676cf771261b58b30ccaa87478fd1fb5ab391dcb..e18ff80bf4869e443545c9209507040715fd8f98 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 c6a8721d97db3d2211caa4e4dea38b880f7c5447..d8cb23089a31e859f4bc3183ef09314c82ad24b2 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 7982751eae8f1a0141769a0a95f0eed866edad38..7069dd7dd60f8ef3e403fc7639c8e4a9cb2a532b 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 11b9db890205c0bcec32e82e566309d8cd4aee98..933700261f9831b507e9489aac5f10cf8a2efff1 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 13e091fbc0b23b01f756149a05cef1074485aa2b..41f639e727de39668f5c7a20de635da92b5a4353 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 bad329931fa9f0a4e4ca20acc4069b3536d25d28..0000000000000000000000000000000000000000 --- 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 ba5f5ae6df941cc7be64412aefd183e6db527982..0000000000000000000000000000000000000000 --- 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 0b8472f5a508fecb83dcb1c2258374220185e4ce..5d6c14bae51356481786438cbf6bc832145575ad 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 9bd38c421cb884cdf71f5d9c7a92204d50a7fe0d..0f8d71b268e5d5cf4598361b8b730b9af573896b 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"