From b17e88573e815d997e07d6cbf2ab2f4ca909e2cc Mon Sep 17 00:00:00 2001 From: Jan Vidar Krey Date: Thu, 1 Nov 2012 21:10:51 +0100 Subject: [PATCH] Fixed Windows VC compile issues with autotests. --- autotest/exotic | 3 +- autotest/test.c | 4 ++- autotest/test_inf.tcc | 22 +++++++------ autotest/test_ipfilter.tcc | 27 ++++++++++------ autotest/test_message.tcc | 63 ++++++++++++++++++++++++------------- autotest/test_misc.tcc | 28 +++++++++++------ autotest/test_tokenizer.tcc | 7 +++-- 7 files changed, 102 insertions(+), 52 deletions(-) diff --git a/autotest/exotic b/autotest/exotic index d0338ef..26351e8 100755 --- a/autotest/exotic +++ b/autotest/exotic @@ -289,13 +289,14 @@ int exotic_initialize(struct exotic_handle* handle, int argc, char** argv) 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); } - struct exo_test_data* test = (struct exo_test_data*) malloc(sizeof(struct exo_test_data)); + test = (struct exo_test_data*) malloc(sizeof(struct exo_test_data)); if (!test) { fprintf(stderr, "exotic_add_test: out of memory!\n"); diff --git a/autotest/test.c b/autotest/test.c index cb3142d..d9894f9 100644 --- a/autotest/test.c +++ b/autotest/test.c @@ -922,13 +922,15 @@ int exotic_initialize(struct exotic_handle* handle, int argc, char** argv) 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); } - struct exo_test_data* test = (struct exo_test_data*) malloc(sizeof(struct exo_test_data)); + test = (struct exo_test_data*) malloc(sizeof(struct exo_test_data)); if (!test) { fprintf(stderr, "exotic_add_test: out of memory!\n"); diff --git a/autotest/test_inf.tcc b/autotest/test_inf.tcc index 9fb858d..0a7136a 100644 --- a/autotest/test_inf.tcc +++ b/autotest/test_inf.tcc @@ -63,13 +63,14 @@ EXO_TEST(inf_create_setup, /* FIXME: MEMORY LEAK - Need to fix hub_handle_info_login */ #define CHECK_INF(MSG, EXPECT) \ - struct adc_message* msg = adc_msg_parse_verify(inf_user, MSG, strlen(MSG)); \ - int ok = hub_handle_info_login(inf_hub, inf_user, msg); /* FIXME: MEMORY LEAK */ \ - adc_msg_free(msg); \ - if (ok == EXPECT) \ - user_set_info(inf_user, 0); \ - return ok == EXPECT; - + do { \ + struct adc_message* msg = adc_msg_parse_verify(inf_user, MSG, strlen(MSG)); \ + int ok = hub_handle_info_login(inf_hub, inf_user, msg); /* FIXME: MEMORY LEAK */ \ + adc_msg_free(msg); \ + if (ok == EXPECT) \ + user_set_info(inf_user, 0); \ + return ok == EXPECT; \ + } while(0) EXO_TEST(inf_ok_1, { CHECK_INF("BINF AAAB NIFriend IDGNSSMURMD7K466NGZIHU65TP3S3UZSQ6MN5B2RI PD3A4545WFVGZLSGUXZLG7OS6ULQUVG3HM2T63I7Y\n", 0); }); @@ -107,12 +108,15 @@ EXO_TEST(inf_nick_08, { CHECK_INF("BINF AAAB NIa\\nc IDGNSSMURMD7K466NGZIHU65TP3 EXO_TEST(inf_nick_09, { CHECK_INF("BINF AAAB NIabc NIdef IDGNSSMURMD7K466NGZIHU65TP3S3UZSQ6MN5B2RI PD3A4545WFVGZLSGUXZLG7OS6ULQUVG3HM2T63I7Y\n", status_msg_inf_error_nick_multiple); }); EXO_TEST(inf_nick_10, { const char* line = "BINF AAAB IDGNSSMURMD7K466NGZIHU65TP3S3UZSQ6MN5B2RI PD3A4545WFVGZLSGUXZLG7OS6ULQUVG3HM2T63I7Y\n"; + int ok; char nick[10]; + struct adc_message* msg; + nick[0] = 0xf7; nick[1] = 0x80; nick[2] = 0x7f; nick[3] = 0x81; nick[4] = 0x98; nick[5] = 0x00; - struct adc_message* msg = adc_msg_parse_verify(inf_user, line, strlen(line)); + msg = adc_msg_parse_verify(inf_user, line, strlen(line)); adc_msg_add_named_argument(msg, "NI", nick); - int ok = hub_handle_info_login(inf_hub, inf_user, msg); + ok = hub_handle_info_login(inf_hub, inf_user, msg); adc_msg_free(msg); if (ok != status_msg_inf_error_nick_not_utf8) printf("Expected %d, got %d\n", status_msg_inf_error_nick_not_utf8, ok); diff --git a/autotest/test_ipfilter.tcc b/autotest/test_ipfilter.tcc index f3cfe6e..4294ad6 100644 --- a/autotest/test_ipfilter.tcc +++ b/autotest/test_ipfilter.tcc @@ -429,44 +429,51 @@ EXO_TEST(check_ban_ipv4_5, { }); EXO_TEST(check_ban_ipv6_1, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fefa:0", &addr); + ip_convert_to_binary("2001::201:2ff:fefa:0", &addr); return ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_ipv6_2, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fefa:1", &addr); + ip_convert_to_binary("2001::201:2ff:fefa:1", &addr); return ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_ipv6_3, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fefa:fffe", &addr); + ip_convert_to_binary("2001::201:2ff:fefa:fffe", &addr); return ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_ipv6_4, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fefa:ffff", &addr); + ip_convert_to_binary("2001::201:2ff:fefa:ffff", &addr); return ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_ipv6_5, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fefb:0", &addr); + ip_convert_to_binary("2001::201:2ff:fefb:0", &addr); return !ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_ipv6_6, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fef9:ffff", &addr); + ip_convert_to_binary("2001::201:2ff:fef9:ffff", &addr); return !ip_in_range(&addr, &ban6); }); EXO_TEST(check_ban_afmix_1, { + struct ip_addr_encap addr; if (!ipv6) return 1; - struct ip_addr_encap addr; ip_convert_to_binary("2001::201:2ff:fef9:ffff", &addr); + ip_convert_to_binary("2001::201:2ff:fef9:ffff", &addr); return !ip_in_range(&addr, &ban4); }); @@ -610,8 +617,10 @@ EXO_TEST(ip_range_3, { }); EXO_TEST(ip_range_4, { - struct ip_range range1; memset(&range1, 0, sizeof(range1)); - struct ip_range range2; memset(&range2, 0, sizeof(range2)); + struct ip_range range1; + struct ip_range range2; + memset(&range1, 0, sizeof(range1)); + memset(&range2, 0, sizeof(range2)); return ip_convert_address_to_range("192.168.0.0/16", &range1) && ip_convert_address_to_range("192.168.0.0-192.168.255.255", &range2) && memcmp(&range1, &range2, sizeof(struct ip_range)) == 0; }); diff --git a/autotest/test_message.tcc b/autotest/test_message.tcc index fef366c..debb978 100644 --- a/autotest/test_message.tcc +++ b/autotest/test_message.tcc @@ -174,91 +174,102 @@ EXO_TEST(adc_message_parse_24, { EXO_TEST(adc_message_add_arg_1, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_add_argument(msg, "XXwtf?"); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat XXwtf?\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat XXwtf?\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_add_arg_2, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_add_named_argument(msg, "XX", "wtf?"); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat XXwtf?\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat XXwtf?\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_remove_arg_1, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "AA"); - int ok = strcmp(msg->cache, "IINF BBbar CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF BBbar CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_remove_arg_2, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "BB"); - int ok = strcmp(msg->cache, "IINF AAfoo CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_remove_arg_3, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "CC"); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_remove_arg_4, { /* this ensures we can remove the last element also */ + int ok; struct adc_message* msg = adc_msg_parse_verify(g_user, test_string3, strlen(test_string3)); adc_msg_remove_named_argument(msg, "AW"); - int ok = strcmp(msg->cache, "BINF AAAB IDAN7ZMSLIEBL53OPTM7WXGSTXUS3XOY6KQS5LBGX NIFriend DEstuff SL3 SS0 SF0 VEQuickDC/0.4.17 US6430 SUADC0,TCP4,UDP4 I4127.0.0.1 HO5 HN1\n") == 0; + ok = strcmp(msg->cache, "BINF AAAB IDAN7ZMSLIEBL53OPTM7WXGSTXUS3XOY6KQS5LBGX NIFriend DEstuff SL3 SS0 SF0 VEQuickDC/0.4.17 US6430 SUADC0,TCP4,UDP4 I4127.0.0.1 HO5 HN1\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_replace_arg_1, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "AA"); - int ok = strcmp(msg->cache, "IINF BBbar CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF BBbar CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_replace_arg_2, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "BB"); - int ok = strcmp(msg->cache, "IINF AAfoo CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_replace_arg_3, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_remove_named_argument(msg, "CC"); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_get_arg_1, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); char* c = adc_msg_get_argument(msg, 0); - int ok = strcmp(c, "AAfoo") == 0; + ok = strcmp(c, "AAfoo") == 0; adc_msg_free(msg); hub_free(c); return ok; }); EXO_TEST(adc_message_get_arg_2, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); char* c = adc_msg_get_argument(msg, 1); - int ok = strcmp(c, "BBbar") == 0; + ok = strcmp(c, "BBbar") == 0; adc_msg_free(msg); hub_free(c); return ok; @@ -340,28 +351,31 @@ EXO_TEST(adc_message_has_named_arg_3, { }); EXO_TEST(adc_message_has_named_arg_4, { + int n; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_add_argument(msg, "XXwtf?"); - int n = adc_msg_has_named_argument(msg, "XX"); + n = adc_msg_has_named_argument(msg, "XX"); adc_msg_free(msg); return n == 1; }); EXO_TEST(adc_message_has_named_arg_5, { + int n; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_add_argument(msg, "XXone"); adc_msg_add_argument(msg, "XXtwo"); - int n = adc_msg_has_named_argument(msg, "XX"); + n = adc_msg_has_named_argument(msg, "XX"); adc_msg_free(msg); return n == 2; }); EXO_TEST(adc_message_has_named_arg_6, { + int n; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_add_argument(msg, "XXone"); adc_msg_add_argument(msg, "XXtwo"); adc_msg_add_argument(msg, "XXthree"); - int n = adc_msg_has_named_argument(msg, "XX"); + n = adc_msg_has_named_argument(msg, "XX"); adc_msg_free(msg); return n == 3; }); @@ -374,63 +388,70 @@ EXO_TEST(adc_message_has_named_arg_7, { }); EXO_TEST(adc_message_terminate_1, { + int ok; struct adc_message* msg = adc_msg_create("IINF AAfoo BBbar CCwhat"); adc_msg_unterminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_terminate_2, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_unterminate(msg); adc_msg_terminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_terminate_3, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_unterminate(msg); adc_msg_terminate(msg); adc_msg_unterminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_terminate_4, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_unterminate(msg); adc_msg_terminate(msg); adc_msg_terminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_terminate_5, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_terminate(msg); adc_msg_terminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat\n") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_terminate_6, { + int ok; struct adc_message* msg = adc_msg_create(test_string1); adc_msg_unterminate(msg); adc_msg_unterminate(msg); - int ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; + ok = strcmp(msg->cache, "IINF AAfoo BBbar CCwhat") == 0; adc_msg_free(msg); return ok; }); EXO_TEST(adc_message_escape_1, { + int ok; char* s = adc_msg_escape(test_string1); - int ok = strcmp(s, "IINF\\sAAfoo\\sBBbar\\sCCwhat\\n") == 0; + ok = strcmp(s, "IINF\\sAAfoo\\sBBbar\\sCCwhat\\n") == 0; hub_free(s); return ok; }); diff --git a/autotest/test_misc.tcc b/autotest/test_misc.tcc index cd03b47..978b6c8 100644 --- a/autotest/test_misc.tcc +++ b/autotest/test_misc.tcc @@ -97,15 +97,25 @@ EXO_TEST(base32_invalid_31, { return !is_valid_base32_char('@'); }); EXO_TEST(utf8_valid_1, { return is_valid_utf8("abcdefghijklmnopqrstuvwxyz"); }); EXO_TEST(utf8_valid_2, { return is_valid_utf8("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); }); EXO_TEST(utf8_valid_3, { return is_valid_utf8("0123456789"); }); -EXO_TEST(utf8_valid_4, { return is_valid_utf8( (char[]) { 0x65, 0x00} ); }); -EXO_TEST(utf8_valid_5, { return !is_valid_utf8( (char[]) { 0xD8, 0x00} ); }); -EXO_TEST(utf8_valid_6, { return is_valid_utf8( (char[]) { 0x24, 0x00} ); }); -EXO_TEST(utf8_valid_7, { return !is_valid_utf8( (char[]) { 0xC2, 0x24, 0x00} ); }); -EXO_TEST(utf8_valid_8, { return is_valid_utf8( (char[]) { 0xC2, 0xA2, 0x00} ); }); -EXO_TEST(utf8_valid_9, { return is_valid_utf8( (char[]) { 0xE2, 0x82, 0xAC, 0x00} ); }); -EXO_TEST(utf8_valid_10, { return !is_valid_utf8( (char[]) { 0xC2, 0x32, 0x00} ); }); -EXO_TEST(utf8_valid_11, { return !is_valid_utf8( (char[]) { 0xE2, 0x82, 0x32, 0x00} ); }); -EXO_TEST(utf8_valid_12, { return !is_valid_utf8( (char[]) { 0xE2, 0x32, 0x82, 0x00} ); }); +static const char test_utf_seq_1[] = { 0x65, 0x00 }; // valid +static const char test_utf_seq_2[] = { 0xD8, 0x00 }; // invalid +static const char test_utf_seq_3[] = { 0x24, 0x00 }; // valid +static const char test_utf_seq_4[] = { 0xC2, 0x24, 0x00}; // invalid +static const char test_utf_seq_5[] = { 0xC2, 0xA2, 0x00}; // valid +static const char test_utf_seq_6[] = { 0xE2, 0x82, 0xAC, 0x00}; // valid +static const char test_utf_seq_7[] = { 0xC2, 0x32, 0x00}; // invalid +static const char test_utf_seq_8[] = { 0xE2, 0x82, 0x32, 0x00}; // invalid +static const char test_utf_seq_9[] = { 0xE2, 0x32, 0x82, 0x00}; // invalid + +EXO_TEST(utf8_valid_4, { return is_valid_utf8(test_utf_seq_1); }); +EXO_TEST(utf8_valid_5, { return !is_valid_utf8(test_utf_seq_2); }); +EXO_TEST(utf8_valid_6, { return is_valid_utf8(test_utf_seq_3); }); +EXO_TEST(utf8_valid_7, { return !is_valid_utf8(test_utf_seq_4); }); +EXO_TEST(utf8_valid_8, { return is_valid_utf8(test_utf_seq_5); }); +EXO_TEST(utf8_valid_9, { return is_valid_utf8(test_utf_seq_6); }); +EXO_TEST(utf8_valid_10, { return !is_valid_utf8(test_utf_seq_7); }); +EXO_TEST(utf8_valid_11, { return !is_valid_utf8(test_utf_seq_8); }); +EXO_TEST(utf8_valid_12, { return !is_valid_utf8(test_utf_seq_9); }); diff --git a/autotest/test_tokenizer.tcc b/autotest/test_tokenizer.tcc index a8c7f94..355e78c 100644 --- a/autotest/test_tokenizer.tcc +++ b/autotest/test_tokenizer.tcc @@ -7,13 +7,15 @@ static int match_str(const char* str1, char* str2) { size_t i; + int ret; + for (i = 0; i < strlen(str2); i++) if (str2[i] == '_') str2[i] = ' '; else if (str2[i] == '|') str2[i] = '\t'; - int ret = strcmp(str1, str2); + ret = strcmp(str1, str2); if (ret) { fprintf(stderr, "\n Mismatch: \"%s\" != \"%s\"\n", str1, str2); } @@ -29,10 +31,11 @@ static int count(const char* STR, size_t EXPECT) { static int compare(const char* str, const char* ref) { size_t i, max; + int pass; struct linked_list* compare = list_create(); SETUP(tokens, str); split_string(ref, " ", compare, 0); - int pass = cfg_token_count(tokens) == list_size(compare); + pass = cfg_token_count(tokens) == list_size(compare); if (pass) { max = cfg_token_count(tokens); for (i = 0; i < max; i++) {