]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Merge branch 'clean-bin-tests-v9_10' into 'v9_10'
authorEvan Hunt <each@isc.org>
Sat, 10 Mar 2018 03:31:09 +0000 (19:31 -0800)
committerEvan Hunt <each@isc.org>
Sat, 10 Mar 2018 06:49:58 +0000 (22:49 -0800)
clean up bin/tests, convert unit tests to ATF

Closes #115

See merge request isc-projects/bind9!93

1  2 
bin/tests/Makefile.in
bin/tests/system/rrl/tests.sh
lib/dns/tests/dnstest.c
lib/dns/tests/dnstest.h
lib/dns/tests/resolver_test.c

index 3e9205a817088ec25ed79f5e8f4344ba8a84d058,5726e2cfa17cccc2cbc98248c89b6d57f7b56bba..214b246428e00632f26e572c389d3cd607308b56
@@@ -48,89 -46,15 +46,15 @@@ TESTDIRS = syste
  # Test programs that are built by default:
  # cfg_test is needed for regenerating doc/misc/options
  # makejournal is needed by system tests
+ # wire_test is needed for fuzz testing
+ # other opptional test programs have been moved to ./optional
  
  # Alphabetically
- TARGETS =     @XTARGETS@ cfg_test@EXEEXT@ makejournal@EXEEXT@ \
-               mdig@EXEEXT@ wire_test@EXEEXT@
+ XTARGETS =    all_tests
+ TARGETS =     cfg_test@EXEEXT@ makejournal@EXEEXT@ \
 -              wire_test@EXEEXT@ @XTARGETS@
++              wire_test@EXEEXT@ @XTARGETS@ mdig@EXEEXT@
  
- # All the other tests are optional and not built by default.
- # Alphabetically
- XTARGETS =    adb_test@EXEEXT@ \
-               byaddr_test@EXEEXT@ \
-               backtrace_test@EXEEXT@ \
-               backtrace_test_nosymtbl@EXEEXT@ \
-               byname_test@EXEEXT@ \
-               compress_test@EXEEXT@ \
-               db_test@EXEEXT@ \
-               entropy_test@EXEEXT@ \
-               entropy2_test@EXEEXT@ \
-               gxba_test@EXEEXT@ \
-               gxbn_test@EXEEXT@ \
-               hash_test@EXEEXT@ \
-               fsaccess_test@EXEEXT@ \
-               inter_test@EXEEXT@ \
-               keyboard_test@EXEEXT@ \
-               lex_test@EXEEXT@ \
-               lfsr_test@EXEEXT@ \
-               log_test@EXEEXT@ \
-               lwres_test@EXEEXT@ \
-               lwresconf_test@EXEEXT@ \
-               master_test@EXEEXT@ \
-               mempool_test@EXEEXT@ \
-               name_test@EXEEXT@ \
-               nsecify@EXEEXT@ \
-               ratelimiter_test@EXEEXT@ \
-               rbt_test@EXEEXT@ \
-               rwlock_test@EXEEXT@ \
-               serial_test@EXEEXT@ \
-               shutdown_test@EXEEXT@ \
-               sig0_test@EXEEXT@ \
-               sock_test@EXEEXT@ \
-               sym_test@EXEEXT@ \
-               task_test@EXEEXT@ \
-               timer_test@EXEEXT@ \
-               wire_test@EXEEXT@ \
-               zone_test@EXEEXT@
- # Alphabetically
- SRCS =                cfg_test.c makejournal.c mdig.c wire_test.c ${XSRCS}
- XSRCS =               adb_test.c \
-               byaddr_test.c \
-               backtrace_test.c \
-               byname_test.c \
-               compress_test.c \
-               db_test.c \
-               entropy_test.c \
-               entropy2_test.c \
-               gxba_test.c \
-               gxbn_test.c \
-               hash_test.c \
-               fsaccess_test.c \
-               inter_test.c \
-               keyboard_test.c \
-               lex_test.c \
-               lfsr_test.c \
-               log_test.c \
-               lwres_test.c \
-               lwresconf_test.c \
-               master_test.c \
-               mempool_test.c \
-               name_test.c \
-               nsecify.c \
-               ratelimiter_test.c \
-               rbt_test.c \
-               rwlock_test.c \
-               serial_test.c \
-               shutdown_test.c \
-               sig0_test.c \
-               sock_test.c \
-               sym_test.c \
-               task_test.c \
-               timer_test.c \
-               wire_test.c \
-               zone_test.c
 -SRCS =                cfg_test.c makejournal.c wire_test.c
