unbound: testcode/unitmain.c File Reference

unbound 0.1

Data Structures | Typedefs | Functions | Variables
unitmain.c File Reference

Unit test main program. More...

`#include "config.h"`
`#include "sldns/rrdef.h"`
`#include "sldns/keyraw.h"`
`#include "util/log.h"`
`#include "testcode/unitmain.h"`
`#include "util/alloc.h"`
`#include "util/net_help.h"`
`#include "util/config_file.h"`
`#include "util/rtt.h"`
`#include "util/timehist.h"`
`#include "iterator/iterator.h"`
`#include "libunbound/unbound.h"`
`#include "util/edns.h"`
`#include "util/random.h"`
`#include "respip/respip.h"`
`#include "services/localzone.h"`
`#include "util/data/packed_rrset.h"`
`#include "util/regional.h"`
`#include "sldns/sbuffer.h"`
`#include "util/data/dname.h"`
`#include "util/data/msgreply.h"`
`#include "util/data/msgencode.h"`
`#include "sldns/str2wire.h"`

## Data Structures
struct | addr_action
struct | addr_data

## Typedefs
typedef struct addr_action | addr_action_t
typedef struct addr_data | addr_data_t

## Functions
static void | alloc_test (void)
| test alloc code
static void | net_test (void)
| test net code
static void | config_memsize_test (void)
| test config_file: cfg_parse_memsize
static void | config_tag_test (void)
| test config_file: test tag code
static void | rtt_test (void)
| test RTT code
static void | edns_cookie_invalid_version (void)
static void | edns_cookie_invalid_hash (void)
static void | edns_cookie_rfc9018_a3_better (void)
static void | edns_cookie_rfc9018_a3 (void)
static void | edns_cookie_rfc9018_a2 (void)
static void | edns_cookie_rfc9018_a1 (void)
static void | edns_cookie_test (void)
| test interoperable DNS cookies (RFC9018)
static void | rnd_test (void)
| test randomness
static void | verify_respip_set_actions (struct respip_set *set, addr_action_t actions[], int actions_len)
| Utility function that verifies that the respip set has actions as expected.
static void | respip_conf_actions_test (void)
| Global respip actions test; apply raw config data and verify that all the nodes in the respip set, looked up by address, have expected actions.
static void | respip_view_conf_actions_test (void)
| Per-view respip actions test; apply raw configuration with two views and verify that actions are as expected in respip sets of both views.
static void | verify_rrset (struct respip_set *set, const char *ipstr, const char *rdatastr, size_t rdi, uint16_t type)
| find the respip address node in the specified tree (by address lookup) and verify type and address of the specified rdata (by index) in this node's rrset
static void | cfg_insert_respip_data (struct config_str2list **respip_actions, struct config_str2list **respip_data)
| Populate raw respip redirect config data, used for both global and view-based respip redirect test case.
static void | respip_conf_data_test (void)
| Test global respip redirect w/ data directives.
static void | respip_view_conf_data_test (void)
| Test per-view respip redirect w/ data directives.
static void | respip_test (void)
| respip unit tests
static void | edns_ede_encode_setup (struct edns_data *edns, struct regional *region)
static void | edns_ede_encode_encodedecode (struct query_info *qinfo, struct reply_info *rep, struct regional *region, struct edns_data *edns, sldns_buffer *pkt)
static void | edns_ede_encode_check (struct edns_data *edns, int *found_ede, int *found_ede_other, int *found_ede_txt, int *found_other_edns)
static void | edns_ede_encode_fit_test (struct query_info *qinfo, struct reply_info *rep, struct regional *region)
static void | edns_ede_encode_notxt_fit_test (struct query_info *qinfo, struct reply_info *rep, struct regional *region)
static void | edns_ede_encode_no_fit_test (struct query_info *qinfo, struct reply_info *rep, struct regional *region)
static void | edns_ede_answer_encode_test (void)
| test optional EDE encoding with various buffer available sizes
static void | compare_localzone_trees (struct local_zones *z1, struct local_zones *z2)
static void | localzone_parents_test (void)
static void | localzone_test (void)
| localzone unit tests
void | unit_show_func (const char *file, const char *func)
| we are now testing this function
void | unit_show_feature (const char *feature)
| we are testing this functionality
int | main (int argc, char *argv[])
| Main unit test program.

## Variables
int | testcount = 0
| number of tests done
static addr_data_t | config_response_ip_data []
| Dataset used to test redirect rrset initialization for both global and per-view respip redirect configuration.

## Detailed Description

Unit test main program.

Calls all the other unit tests. Exits with code 1 on a failure. 0 if all unit tests are successful.

## Function Documentation

## ◆ verify_respip_set_actions()

void verify_respip_set_actions | ( | struct respip_set * | set,
|  | addr_action_t | actions[],
|  | int | actions_len )
| static

Utility function that verifies that the respip set has actions as expected.

we have the node and the node has the correct action and has no data

References addr_tree_find(), rbtree_type::count, netblockstrtoaddr(), resp_addr::node, resp_addr_get_action(), resp_addr_get_rrset(), respip_set_get_tree(), and unit_assert.

Referenced by respip_conf_actions_test(), and respip_view_conf_actions_test().

## ◆ main()

int main | ( | int | argc,
|  | char * | argv[] )

Main unit test program.

Setup, teardown and report errors.

Parameters

  argc | arg count.
  argv | array of commandline arguments.

Returns
  program failure if test fails.

References alloc_test(), anchors_test(), authzone_test(), config_memsize_test(), config_tag_test(), dname_test(), doq_test(), edns_cookie_test(), edns_ede_answer_encode_test(), infra_test(), ldns_test(), localzone_test(), log_get_lock(), log_init(), lruhash_test(), msgparse_test(), neg_test(), net_test(), regional_test(), respip_test(), rnd_test(), RRSET_ROUNDROBIN, rtt_test(), slabhash_test(), tcpreuse_test(), testcount, verify_test(), and zonemd_test().

## Variable Documentation

## ◆ config_response_ip_data

addr_data_t config_response_ip_data[]
| static

Initial value:
= {
{"192.0.1.0/24", "A 1.2.3.4"},
{"192.0.1.0/24", "A 11.12.13.14"},
{"192.0.2.0/24", "CNAME www.example.com."},
{"2001:db8:1::/48", "AAAA 2001:db8:1::2:1"},
}

Dataset used to test redirect rrset initialization for both global and per-view respip redirect configuration.

Referenced by cfg_insert_respip_data().