uhub/autotest/test.c

1005 lines
63 KiB
C

/* THIS FILE IS AUTOMATICALLY GENERATED BY EXOTIC - DO NOT EDIT THIS FILE! */
/* exotic/0.4 (Mon Nov 7 11:15:31 CET 2011) */
#define __EXOTIC__STANDALONE__
/*
* Exotic (EXtatic.Org Test InfrastuCture)
* Copyright (c) 2007, Jan Vidar Krey
*/
#ifndef EXO_TEST
#define EXO_TEST(NAME, block) int exotic_test_ ## NAME (void) block
#endif
#ifndef HAVE_EXOTIC_AUTOTEST_H
#define HAVE_EXOTIC_AUTOTEST_H
#ifdef __cplusplus
extern "C" {
#endif
typedef int(*exo_test_t)();
enum exo_toggle { cfg_default, cfg_off, cfg_on };
struct exotic_handle
{
enum exo_toggle config_show_summary;
enum exo_toggle config_show_pass;
enum exo_toggle config_show_fail;
unsigned int fail;
unsigned int pass;
struct exo_test_data* first;
struct exo_test_data* current;
};
extern int exotic_initialize(struct exotic_handle* handle, int argc, char** argv);
extern void exotic_add_test(struct exotic_handle* handle, exo_test_t, const char* name);
extern int exotic_run(struct exotic_handle* handle);
#ifdef __cplusplus
}
#endif
#endif /* HAVE_EXOTIC_AUTOTEST_H */
#include "test_commands.tcc"
#include "test_credentials.tcc"
#include "test_eventqueue.tcc"
#include "test_hub.tcc"
#include "test_inf.tcc"
#include "test_ipfilter.tcc"
#include "test_list.tcc"
#include "test_memory.tcc"
#include "test_message.tcc"
#include "test_misc.tcc"
#include "test_sid.tcc"
#include "test_tiger.tcc"
#include "test_timer.tcc"
#include "test_tokenizer.tcc"
#include "test_usermanager.tcc"
int main(int argc, char** argv)
{
struct exotic_handle handle;
if (exotic_initialize(&handle, argc, argv) == -1)
return -1;
/* Register the tests to be run */
exotic_add_test(&handle, &exotic_test_setup, "setup");
exotic_add_test(&handle, &exotic_test_command_setup_user, "command_setup_user");
exotic_add_test(&handle, &exotic_test_command_create, "command_create");
exotic_add_test(&handle, &exotic_test_command_access_1, "command_access_1");
exotic_add_test(&handle, &exotic_test_command_access_2, "command_access_2");
exotic_add_test(&handle, &exotic_test_command_access_3, "command_access_3");
exotic_add_test(&handle, &exotic_test_command_syntax_1, "command_syntax_1");
exotic_add_test(&handle, &exotic_test_command_syntax_2, "command_syntax_2");
exotic_add_test(&handle, &exotic_test_command_missing_args_1, "command_missing_args_1");
exotic_add_test(&handle, &exotic_test_command_missing_args_2, "command_missing_args_2");
exotic_add_test(&handle, &exotic_test_command_missing_args_3, "command_missing_args_3");
exotic_add_test(&handle, &exotic_test_command_number_1, "command_number_1");
exotic_add_test(&handle, &exotic_test_command_number_2, "command_number_2");
exotic_add_test(&handle, &exotic_test_command_number_3, "command_number_3");
exotic_add_test(&handle, &exotic_test_command_user_1, "command_user_1");
exotic_add_test(&handle, &exotic_test_command_user_2, "command_user_2");
exotic_add_test(&handle, &exotic_test_command_user_3, "command_user_3");
exotic_add_test(&handle, &exotic_test_command_user_4, "command_user_4");
exotic_add_test(&handle, &exotic_test_command_user_5, "command_user_5");
exotic_add_test(&handle, &exotic_test_command_command_1, "command_command_1");
exotic_add_test(&handle, &exotic_test_command_command_2, "command_command_2");
exotic_add_test(&handle, &exotic_test_command_command_3, "command_command_3");
exotic_add_test(&handle, &exotic_test_command_command_4, "command_command_4");
exotic_add_test(&handle, &exotic_test_command_command_5, "command_command_5");
exotic_add_test(&handle, &exotic_test_command_command_6, "command_command_6");
exotic_add_test(&handle, &exotic_test_command_command_7, "command_command_7");
exotic_add_test(&handle, &exotic_test_command_command_8, "command_command_8");
exotic_add_test(&handle, &exotic_test_command_cred_1, "command_cred_1");
exotic_add_test(&handle, &exotic_test_command_cred_2, "command_cred_2");
exotic_add_test(&handle, &exotic_test_command_cred_3, "command_cred_3");
exotic_add_test(&handle, &exotic_test_command_cred_4, "command_cred_4");
exotic_add_test(&handle, &exotic_test_command_cred_5, "command_cred_5");
exotic_add_test(&handle, &exotic_test_command_cred_6, "command_cred_6");
exotic_add_test(&handle, &exotic_test_command_cred_7, "command_cred_7");
exotic_add_test(&handle, &exotic_test_command_cred_8, "command_cred_8");
exotic_add_test(&handle, &exotic_test_command_parse_3, "command_parse_3");
exotic_add_test(&handle, &exotic_test_command_parse_4, "command_parse_4");
exotic_add_test(&handle, &exotic_test_command_argument_integer_1, "command_argument_integer_1");
exotic_add_test(&handle, &exotic_test_command_argument_integer_2, "command_argument_integer_2");
exotic_add_test(&handle, &exotic_test_command_argument_integer_3, "command_argument_integer_3");
exotic_add_test(&handle, &exotic_test_command_argument_user_1, "command_argument_user_1");
exotic_add_test(&handle, &exotic_test_command_argument_cid_1, "command_argument_cid_1");
exotic_add_test(&handle, &exotic_test_command_argument_cred_1, "command_argument_cred_1");
exotic_add_test(&handle, &exotic_test_command_argument_cred_2, "command_argument_cred_2");
exotic_add_test(&handle, &exotic_test_command_argument_cred_3, "command_argument_cred_3");
exotic_add_test(&handle, &exotic_test_command_argument_cred_4, "command_argument_cred_4");
exotic_add_test(&handle, &exotic_test_command_argument_cred_5, "command_argument_cred_5");
exotic_add_test(&handle, &exotic_test_command_argument_cred_6, "command_argument_cred_6");
exotic_add_test(&handle, &exotic_test_command_user_destroy, "command_user_destroy");
exotic_add_test(&handle, &exotic_test_command_destroy, "command_destroy");
exotic_add_test(&handle, &exotic_test_cleanup, "cleanup");
exotic_add_test(&handle, &exotic_test_cred_to_string_1, "cred_to_string_1");
exotic_add_test(&handle, &exotic_test_cred_to_string_2, "cred_to_string_2");
exotic_add_test(&handle, &exotic_test_cred_to_string_3, "cred_to_string_3");
exotic_add_test(&handle, &exotic_test_cred_to_string_4, "cred_to_string_4");
exotic_add_test(&handle, &exotic_test_cred_to_string_5, "cred_to_string_5");
exotic_add_test(&handle, &exotic_test_cred_to_string_6, "cred_to_string_6");
exotic_add_test(&handle, &exotic_test_cred_to_string_7, "cred_to_string_7");
exotic_add_test(&handle, &exotic_test_cred_to_string_8, "cred_to_string_8");
exotic_add_test(&handle, &exotic_test_cred_from_string_1, "cred_from_string_1");
exotic_add_test(&handle, &exotic_test_cred_from_string_2, "cred_from_string_2");
exotic_add_test(&handle, &exotic_test_cred_from_string_3, "cred_from_string_3");
exotic_add_test(&handle, &exotic_test_cred_from_string_4, "cred_from_string_4");
exotic_add_test(&handle, &exotic_test_cred_from_string_5, "cred_from_string_5");
exotic_add_test(&handle, &exotic_test_cred_from_string_6, "cred_from_string_6");
exotic_add_test(&handle, &exotic_test_cred_from_string_7, "cred_from_string_7");
exotic_add_test(&handle, &exotic_test_cred_from_string_8, "cred_from_string_8");
exotic_add_test(&handle, &exotic_test_cred_from_string_9, "cred_from_string_9");
exotic_add_test(&handle, &exotic_test_cred_from_string_10, "cred_from_string_10");
exotic_add_test(&handle, &exotic_test_eventqueue_init_1, "eventqueue_init_1");
exotic_add_test(&handle, &exotic_test_eventqueue_init_2, "eventqueue_init_2");
exotic_add_test(&handle, &exotic_test_eventqueue_post_1, "eventqueue_post_1");
exotic_add_test(&handle, &exotic_test_eventqueue_process_1, "eventqueue_process_1");
exotic_add_test(&handle, &exotic_test_eventqueue_size_1, "eventqueue_size_1");
exotic_add_test(&handle, &exotic_test_eventqueue_post_2, "eventqueue_post_2");
exotic_add_test(&handle, &exotic_test_eventqueue_size_2, "eventqueue_size_2");
exotic_add_test(&handle, &exotic_test_eventqueue_post_3, "eventqueue_post_3");
exotic_add_test(&handle, &exotic_test_eventqueue_size_3, "eventqueue_size_3");
exotic_add_test(&handle, &exotic_test_eventqueue_process_2, "eventqueue_process_2");
exotic_add_test(&handle, &exotic_test_eventqueue_size_4, "eventqueue_size_4");
exotic_add_test(&handle, &exotic_test_eventqueue_shutdown_1, "eventqueue_shutdown_1");
exotic_add_test(&handle, &exotic_test_hub_net_startup, "hub_net_startup");
exotic_add_test(&handle, &exotic_test_hub_config_initialize, "hub_config_initialize");
exotic_add_test(&handle, &exotic_test_hub_acl_initialize, "hub_acl_initialize");
exotic_add_test(&handle, &exotic_test_hub_service_initialize, "hub_service_initialize");
exotic_add_test(&handle, &exotic_test_hub_variables_startup, "hub_variables_startup");
exotic_add_test(&handle, &exotic_test_hub_variables_shutdown, "hub_variables_shutdown");
exotic_add_test(&handle, &exotic_test_hub_acl_shutdown, "hub_acl_shutdown");
exotic_add_test(&handle, &exotic_test_hub_config_shutdown, "hub_config_shutdown");
exotic_add_test(&handle, &exotic_test_hub_service_shutdown, "hub_service_shutdown");
exotic_add_test(&handle, &exotic_test_hub_net_shutdown, "hub_net_shutdown");
exotic_add_test(&handle, &exotic_test_inf_create_setup, "inf_create_setup");
exotic_add_test(&handle, &exotic_test_inf_ok_1, "inf_ok_1");
exotic_add_test(&handle, &exotic_test_inf_cid_1, "inf_cid_1");
exotic_add_test(&handle, &exotic_test_inf_cid_2, "inf_cid_2");
exotic_add_test(&handle, &exotic_test_inf_cid_3, "inf_cid_3");
exotic_add_test(&handle, &exotic_test_inf_cid_4, "inf_cid_4");
exotic_add_test(&handle, &exotic_test_inf_cid_5, "inf_cid_5");
exotic_add_test(&handle, &exotic_test_inf_cid_6, "inf_cid_6");
exotic_add_test(&handle, &exotic_test_inf_cid_7, "inf_cid_7");
exotic_add_test(&handle, &exotic_test_inf_cid_8, "inf_cid_8");
exotic_add_test(&handle, &exotic_test_inf_cid_9, "inf_cid_9");
exotic_add_test(&handle, &exotic_test_inf_pid_1, "inf_pid_1");
exotic_add_test(&handle, &exotic_test_inf_pid_2, "inf_pid_2");
exotic_add_test(&handle, &exotic_test_inf_pid_3, "inf_pid_3");
exotic_add_test(&handle, &exotic_test_inf_pid_4, "inf_pid_4");
exotic_add_test(&handle, &exotic_test_inf_pid_5, "inf_pid_5");
exotic_add_test(&handle, &exotic_test_inf_pid_6, "inf_pid_6");
exotic_add_test(&handle, &exotic_test_inf_pid_7, "inf_pid_7");
exotic_add_test(&handle, &exotic_test_inf_pid_8, "inf_pid_8");
exotic_add_test(&handle, &exotic_test_inf_pid_9, "inf_pid_9");
exotic_add_test(&handle, &exotic_test_inf_nick_01, "inf_nick_01");
exotic_add_test(&handle, &exotic_test_inf_nick_02, "inf_nick_02");
exotic_add_test(&handle, &exotic_test_inf_nick_03, "inf_nick_03");
exotic_add_test(&handle, &exotic_test_inf_nick_04, "inf_nick_04");
exotic_add_test(&handle, &exotic_test_inf_nick_05, "inf_nick_05");
exotic_add_test(&handle, &exotic_test_inf_nick_06, "inf_nick_06");
exotic_add_test(&handle, &exotic_test_inf_nick_07, "inf_nick_07");
exotic_add_test(&handle, &exotic_test_inf_nick_08, "inf_nick_08");
exotic_add_test(&handle, &exotic_test_inf_nick_09, "inf_nick_09");
exotic_add_test(&handle, &exotic_test_inf_nick_10, "inf_nick_10");
exotic_add_test(&handle, &exotic_test_inf_limits_1, "inf_limits_1");
exotic_add_test(&handle, &exotic_test_inf_limits_2, "inf_limits_2");
exotic_add_test(&handle, &exotic_test_inf_limits_3, "inf_limits_3");
exotic_add_test(&handle, &exotic_test_inf_limits_4, "inf_limits_4");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_setup, "inf_limit_hubs_setup");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_1, "inf_limit_hubs_1");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_2, "inf_limit_hubs_2");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_3, "inf_limit_hubs_3");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_4, "inf_limit_hubs_4");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_5, "inf_limit_hubs_5");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_6, "inf_limit_hubs_6");
exotic_add_test(&handle, &exotic_test_inf_limit_hubs_7, "inf_limit_hubs_7");
exotic_add_test(&handle, &exotic_test_inf_destroy_setup, "inf_destroy_setup");
exotic_add_test(&handle, &exotic_test_prepare_network, "prepare_network");
exotic_add_test(&handle, &exotic_test_check_ipv6, "check_ipv6");
exotic_add_test(&handle, &exotic_test_create_addresses_1, "create_addresses_1");
exotic_add_test(&handle, &exotic_test_create_addresses_2, "create_addresses_2");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_1, "ip_is_valid_ipv4_1");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_2, "ip_is_valid_ipv4_2");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_3, "ip_is_valid_ipv4_3");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_4, "ip_is_valid_ipv4_4");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_5, "ip_is_valid_ipv4_5");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_6, "ip_is_valid_ipv4_6");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_7, "ip_is_valid_ipv4_7");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_8, "ip_is_valid_ipv4_8");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv4_9, "ip_is_valid_ipv4_9");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv6_1, "ip_is_valid_ipv6_1");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv6_2, "ip_is_valid_ipv6_2");
exotic_add_test(&handle, &exotic_test_ip_is_valid_ipv6_3, "ip_is_valid_ipv6_3");
exotic_add_test(&handle, &exotic_test_ip4_compare_1, "ip4_compare_1");
exotic_add_test(&handle, &exotic_test_ip4_compare_2, "ip4_compare_2");
exotic_add_test(&handle, &exotic_test_ip4_compare_3, "ip4_compare_3");
exotic_add_test(&handle, &exotic_test_ip4_compare_4, "ip4_compare_4");
exotic_add_test(&handle, &exotic_test_ip4_compare_5, "ip4_compare_5");
exotic_add_test(&handle, &exotic_test_ip4_compare_6, "ip4_compare_6");
exotic_add_test(&handle, &exotic_test_ip6_compare_1, "ip6_compare_1");
exotic_add_test(&handle, &exotic_test_ip6_compare_2, "ip6_compare_2");
exotic_add_test(&handle, &exotic_test_ip6_compare_3, "ip6_compare_3");
exotic_add_test(&handle, &exotic_test_ip6_compare_4, "ip6_compare_4");
exotic_add_test(&handle, &exotic_test_ip6_compare_5, "ip6_compare_5");
exotic_add_test(&handle, &exotic_test_ip6_compare_6, "ip6_compare_6");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_0, "ipv4_lmask_create_0");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_1, "ipv4_lmask_create_1");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_2, "ipv4_lmask_create_2");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_3, "ipv4_lmask_create_3");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_4, "ipv4_lmask_create_4");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_5, "ipv4_lmask_create_5");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_6, "ipv4_lmask_create_6");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_7, "ipv4_lmask_create_7");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_8, "ipv4_lmask_create_8");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_9, "ipv4_lmask_create_9");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_10, "ipv4_lmask_create_10");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_11, "ipv4_lmask_create_11");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_12, "ipv4_lmask_create_12");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_13, "ipv4_lmask_create_13");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_14, "ipv4_lmask_create_14");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_15, "ipv4_lmask_create_15");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_16, "ipv4_lmask_create_16");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_17, "ipv4_lmask_create_17");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_18, "ipv4_lmask_create_18");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_19, "ipv4_lmask_create_19");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_20, "ipv4_lmask_create_20");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_21, "ipv4_lmask_create_21");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_22, "ipv4_lmask_create_22");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_23, "ipv4_lmask_create_23");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_24, "ipv4_lmask_create_24");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_25, "ipv4_lmask_create_25");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_26, "ipv4_lmask_create_26");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_27, "ipv4_lmask_create_27");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_28, "ipv4_lmask_create_28");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_29, "ipv4_lmask_create_29");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_30, "ipv4_lmask_create_30");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_31, "ipv4_lmask_create_31");
exotic_add_test(&handle, &exotic_test_ipv4_lmask_create_32, "ipv4_lmask_create_32");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_0, "ipv4_rmask_create_0");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_1, "ipv4_rmask_create_1");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_2, "ipv4_rmask_create_2");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_3, "ipv4_rmask_create_3");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_4, "ipv4_rmask_create_4");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_5, "ipv4_rmask_create_5");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_6, "ipv4_rmask_create_6");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_7, "ipv4_rmask_create_7");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_8, "ipv4_rmask_create_8");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_9, "ipv4_rmask_create_9");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_10, "ipv4_rmask_create_10");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_11, "ipv4_rmask_create_11");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_12, "ipv4_rmask_create_12");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_13, "ipv4_rmask_create_13");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_14, "ipv4_rmask_create_14");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_15, "ipv4_rmask_create_15");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_16, "ipv4_rmask_create_16");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_17, "ipv4_rmask_create_17");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_18, "ipv4_rmask_create_18");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_19, "ipv4_rmask_create_19");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_20, "ipv4_rmask_create_20");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_21, "ipv4_rmask_create_21");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_22, "ipv4_rmask_create_22");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_23, "ipv4_rmask_create_23");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_24, "ipv4_rmask_create_24");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_25, "ipv4_rmask_create_25");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_26, "ipv4_rmask_create_26");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_27, "ipv4_rmask_create_27");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_28, "ipv4_rmask_create_28");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_29, "ipv4_rmask_create_29");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_30, "ipv4_rmask_create_30");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_31, "ipv4_rmask_create_31");
exotic_add_test(&handle, &exotic_test_ipv4_rmask_create_32, "ipv4_rmask_create_32");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_0, "ip6_lmask_create_0");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_1, "ip6_lmask_create_1");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_2, "ip6_lmask_create_2");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_3, "ip6_lmask_create_3");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_4, "ip6_lmask_create_4");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_5, "ip6_lmask_create_5");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_6, "ip6_lmask_create_6");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_7, "ip6_lmask_create_7");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_8, "ip6_lmask_create_8");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_9, "ip6_lmask_create_9");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_10, "ip6_lmask_create_10");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_11, "ip6_lmask_create_11");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_12, "ip6_lmask_create_12");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_13, "ip6_lmask_create_13");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_14, "ip6_lmask_create_14");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_15, "ip6_lmask_create_15");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_16, "ip6_lmask_create_16");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_17, "ip6_lmask_create_17");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_18, "ip6_lmask_create_18");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_19, "ip6_lmask_create_19");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_20, "ip6_lmask_create_20");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_21, "ip6_lmask_create_21");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_22, "ip6_lmask_create_22");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_23, "ip6_lmask_create_23");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_24, "ip6_lmask_create_24");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_25, "ip6_lmask_create_25");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_26, "ip6_lmask_create_26");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_27, "ip6_lmask_create_27");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_28, "ip6_lmask_create_28");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_29, "ip6_lmask_create_29");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_30, "ip6_lmask_create_30");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_31, "ip6_lmask_create_31");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_32, "ip6_lmask_create_32");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_33, "ip6_lmask_create_33");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_34, "ip6_lmask_create_34");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_35, "ip6_lmask_create_35");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_36, "ip6_lmask_create_36");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_37, "ip6_lmask_create_37");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_38, "ip6_lmask_create_38");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_39, "ip6_lmask_create_39");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_40, "ip6_lmask_create_40");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_41, "ip6_lmask_create_41");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_42, "ip6_lmask_create_42");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_43, "ip6_lmask_create_43");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_44, "ip6_lmask_create_44");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_45, "ip6_lmask_create_45");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_46, "ip6_lmask_create_46");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_47, "ip6_lmask_create_47");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_48, "ip6_lmask_create_48");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_49, "ip6_lmask_create_49");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_50, "ip6_lmask_create_50");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_51, "ip6_lmask_create_51");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_52, "ip6_lmask_create_52");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_53, "ip6_lmask_create_53");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_54, "ip6_lmask_create_54");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_55, "ip6_lmask_create_55");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_56, "ip6_lmask_create_56");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_57, "ip6_lmask_create_57");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_58, "ip6_lmask_create_58");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_59, "ip6_lmask_create_59");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_60, "ip6_lmask_create_60");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_61, "ip6_lmask_create_61");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_62, "ip6_lmask_create_62");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_63, "ip6_lmask_create_63");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_64, "ip6_lmask_create_64");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_65, "ip6_lmask_create_65");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_66, "ip6_lmask_create_66");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_67, "ip6_lmask_create_67");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_68, "ip6_lmask_create_68");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_69, "ip6_lmask_create_69");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_70, "ip6_lmask_create_70");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_71, "ip6_lmask_create_71");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_72, "ip6_lmask_create_72");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_73, "ip6_lmask_create_73");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_74, "ip6_lmask_create_74");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_75, "ip6_lmask_create_75");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_76, "ip6_lmask_create_76");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_77, "ip6_lmask_create_77");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_78, "ip6_lmask_create_78");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_79, "ip6_lmask_create_79");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_80, "ip6_lmask_create_80");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_81, "ip6_lmask_create_81");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_82, "ip6_lmask_create_82");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_83, "ip6_lmask_create_83");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_84, "ip6_lmask_create_84");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_85, "ip6_lmask_create_85");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_86, "ip6_lmask_create_86");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_87, "ip6_lmask_create_87");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_88, "ip6_lmask_create_88");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_89, "ip6_lmask_create_89");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_90, "ip6_lmask_create_90");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_91, "ip6_lmask_create_91");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_92, "ip6_lmask_create_92");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_93, "ip6_lmask_create_93");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_94, "ip6_lmask_create_94");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_95, "ip6_lmask_create_95");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_96, "ip6_lmask_create_96");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_97, "ip6_lmask_create_97");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_98, "ip6_lmask_create_98");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_99, "ip6_lmask_create_99");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_100, "ip6_lmask_create_100");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_101, "ip6_lmask_create_101");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_102, "ip6_lmask_create_102");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_103, "ip6_lmask_create_103");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_104, "ip6_lmask_create_104");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_105, "ip6_lmask_create_105");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_106, "ip6_lmask_create_106");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_107, "ip6_lmask_create_107");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_108, "ip6_lmask_create_108");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_109, "ip6_lmask_create_109");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_110, "ip6_lmask_create_110");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_111, "ip6_lmask_create_111");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_112, "ip6_lmask_create_112");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_113, "ip6_lmask_create_113");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_114, "ip6_lmask_create_114");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_115, "ip6_lmask_create_115");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_116, "ip6_lmask_create_116");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_117, "ip6_lmask_create_117");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_118, "ip6_lmask_create_118");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_119, "ip6_lmask_create_119");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_120, "ip6_lmask_create_120");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_121, "ip6_lmask_create_121");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_122, "ip6_lmask_create_122");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_123, "ip6_lmask_create_123");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_124, "ip6_lmask_create_124");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_125, "ip6_lmask_create_125");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_126, "ip6_lmask_create_126");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_127, "ip6_lmask_create_127");
exotic_add_test(&handle, &exotic_test_ip6_lmask_create_128, "ip6_lmask_create_128");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_0, "ip6_rmask_create_0");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_1, "ip6_rmask_create_1");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_2, "ip6_rmask_create_2");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_3, "ip6_rmask_create_3");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_4, "ip6_rmask_create_4");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_5, "ip6_rmask_create_5");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_6, "ip6_rmask_create_6");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_7, "ip6_rmask_create_7");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_8, "ip6_rmask_create_8");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_9, "ip6_rmask_create_9");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_10, "ip6_rmask_create_10");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_11, "ip6_rmask_create_11");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_12, "ip6_rmask_create_12");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_13, "ip6_rmask_create_13");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_14, "ip6_rmask_create_14");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_15, "ip6_rmask_create_15");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_16, "ip6_rmask_create_16");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_17, "ip6_rmask_create_17");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_18, "ip6_rmask_create_18");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_19, "ip6_rmask_create_19");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_20, "ip6_rmask_create_20");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_21, "ip6_rmask_create_21");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_22, "ip6_rmask_create_22");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_23, "ip6_rmask_create_23");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_24, "ip6_rmask_create_24");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_25, "ip6_rmask_create_25");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_26, "ip6_rmask_create_26");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_27, "ip6_rmask_create_27");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_28, "ip6_rmask_create_28");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_29, "ip6_rmask_create_29");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_30, "ip6_rmask_create_30");
exotic_add_test(&handle, &exotic_test_ip6_rmask_create_31, "ip6_rmask_create_31");
exotic_add_test(&handle, &exotic_test_check_ban_setup_1, "check_ban_setup_1");
exotic_add_test(&handle, &exotic_test_check_ban_ipv4_1, "check_ban_ipv4_1");
exotic_add_test(&handle, &exotic_test_check_ban_ipv4_2, "check_ban_ipv4_2");
exotic_add_test(&handle, &exotic_test_check_ban_ipv4_3, "check_ban_ipv4_3");
exotic_add_test(&handle, &exotic_test_check_ban_ipv4_4, "check_ban_ipv4_4");
exotic_add_test(&handle, &exotic_test_check_ban_ipv4_5, "check_ban_ipv4_5");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_1, "check_ban_ipv6_1");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_2, "check_ban_ipv6_2");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_3, "check_ban_ipv6_3");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_4, "check_ban_ipv6_4");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_5, "check_ban_ipv6_5");
exotic_add_test(&handle, &exotic_test_check_ban_ipv6_6, "check_ban_ipv6_6");
exotic_add_test(&handle, &exotic_test_check_ban_afmix_1, "check_ban_afmix_1");
exotic_add_test(&handle, &exotic_test_check_ban_afmix_2, "check_ban_afmix_2");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_AND_1, "ip4_bitwise_AND_1");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_AND_2, "ip4_bitwise_AND_2");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_AND_3, "ip4_bitwise_AND_3");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_AND_4, "ip4_bitwise_AND_4");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_AND_5, "ip4_bitwise_AND_5");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_OR_1, "ip4_bitwise_OR_1");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_OR_2, "ip4_bitwise_OR_2");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_OR_3, "ip4_bitwise_OR_3");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_OR_4, "ip4_bitwise_OR_4");
exotic_add_test(&handle, &exotic_test_ip4_bitwise_OR_5, "ip4_bitwise_OR_5");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_AND_1, "ip6_bitwise_AND_1");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_AND_2, "ip6_bitwise_AND_2");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_AND_3, "ip6_bitwise_AND_3");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_OR_1, "ip6_bitwise_OR_1");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_OR_2, "ip6_bitwise_OR_2");
exotic_add_test(&handle, &exotic_test_ip6_bitwise_OR_3, "ip6_bitwise_OR_3");
exotic_add_test(&handle, &exotic_test_ip_range_1, "ip_range_1");
exotic_add_test(&handle, &exotic_test_ip_range_2, "ip_range_2");
exotic_add_test(&handle, &exotic_test_ip_range_3, "ip_range_3");
exotic_add_test(&handle, &exotic_test_ip_range_4, "ip_range_4");
exotic_add_test(&handle, &exotic_test_shutdown_network, "shutdown_network");
exotic_add_test(&handle, &exotic_test_list_create_destroy, "list_create_destroy");
exotic_add_test(&handle, &exotic_test_list_create, "list_create");
exotic_add_test(&handle, &exotic_test_list_append_1, "list_append_1");
exotic_add_test(&handle, &exotic_test_list_remove_1, "list_remove_1");
exotic_add_test(&handle, &exotic_test_list_append_2, "list_append_2");
exotic_add_test(&handle, &exotic_test_list_remove_2, "list_remove_2");
exotic_add_test(&handle, &exotic_test_list_remove_3, "list_remove_3");
exotic_add_test(&handle, &exotic_test_list_remove_4, "list_remove_4");
exotic_add_test(&handle, &exotic_test_list_append_3, "list_append_3");
exotic_add_test(&handle, &exotic_test_list_append_4, "list_append_4");
exotic_add_test(&handle, &exotic_test_list_remove_5, "list_remove_5");
exotic_add_test(&handle, &exotic_test_list_get_index_1, "list_get_index_1");
exotic_add_test(&handle, &exotic_test_list_get_index_2, "list_get_index_2");
exotic_add_test(&handle, &exotic_test_list_get_index_3, "list_get_index_3");
exotic_add_test(&handle, &exotic_test_list_get_index_4, "list_get_index_4");
exotic_add_test(&handle, &exotic_test_list_get_first_1, "list_get_first_1");
exotic_add_test(&handle, &exotic_test_list_get_first_next_1, "list_get_first_next_1");
exotic_add_test(&handle, &exotic_test_list_get_first_next_2, "list_get_first_next_2");
exotic_add_test(&handle, &exotic_test_list_get_last_1, "list_get_last_1");
exotic_add_test(&handle, &exotic_test_list_get_last_prev_1, "list_get_last_prev_1");
exotic_add_test(&handle, &exotic_test_list_get_last_prev_2, "list_get_last_prev_2");
exotic_add_test(&handle, &exotic_test_list_get_last_prev_next_1, "list_get_last_prev_next_1");
exotic_add_test(&handle, &exotic_test_list_clear, "list_clear");
exotic_add_test(&handle, &exotic_test_list_destroy_1, "list_destroy_1");
exotic_add_test(&handle, &exotic_test_list_destroy_2, "list_destroy_2");
exotic_add_test(&handle, &exotic_test_test_message_refc_1, "test_message_refc_1");
exotic_add_test(&handle, &exotic_test_test_message_refc_2, "test_message_refc_2");
exotic_add_test(&handle, &exotic_test_test_message_refc_3, "test_message_refc_3");
exotic_add_test(&handle, &exotic_test_test_message_refc_4, "test_message_refc_4");
exotic_add_test(&handle, &exotic_test_test_message_refc_5, "test_message_refc_5");
exotic_add_test(&handle, &exotic_test_test_message_refc_6, "test_message_refc_6");
exotic_add_test(&handle, &exotic_test_test_message_refc_7, "test_message_refc_7");
exotic_add_test(&handle, &exotic_test_adc_message_first, "adc_message_first");
exotic_add_test(&handle, &exotic_test_adc_message_parse_1, "adc_message_parse_1");
exotic_add_test(&handle, &exotic_test_adc_message_parse_2, "adc_message_parse_2");
exotic_add_test(&handle, &exotic_test_adc_message_parse_3, "adc_message_parse_3");
exotic_add_test(&handle, &exotic_test_adc_message_parse_4, "adc_message_parse_4");
exotic_add_test(&handle, &exotic_test_adc_message_parse_5, "adc_message_parse_5");
exotic_add_test(&handle, &exotic_test_adc_message_parse_6, "adc_message_parse_6");
exotic_add_test(&handle, &exotic_test_adc_message_parse_7, "adc_message_parse_7");
exotic_add_test(&handle, &exotic_test_adc_message_parse_8, "adc_message_parse_8");
exotic_add_test(&handle, &exotic_test_adc_message_parse_9, "adc_message_parse_9");
exotic_add_test(&handle, &exotic_test_adc_message_parse_10, "adc_message_parse_10");
exotic_add_test(&handle, &exotic_test_adc_message_parse_11, "adc_message_parse_11");
exotic_add_test(&handle, &exotic_test_adc_message_parse_12, "adc_message_parse_12");
exotic_add_test(&handle, &exotic_test_adc_message_parse_13, "adc_message_parse_13");
exotic_add_test(&handle, &exotic_test_adc_message_parse_14, "adc_message_parse_14");
exotic_add_test(&handle, &exotic_test_adc_message_parse_15, "adc_message_parse_15");
exotic_add_test(&handle, &exotic_test_adc_message_parse_16, "adc_message_parse_16");
exotic_add_test(&handle, &exotic_test_adc_message_parse_17, "adc_message_parse_17");
exotic_add_test(&handle, &exotic_test_adc_message_parse_18, "adc_message_parse_18");
exotic_add_test(&handle, &exotic_test_adc_message_parse_19, "adc_message_parse_19");
exotic_add_test(&handle, &exotic_test_adc_message_parse_20, "adc_message_parse_20");
exotic_add_test(&handle, &exotic_test_adc_message_parse_21, "adc_message_parse_21");
exotic_add_test(&handle, &exotic_test_adc_message_parse_22, "adc_message_parse_22");
exotic_add_test(&handle, &exotic_test_adc_message_parse_23, "adc_message_parse_23");
exotic_add_test(&handle, &exotic_test_adc_message_parse_24, "adc_message_parse_24");
exotic_add_test(&handle, &exotic_test_adc_message_add_arg_1, "adc_message_add_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_add_arg_2, "adc_message_add_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_remove_arg_1, "adc_message_remove_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_remove_arg_2, "adc_message_remove_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_remove_arg_3, "adc_message_remove_arg_3");
exotic_add_test(&handle, &exotic_test_adc_message_remove_arg_4, "adc_message_remove_arg_4");
exotic_add_test(&handle, &exotic_test_adc_message_replace_arg_1, "adc_message_replace_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_replace_arg_2, "adc_message_replace_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_replace_arg_3, "adc_message_replace_arg_3");
exotic_add_test(&handle, &exotic_test_adc_message_get_arg_1, "adc_message_get_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_get_arg_2, "adc_message_get_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_get_arg_3, "adc_message_get_arg_3");
exotic_add_test(&handle, &exotic_test_adc_message_get_arg_4, "adc_message_get_arg_4");
exotic_add_test(&handle, &exotic_test_adc_message_get_named_arg_1, "adc_message_get_named_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_get_named_arg_2, "adc_message_get_named_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_get_named_arg_3, "adc_message_get_named_arg_3");
exotic_add_test(&handle, &exotic_test_adc_message_get_named_arg_4, "adc_message_get_named_arg_4");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_1, "adc_message_has_named_arg_1");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_2, "adc_message_has_named_arg_2");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_3, "adc_message_has_named_arg_3");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_4, "adc_message_has_named_arg_4");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_5, "adc_message_has_named_arg_5");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_6, "adc_message_has_named_arg_6");
exotic_add_test(&handle, &exotic_test_adc_message_has_named_arg_7, "adc_message_has_named_arg_7");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_1, "adc_message_terminate_1");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_2, "adc_message_terminate_2");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_3, "adc_message_terminate_3");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_4, "adc_message_terminate_4");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_5, "adc_message_terminate_5");
exotic_add_test(&handle, &exotic_test_adc_message_terminate_6, "adc_message_terminate_6");
exotic_add_test(&handle, &exotic_test_adc_message_escape_1, "adc_message_escape_1");
exotic_add_test(&handle, &exotic_test_adc_message_escape_2, "adc_message_escape_2");
exotic_add_test(&handle, &exotic_test_adc_message_escape_3, "adc_message_escape_3");
exotic_add_test(&handle, &exotic_test_adc_message_copy_1, "adc_message_copy_1");
exotic_add_test(&handle, &exotic_test_adc_message_copy_2, "adc_message_copy_2");
exotic_add_test(&handle, &exotic_test_adc_message_copy_3, "adc_message_copy_3");
exotic_add_test(&handle, &exotic_test_adc_message_copy_4, "adc_message_copy_4");
exotic_add_test(&handle, &exotic_test_adc_message_update_1, "adc_message_update_1");
exotic_add_test(&handle, &exotic_test_adc_message_update_2, "adc_message_update_2");
exotic_add_test(&handle, &exotic_test_adc_message_update_3, "adc_message_update_3");
exotic_add_test(&handle, &exotic_test_adc_message_update_4, "adc_message_update_4");
exotic_add_test(&handle, &exotic_test_adc_message_update_4_cleanup, "adc_message_update_4_cleanup");
exotic_add_test(&handle, &exotic_test_adc_message_empty_1, "adc_message_empty_1");
exotic_add_test(&handle, &exotic_test_adc_message_empty_2, "adc_message_empty_2");
exotic_add_test(&handle, &exotic_test_adc_message_empty_3, "adc_message_empty_3");
exotic_add_test(&handle, &exotic_test_adc_message_last, "adc_message_last");
exotic_add_test(&handle, &exotic_test_is_num_0, "is_num_0");
exotic_add_test(&handle, &exotic_test_is_num_1, "is_num_1");
exotic_add_test(&handle, &exotic_test_is_num_2, "is_num_2");
exotic_add_test(&handle, &exotic_test_is_num_3, "is_num_3");
exotic_add_test(&handle, &exotic_test_is_num_4, "is_num_4");
exotic_add_test(&handle, &exotic_test_is_num_5, "is_num_5");
exotic_add_test(&handle, &exotic_test_is_num_6, "is_num_6");
exotic_add_test(&handle, &exotic_test_is_num_7, "is_num_7");
exotic_add_test(&handle, &exotic_test_is_num_8, "is_num_8");
exotic_add_test(&handle, &exotic_test_is_num_9, "is_num_9");
exotic_add_test(&handle, &exotic_test_is_num_10, "is_num_10");
exotic_add_test(&handle, &exotic_test_is_num_11, "is_num_11");
exotic_add_test(&handle, &exotic_test_is_space_1, "is_space_1");
exotic_add_test(&handle, &exotic_test_is_space_2, "is_space_2");
exotic_add_test(&handle, &exotic_test_is_white_space_1, "is_white_space_1");
exotic_add_test(&handle, &exotic_test_is_white_space_2, "is_white_space_2");
exotic_add_test(&handle, &exotic_test_is_white_space_3, "is_white_space_3");
exotic_add_test(&handle, &exotic_test_is_white_space_4, "is_white_space_4");
exotic_add_test(&handle, &exotic_test_itoa_1, "itoa_1");
exotic_add_test(&handle, &exotic_test_itoa_2, "itoa_2");
exotic_add_test(&handle, &exotic_test_itoa_3, "itoa_3");
exotic_add_test(&handle, &exotic_test_itoa_4, "itoa_4");
exotic_add_test(&handle, &exotic_test_itoa_5, "itoa_5");
exotic_add_test(&handle, &exotic_test_itoa_6, "itoa_6");
exotic_add_test(&handle, &exotic_test_itoa_7, "itoa_7");
exotic_add_test(&handle, &exotic_test_itoa_8, "itoa_8");
exotic_add_test(&handle, &exotic_test_base32_valid_1, "base32_valid_1");
exotic_add_test(&handle, &exotic_test_base32_valid_2, "base32_valid_2");
exotic_add_test(&handle, &exotic_test_base32_valid_3, "base32_valid_3");
exotic_add_test(&handle, &exotic_test_base32_valid_4, "base32_valid_4");
exotic_add_test(&handle, &exotic_test_base32_valid_5, "base32_valid_5");
exotic_add_test(&handle, &exotic_test_base32_valid_6, "base32_valid_6");
exotic_add_test(&handle, &exotic_test_base32_valid_7, "base32_valid_7");
exotic_add_test(&handle, &exotic_test_base32_valid_8, "base32_valid_8");
exotic_add_test(&handle, &exotic_test_base32_valid_9, "base32_valid_9");
exotic_add_test(&handle, &exotic_test_base32_valid_10, "base32_valid_10");
exotic_add_test(&handle, &exotic_test_base32_valid_11, "base32_valid_11");
exotic_add_test(&handle, &exotic_test_base32_valid_12, "base32_valid_12");
exotic_add_test(&handle, &exotic_test_base32_valid_13, "base32_valid_13");
exotic_add_test(&handle, &exotic_test_base32_valid_14, "base32_valid_14");
exotic_add_test(&handle, &exotic_test_base32_valid_15, "base32_valid_15");
exotic_add_test(&handle, &exotic_test_base32_valid_16, "base32_valid_16");
exotic_add_test(&handle, &exotic_test_base32_valid_17, "base32_valid_17");
exotic_add_test(&handle, &exotic_test_base32_valid_18, "base32_valid_18");
exotic_add_test(&handle, &exotic_test_base32_valid_19, "base32_valid_19");
exotic_add_test(&handle, &exotic_test_base32_valid_20, "base32_valid_20");
exotic_add_test(&handle, &exotic_test_base32_valid_21, "base32_valid_21");
exotic_add_test(&handle, &exotic_test_base32_valid_22, "base32_valid_22");
exotic_add_test(&handle, &exotic_test_base32_valid_23, "base32_valid_23");
exotic_add_test(&handle, &exotic_test_base32_valid_24, "base32_valid_24");
exotic_add_test(&handle, &exotic_test_base32_valid_25, "base32_valid_25");
exotic_add_test(&handle, &exotic_test_base32_valid_26, "base32_valid_26");
exotic_add_test(&handle, &exotic_test_base32_valid_27, "base32_valid_27");
exotic_add_test(&handle, &exotic_test_base32_valid_28, "base32_valid_28");
exotic_add_test(&handle, &exotic_test_base32_valid_29, "base32_valid_29");
exotic_add_test(&handle, &exotic_test_base32_valid_30, "base32_valid_30");
exotic_add_test(&handle, &exotic_test_base32_valid_31, "base32_valid_31");
exotic_add_test(&handle, &exotic_test_base32_valid_32, "base32_valid_32");
exotic_add_test(&handle, &exotic_test_base32_invalid_1, "base32_invalid_1");
exotic_add_test(&handle, &exotic_test_base32_invalid_2, "base32_invalid_2");
exotic_add_test(&handle, &exotic_test_base32_invalid_3, "base32_invalid_3");
exotic_add_test(&handle, &exotic_test_base32_invalid_4, "base32_invalid_4");
exotic_add_test(&handle, &exotic_test_base32_invalid_5, "base32_invalid_5");
exotic_add_test(&handle, &exotic_test_base32_invalid_6, "base32_invalid_6");
exotic_add_test(&handle, &exotic_test_base32_invalid_7, "base32_invalid_7");
exotic_add_test(&handle, &exotic_test_base32_invalid_8, "base32_invalid_8");
exotic_add_test(&handle, &exotic_test_base32_invalid_9, "base32_invalid_9");
exotic_add_test(&handle, &exotic_test_base32_invalid_10, "base32_invalid_10");
exotic_add_test(&handle, &exotic_test_base32_invalid_11, "base32_invalid_11");
exotic_add_test(&handle, &exotic_test_base32_invalid_12, "base32_invalid_12");
exotic_add_test(&handle, &exotic_test_base32_invalid_13, "base32_invalid_13");
exotic_add_test(&handle, &exotic_test_base32_invalid_14, "base32_invalid_14");
exotic_add_test(&handle, &exotic_test_base32_invalid_15, "base32_invalid_15");
exotic_add_test(&handle, &exotic_test_base32_invalid_16, "base32_invalid_16");
exotic_add_test(&handle, &exotic_test_base32_invalid_17, "base32_invalid_17");
exotic_add_test(&handle, &exotic_test_base32_invalid_18, "base32_invalid_18");
exotic_add_test(&handle, &exotic_test_base32_invalid_19, "base32_invalid_19");
exotic_add_test(&handle, &exotic_test_base32_invalid_20, "base32_invalid_20");
exotic_add_test(&handle, &exotic_test_base32_invalid_21, "base32_invalid_21");
exotic_add_test(&handle, &exotic_test_base32_invalid_22, "base32_invalid_22");
exotic_add_test(&handle, &exotic_test_base32_invalid_23, "base32_invalid_23");
exotic_add_test(&handle, &exotic_test_base32_invalid_24, "base32_invalid_24");
exotic_add_test(&handle, &exotic_test_base32_invalid_25, "base32_invalid_25");
exotic_add_test(&handle, &exotic_test_base32_invalid_26, "base32_invalid_26");
exotic_add_test(&handle, &exotic_test_base32_invalid_27, "base32_invalid_27");
exotic_add_test(&handle, &exotic_test_base32_invalid_28, "base32_invalid_28");
exotic_add_test(&handle, &exotic_test_base32_invalid_29, "base32_invalid_29");
exotic_add_test(&handle, &exotic_test_base32_invalid_30, "base32_invalid_30");
exotic_add_test(&handle, &exotic_test_base32_invalid_31, "base32_invalid_31");
exotic_add_test(&handle, &exotic_test_utf8_valid_1, "utf8_valid_1");
exotic_add_test(&handle, &exotic_test_utf8_valid_2, "utf8_valid_2");
exotic_add_test(&handle, &exotic_test_utf8_valid_3, "utf8_valid_3");
exotic_add_test(&handle, &exotic_test_utf8_valid_4, "utf8_valid_4");
exotic_add_test(&handle, &exotic_test_utf8_valid_5, "utf8_valid_5");
exotic_add_test(&handle, &exotic_test_utf8_valid_6, "utf8_valid_6");
exotic_add_test(&handle, &exotic_test_utf8_valid_7, "utf8_valid_7");
exotic_add_test(&handle, &exotic_test_utf8_valid_8, "utf8_valid_8");
exotic_add_test(&handle, &exotic_test_utf8_valid_9, "utf8_valid_9");
exotic_add_test(&handle, &exotic_test_utf8_valid_10, "utf8_valid_10");
exotic_add_test(&handle, &exotic_test_utf8_valid_11, "utf8_valid_11");
exotic_add_test(&handle, &exotic_test_utf8_valid_12, "utf8_valid_12");
exotic_add_test(&handle, &exotic_test_sid_create_pool, "sid_create_pool");
exotic_add_test(&handle, &exotic_test_sid_check_0a, "sid_check_0a");
exotic_add_test(&handle, &exotic_test_sid_check_0b, "sid_check_0b");
exotic_add_test(&handle, &exotic_test_sid_alloc_1, "sid_alloc_1");
exotic_add_test(&handle, &exotic_test_sid_check_1a, "sid_check_1a");
exotic_add_test(&handle, &exotic_test_sid_check_1b, "sid_check_1b");
exotic_add_test(&handle, &exotic_test_sid_alloc_2, "sid_alloc_2");
exotic_add_test(&handle, &exotic_test_sid_check_2, "sid_check_2");
exotic_add_test(&handle, &exotic_test_sid_alloc_3, "sid_alloc_3");
exotic_add_test(&handle, &exotic_test_sid_check_3, "sid_check_3");
exotic_add_test(&handle, &exotic_test_sid_alloc_4, "sid_alloc_4");
exotic_add_test(&handle, &exotic_test_sid_check_4, "sid_check_4");
exotic_add_test(&handle, &exotic_test_sid_alloc_5, "sid_alloc_5");
exotic_add_test(&handle, &exotic_test_sid_check_6, "sid_check_6");
exotic_add_test(&handle, &exotic_test_sid_list_all_1, "sid_list_all_1");
exotic_add_test(&handle, &exotic_test_sid_remove_1, "sid_remove_1");
exotic_add_test(&handle, &exotic_test_sid_remove_2, "sid_remove_2");
exotic_add_test(&handle, &exotic_test_sid_remove_3, "sid_remove_3");
exotic_add_test(&handle, &exotic_test_sid_remove_4, "sid_remove_4");
exotic_add_test(&handle, &exotic_test_sid_destroy_pool, "sid_destroy_pool");
exotic_add_test(&handle, &exotic_test_hash_tiger_1, "hash_tiger_1");
exotic_add_test(&handle, &exotic_test_hash_tiger_2, "hash_tiger_2");
exotic_add_test(&handle, &exotic_test_hash_tiger_3, "hash_tiger_3");
exotic_add_test(&handle, &exotic_test_hash_tiger_4, "hash_tiger_4");
exotic_add_test(&handle, &exotic_test_hash_tiger_5, "hash_tiger_5");
exotic_add_test(&handle, &exotic_test_hash_tiger_6, "hash_tiger_6");
exotic_add_test(&handle, &exotic_test_hash_tiger_7, "hash_tiger_7");
exotic_add_test(&handle, &exotic_test_timer_setup, "timer_setup");
exotic_add_test(&handle, &exotic_test_timer_check_timeout_0, "timer_check_timeout_0");
exotic_add_test(&handle, &exotic_test_timer_add_event_1, "timer_add_event_1");
exotic_add_test(&handle, &exotic_test_timer_check_timeout_1, "timer_check_timeout_1");
exotic_add_test(&handle, &exotic_test_timer_remove_event_1, "timer_remove_event_1");
exotic_add_test(&handle, &exotic_test_timer_check_timeout_2, "timer_check_timeout_2");
exotic_add_test(&handle, &exotic_test_timer_remove_event_1_no_crash, "timer_remove_event_1_no_crash");
exotic_add_test(&handle, &exotic_test_timer_add_5_events_1, "timer_add_5_events_1");
exotic_add_test(&handle, &exotic_test_timer_check_5_events_1, "timer_check_5_events_1");
exotic_add_test(&handle, &exotic_test_timer_process_5_events_1, "timer_process_5_events_1");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_0, "tokenizer_basic_0");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1, "tokenizer_basic_1");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1a, "tokenizer_basic_1a");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1b, "tokenizer_basic_1b");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1c, "tokenizer_basic_1c");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1d, "tokenizer_basic_1d");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_1e, "tokenizer_basic_1e");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_2, "tokenizer_basic_2");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_2a, "tokenizer_basic_2a");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_3, "tokenizer_basic_3");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_3a, "tokenizer_basic_3a");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_3b, "tokenizer_basic_3b");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_3c, "tokenizer_basic_3c");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_3d, "tokenizer_basic_3d");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_0, "tokenizer_basic_compare_0");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_1, "tokenizer_basic_compare_1");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_2, "tokenizer_basic_compare_2");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_3, "tokenizer_basic_compare_3");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_4, "tokenizer_basic_compare_4");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_5, "tokenizer_basic_compare_5");
exotic_add_test(&handle, &exotic_test_tokenizer_basic_compare_6, "tokenizer_basic_compare_6");
exotic_add_test(&handle, &exotic_test_tokenizer_comment_1, "tokenizer_comment_1");
exotic_add_test(&handle, &exotic_test_tokenizer_comment_2, "tokenizer_comment_2");
exotic_add_test(&handle, &exotic_test_tokenizer_comment_3, "tokenizer_comment_3");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_1, "tokenizer_escape_1");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_2, "tokenizer_escape_2");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_3, "tokenizer_escape_3");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_4, "tokenizer_escape_4");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_5, "tokenizer_escape_5");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_6, "tokenizer_escape_6");
exotic_add_test(&handle, &exotic_test_tokenizer_escape_7, "tokenizer_escape_7");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_1, "tokenizer_settings_1");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_2, "tokenizer_settings_2");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_3, "tokenizer_settings_3");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_4, "tokenizer_settings_4");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_5, "tokenizer_settings_5");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_6, "tokenizer_settings_6");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_7, "tokenizer_settings_7");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_8, "tokenizer_settings_8");
exotic_add_test(&handle, &exotic_test_tokenizer_settings_9, "tokenizer_settings_9");
exotic_add_test(&handle, &exotic_test_um_init_1, "um_init_1");
exotic_add_test(&handle, &exotic_test_um_shutdown_1, "um_shutdown_1");
exotic_add_test(&handle, &exotic_test_um_shutdown_2, "um_shutdown_2");
exotic_add_test(&handle, &exotic_test_um_init_2, "um_init_2");
exotic_add_test(&handle, &exotic_test_um_add_1, "um_add_1");
exotic_add_test(&handle, &exotic_test_um_size_1, "um_size_1");
exotic_add_test(&handle, &exotic_test_um_remove_1, "um_remove_1");
exotic_add_test(&handle, &exotic_test_um_size_2, "um_size_2");
exotic_add_test(&handle, &exotic_test_um_add_2, "um_add_2");
exotic_add_test(&handle, &exotic_test_um_size_3, "um_size_3");
exotic_add_test(&handle, &exotic_test_um_remove_2, "um_remove_2");
exotic_add_test(&handle, &exotic_test_um_shutdown_4, "um_shutdown_4");
return exotic_run(&handle);
}
/*
* Exotic - C/C++ source code testing
* Copyright (c) 2007, Jan Vidar Krey
*/
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static void exotic_version();
#ifndef __EXOTIC__STANDALONE__
#include "autotest.h"
static void exotic_version()
{
printf("Extatic.org Test Infrastructure: exotic " "${version}" "\n\n");
printf("Copyright (C) 2007 Jan Vidar Krey, janvidar@extatic.org\n");
printf("This is free software with ABSOLUTELY NO WARRANTY.\n\n");
}
#endif
struct exo_test_data
{
exo_test_t test;
char* name;
struct exo_test_data* next;
};
static void exotic_summary(struct exotic_handle* handle)
{
int total = handle->pass + handle->fail;
int pass_rate = total ? (100*handle->pass / total) : 0;
int fail_rate = total ? (100*handle->fail / total) : 0;
printf("\n");
printf("--------------------------------------------\n");
printf("Results:\n");
printf(" * Total tests run: %8d\n", total);
printf(" * Tests passed: %8d (~%d%%)\n", (int) handle->pass, pass_rate);
printf(" * Tests failed: %8d (~%d%%)\n", (int) handle->fail, fail_rate);
printf("--------------------------------------------\n");
}
static void exotic_help(const char* program)
{
printf("Usage: %s [OPTIONS]\n\n", program);
printf("Options:\n");
printf(" --help -h Show this message\n");
printf(" --version -v Show version\n");
printf(" --summary -s show only summary)\n");
printf(" --fail -f show only test failures\n");
printf(" --pass -p show only test passes\n");
printf("\nExamples:\n");
printf(" %s -s -f\n\n", program);
}
int exotic_initialize(struct exotic_handle* handle, int argc, char** argv)
{
int n;
if (!handle || !argv) return -1;
memset(handle, 0, sizeof(struct exotic_handle));
for (n = 1; n < argc; n++)
{
if (!strcmp(argv[n], "-h") || !strcmp(argv[n], "--help"))
{
exotic_help(argv[0]);
exit(0);
}
if (!strcmp(argv[n], "-v") || !strcmp(argv[n], "--version"))
{
exotic_version();
exit(0);
}
if (!strcmp(argv[n], "-s") || !strcmp(argv[n], "--summary"))
{
handle->config_show_summary = cfg_on;
continue;
}
if (!strcmp(argv[n], "-f") || !strcmp(argv[n], "--fail"))
{
handle->config_show_fail = cfg_on;
continue;
}
if (!strcmp(argv[n], "-p") || !strcmp(argv[n], "--pass"))
{
handle->config_show_pass = cfg_on;
continue;
}
fprintf(stderr, "Unknown argument: %s\n\n", argv[n]);
exotic_help(argv[0]);
exit(0);
}
if (handle->config_show_summary == cfg_on)
{
if (handle->config_show_pass == cfg_default) handle->config_show_pass = cfg_off;
if (handle->config_show_fail == cfg_default) handle->config_show_fail = cfg_off;
}
else if (handle->config_show_pass == cfg_on)
{
if (handle->config_show_summary == cfg_default) handle->config_show_summary = cfg_off;
if (handle->config_show_fail == cfg_default) handle->config_show_fail = cfg_off;
}
else if (handle->config_show_fail == cfg_on)
{
if (handle->config_show_summary == cfg_default) handle->config_show_summary = cfg_off;
if (handle->config_show_fail == cfg_default) handle->config_show_fail = cfg_off;
}
else
{
if (handle->config_show_summary == cfg_default) handle->config_show_summary = cfg_on;
if (handle->config_show_fail == cfg_default) handle->config_show_fail = cfg_on;
if (handle->config_show_pass == cfg_default) handle->config_show_pass = cfg_on;
}
return 0;
}
void exotic_add_test(struct exotic_handle* handle, exo_test_t func, const char* name)
{
struct exo_test_data* test;
if (!handle)
{
fprintf(stderr, "exotic_add_test: failed, no handle!\n");
exit(-1);
}
test = (struct exo_test_data*) malloc(sizeof(struct exo_test_data));
if (!test)
{
fprintf(stderr, "exotic_add_test: out of memory!\n");
exit(-1);
}
/* Create the test */
memset(test, 0, sizeof(struct exo_test_data));
test->test = func;
test->name = strdup(name);
/* Register the test in the handle */
if (!handle->first)
{
handle->first = test;
handle->current = test;
}
else
{
handle->current->next = test;
handle->current = test;
}
}
int exotic_run(struct exotic_handle* handle)
{
struct exo_test_data* tmp = NULL;
if (!handle)
{
fprintf(stderr, "Error: exotic is not initialized\n");
return -1;
}
handle->current = handle->first;
while (handle->current)
{
tmp = handle->current;
if (handle->current->test()) {
if (handle->config_show_pass == cfg_on) printf("* PASS test '%s'\n", tmp->name);
handle->pass++;
} else {
if (handle->config_show_fail == cfg_on) printf("* FAIL test '%s'\n", tmp->name);
handle->fail++;
}
handle->current = handle->current->next;
free(tmp->name);
free(tmp);
}
if (!handle->first)
{
printf("(No tests added)\n");
}
if (handle->config_show_summary == cfg_on)
exotic_summary(handle);
return (handle->fail) ? handle->fail : 0;
}
static void exotic_version() {
printf("exotic 0.4-standalone\n\n");
printf("Copyright (C) 2007 Jan Vidar Krey, janvidar@extatic.org\n");
printf("This is free software with ABSOLUTELY NO WARRANTY.\n\n");
}