++SRCS =                cfg_test.c makejournal.c wire_test.c mdig.c
  
  @BIND9_MAKE_RULES@
  
index 11cd15b97d8151f4f61b293c3413ede3982ce891,11cd15b97d8151f4f61b293c3413ede3982ce891..7b62e2e388489b93ec792e8cb30d14818ec99453
@@@ -255,5 -255,5 +255,4 @@@ ckstats final dropped 5
  ckstats final truncated 23
  
  echo_i "exit status: $ret"
--#[ $status -eq 0 ] || exit 1
--[ $ret -eq 0 ] || echo_i "test failure overridden"
++[ $ret -eq 0 ] || exit 1
index 9aab2d1246d87491ae494124cd1e262d2b6ab61e,e753eb0e6239d5df5c2384eaa152e1417c442e15..83b7286e3ebc225a24e83bdc54f9177cc1450b45
@@@ -193,6 -191,6 +191,25 @@@ dns_test_end(void) 
                isc_mem_destroy(&mctx);
  }
  
++/*
++ * Create a view.
++ */
++isc_result_t
++dns_test_makeview(const char *name, dns_view_t **viewp) {
++      isc_result_t result;
++      dns_view_t *view = NULL;
++
++      CHECK(dns_view_create(mctx, dns_rdataclass_in, name, &view));
++      *viewp = view;
++
++      return (ISC_R_SUCCESS);
++
++ cleanup:
++      if (view != NULL)
++              dns_view_detach(&view);
++      return (result);
++}
++
  /*
   * Create a zone with origin 'name', return a pointer to the zone object in
   * 'zonep'.  If 'view' is set, add the zone to that view; otherwise, create
index 42d572a75decd924ad91acb0c7c396140abba74c,1ab9fa8eca0c54141ec5cc902c8444d54ca1fee0..223053b1cfefdf7d2239d2edc4753a7d1bd9bd30
@@@ -56,6 -56,6 +56,9 @@@ dns_test_begin(FILE *logfile, isc_boole
  void
  dns_test_end(void);
  
++isc_result_t
++dns_test_makeview(const char *name, dns_view_t **viewp);
++
  isc_result_t
  dns_test_makezone(const char *name, dns_zone_t **zonep, dns_view_t *view,
                                  isc_boolean_t keepview);
index 0000000000000000000000000000000000000000,67fbe05627359233966094db7bf746eb7820b687..f6e53b1f802a8f7d0d8b7601126606fcefd77a49
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,233 +1,233 @@@
 -      dns_resolver_settimeout(resolver, default_timeout + 100);
+ /*
+  * Copyright (C) 2018  Internet Systems Consortium, Inc. ("ISC")
+  *
+  * Permission to use, copy, modify, and/or distribute this software for any
+  * purpose with or without fee is hereby granted, provided that the above
+  * copyright notice and this permission notice appear in all copies.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  * PERFORMANCE OF THIS SOFTWARE.
+  */
+ /*! \file */
+ #include <config.h>
+ #include <atf-c.h>
+ #include <unistd.h>
+ #include <isc/app.h>
+ #include <isc/buffer.h>
+ #include <isc/socket.h>
+ #include <isc/task.h>
+ #include <isc/timer.h>
+ #include <dns/dispatch.h>
+ #include <dns/name.h>
+ #include <dns/resolver.h>
+ #include <dns/view.h>
+ #include "dnstest.h"
+ static dns_dispatchmgr_t *dispatchmgr = NULL;
+ static dns_dispatch_t *dispatch = NULL;
+ static dns_view_t *view = NULL;
+ static void
+ setup(void) {
+       isc_result_t result;
+       isc_sockaddr_t local;
+       result = dns_test_begin(NULL, ISC_TRUE);
+       ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = dns_dispatchmgr_create(mctx, NULL, &dispatchmgr);
+       ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = dns_test_makeview("view", &view);
+       ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       isc_sockaddr_any(&local);
+       result = dns_dispatch_getudp(dispatchmgr, socketmgr, taskmgr, &local,
+                                    4096, 100, 100, 100, 500, 0, 0,
+                                    &dispatch);
+       ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ }
+ static void
+ teardown(void) {
+       dns_dispatch_detach(&dispatch);
+       dns_view_detach(&view);
+       dns_dispatchmgr_destroy(&dispatchmgr);
+       dns_test_end();
+ }
+ static void
+ mkres(dns_resolver_t **resolverp) {
+       isc_result_t result;
+       result = dns_resolver_create(view, taskmgr, 1, 1,
+                           socketmgr, timermgr, 0,
+                           dispatchmgr, dispatch, NULL, resolverp);
+       ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ }
+ static void
+ destroy_resolver(dns_resolver_t **resolverp) {
+       dns_resolver_shutdown(*resolverp);
+       dns_resolver_detach(resolverp);
+ }
+ ATF_TC(create);
+ ATF_TC_HEAD(create, tc) {
+       atf_tc_set_md_var(tc, "descr", "dns_resolver_create");
+ }
+ ATF_TC_BODY(create, tc) {
+       dns_resolver_t *resolver = NULL;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ ATF_TC(gettimeout);
+ ATF_TC_HEAD(gettimeout, tc) {
+       atf_tc_set_md_var(tc, "descr", "dns_resolver_gettimeout");
+ }
+ ATF_TC_BODY(gettimeout, tc) {
+       dns_resolver_t *resolver = NULL;
+       unsigned int timeout;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       timeout = dns_resolver_gettimeout(resolver);
+       ATF_CHECK(timeout > 0);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ ATF_TC(settimeout);
+ ATF_TC_HEAD(settimeout, tc) {
+       atf_tc_set_md_var(tc, "descr", "dns_resolver_settimeout");
+ }
+ ATF_TC_BODY(settimeout, tc) {
+       dns_resolver_t *resolver = NULL;
+       unsigned int default_timeout, timeout;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       default_timeout = dns_resolver_gettimeout(resolver);
+       dns_resolver_settimeout(resolver, default_timeout + 1);
+       timeout = dns_resolver_gettimeout(resolver);
+       ATF_CHECK(timeout == default_timeout + 1);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ ATF_TC(settimeout_default);
+ ATF_TC_HEAD(settimeout_default, tc) {
+       atf_tc_set_md_var(tc, "descr", "dns_resolver_settimeout to default");
+ }
+ ATF_TC_BODY(settimeout_default, tc) {
+       dns_resolver_t *resolver = NULL;
+       unsigned int default_timeout, timeout;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       default_timeout = dns_resolver_gettimeout(resolver);
 -      ATF_CHECK_EQ(timeout, default_timeout + 100);
++      dns_resolver_settimeout(resolver, default_timeout + 10);
+       timeout = dns_resolver_gettimeout(resolver);
 -      dns_resolver_settimeout(resolver, 9000);
++      ATF_CHECK_EQ(timeout, default_timeout + 10);
+       dns_resolver_settimeout(resolver, 0);
+       timeout = dns_resolver_gettimeout(resolver);
+       ATF_CHECK_EQ(timeout, default_timeout);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ ATF_TC(settimeout_belowmin);
+ ATF_TC_HEAD(settimeout_belowmin, tc) {
+       atf_tc_set_md_var(tc, "descr",
+                         "dns_resolver_settimeout below minimum");
+ }
+ ATF_TC_BODY(settimeout_belowmin, tc) {
+       dns_resolver_t *resolver = NULL;
+       unsigned int default_timeout, timeout;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       default_timeout = dns_resolver_gettimeout(resolver);
++      dns_resolver_settimeout(resolver, 9);
+       timeout = dns_resolver_gettimeout(resolver);
+       ATF_CHECK_EQ(timeout, default_timeout);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ ATF_TC(settimeout_overmax);
+ ATF_TC_HEAD(settimeout_overmax, tc) {
+       atf_tc_set_md_var(tc, "descr", "dns_resolver_settimeout over maximum");
+ }
+ ATF_TC_BODY(settimeout_overmax, tc) {
+       dns_resolver_t *resolver = NULL;
+       unsigned int timeout;
+       UNUSED(tc);
+       setup();
+       mkres(&resolver);
+       dns_resolver_settimeout(resolver, 4000000);
+       timeout = dns_resolver_gettimeout(resolver);
+       ATF_CHECK(timeout < 4000000 && timeout > 0);
+       destroy_resolver(&resolver);
+       teardown();
+ }
+ /*
+  * Main
+  */
+ ATF_TP_ADD_TCS(tp) {
+       ATF_TP_ADD_TC(tp, create);
+       ATF_TP_ADD_TC(tp, gettimeout);
+       ATF_TP_ADD_TC(tp, settimeout);
+       ATF_TP_ADD_TC(tp, settimeout_default);
+       ATF_TP_ADD_TC(tp, settimeout_belowmin);
+       ATF_TP_ADD_TC(tp, settimeout_overmax);
+       return (atf_no_error());
+ }