static bool test_normal_case() { emit_test("Is normal input identified correctly?"); char* input = strdup( "66.184.142.51" ); emit_input_header(); emit_param("IP", input); struct in_addr ip; unsigned char* byte = (unsigned char*) &ip; int result = is_ipaddr( input, &ip ); free( input ); emit_output_expected_header(); emit_param("IP", "%d.%d.%d.%d", 66, 184, 142, 51); emit_retval("%s", tfstr(TRUE)); emit_output_actual_header(); emit_param("IP", "%d.%d.%d.%d", *byte, *(byte+1), *(byte+2), *(byte+3)); emit_retval("%s", tfstr(result)); if(result != TRUE || *byte != 66 || *(byte+1) != 184 || *(byte+2) != 142 || *(byte+3) != 51) { FAIL; } PASS; }
static bool test_normal_case() { emit_test("Is normal input converted correctly?"); struct sockaddr_in sa_in; char* input = strdup("<192.168.0.2:80?param1=value1¶m2=value2>"); int result = string_to_sin(input, &sa_in); emit_input_header(); emit_param("STRING", input); free(input); emit_output_expected_header(); emit_retval("%s", tfstr(TRUE)); emit_param("sockaddr_in.in_addr", "192.168.0.2"); emit_param("sockaddr_in.port", "80"); emit_output_actual_header(); emit_retval("%s", tfstr(result)); unsigned char* byte = (unsigned char*) &sa_in.sin_addr; int port = ntohs(sa_in.sin_port); emit_param("sockaddr_in.in_addr", "%d.%d.%d.%d", *byte, *(byte+1), *(byte+2), *(byte+3)); emit_param("sockaddr_in.port", "%d", port); if(result != 1 || port != 80 || !utest_sock_eq_octet(&(sa_in.sin_addr), 192, 168, 0, 2) ) { FAIL; } PASS; }
static bool test_normal_case() { emit_test("Is normal input converted correctly?"); #ifdef WIN32 unsigned long address = inet_addr("192.168.0.2"); if(address == INADDR_NONE || address == INADDR_ANY) { #else in_addr ip; if(inet_aton("192.168.0.2", &ip) == 0) { #endif emit_alert("inet_aton() returned failure."); ABORT; } unsigned int port = 47; emit_input_header(); emit_param("IP", "192.168.0.2"); emit_param("PORT", "47"); emit_output_expected_header(); char* expected = strdup("<192.168.0.2:47>"); emit_retval(expected); emit_output_actual_header(); sockaddr_in sa_in; #ifdef WIN32 sa_in.sin_addr.s_addr = address; #else sa_in.sin_addr.s_addr = ip.s_addr; #endif sa_in.sin_port = htons(port); char* sinstring = sin_to_string(&sa_in); emit_retval(sinstring); if(strcmp(expected, sinstring) != 0) { free(expected); free(sinstring); FAIL; } free(expected); PASS; }
static bool tokenize_multiple_calls() { emit_test("Test multiple calls to GetNextToken()."); const char *a = "To be or not to be; that is the question"; Tokenize(a); const char* expectedTokens[] = {"To", "", "be", "or", "not", "to", "be", "" , "that", "is", "the", "question"}; const char* resultToken0 = GetNextToken(" ;", false); const char* resultToken1 = GetNextToken(" ;", false); const char* resultToken2 = GetNextToken(" ;", false); const char* resultToken3 = GetNextToken(" ;", false); const char* resultToken4 = GetNextToken(" ;", false); const char* resultToken5 = GetNextToken(" ;", false); const char* resultToken6 = GetNextToken(" ;", false); const char* resultToken7 = GetNextToken(" ;", false); const char* resultToken8 = GetNextToken(" ;", false); const char* resultToken9 = GetNextToken(" ;", false); const char* resultToken10 = GetNextToken(" ;", false); const char* resultToken11 = GetNextToken(" ;", false); emit_input_header(); emit_param("delim", "%s", " ;"); emit_param("skipBlankTokens", "%d", false); emit_output_expected_header(); emit_param("Token 1", "%s", expectedTokens[0]); emit_param("Token 2", "%s", expectedTokens[1]); emit_param("Token 3", "%s", expectedTokens[2]); emit_param("Token 4", "%s", expectedTokens[3]); emit_param("Token 5", "%s", expectedTokens[4]); emit_param("Token 6", "%s", expectedTokens[5]); emit_param("Token 7", "%s", expectedTokens[6]); emit_param("Token 8", "%s", expectedTokens[7]); emit_param("Token 9", "%s", expectedTokens[8]); emit_param("Token 10", "%s", expectedTokens[9]); emit_param("Token 11", "%s", expectedTokens[10]); emit_param("Token 12", "%s", expectedTokens[11]); emit_output_actual_header(); emit_param("Token 1", "%s", resultToken0); emit_param("Token 2", "%s", resultToken1); emit_param("Token 3", "%s", resultToken2); emit_param("Token 4", "%s", resultToken3); emit_param("Token 5", "%s", resultToken4); emit_param("Token 6", "%s", resultToken5); emit_param("Token 7", "%s", resultToken6); emit_param("Token 8", "%s", resultToken7); emit_param("Token 9", "%s", resultToken8); emit_param("Token 10", "%s", resultToken9); emit_param("Token 11", "%s", resultToken10); emit_param("Token 12", "%s", resultToken11); if(strcmp(expectedTokens[0], resultToken0) != MATCH || strcmp(expectedTokens[1], resultToken1) != MATCH || strcmp(expectedTokens[2], resultToken2) != MATCH || strcmp(expectedTokens[3], resultToken3) != MATCH || strcmp(expectedTokens[4], resultToken4) != MATCH || strcmp(expectedTokens[5], resultToken5) != MATCH || strcmp(expectedTokens[6], resultToken6) != MATCH || strcmp(expectedTokens[7], resultToken7) != MATCH || strcmp(expectedTokens[8], resultToken8) != MATCH || strcmp(expectedTokens[9], resultToken9) != MATCH || strcmp(expectedTokens[10], resultToken10) != MATCH || strcmp(expectedTokens[11], resultToken11) != MATCH) { FAIL; } PASS; }