diff --git a/tests/ipv4_test.cpp b/tests/ipv4_test.cpp index 82ddf9c..f3055dc 100644 --- a/tests/ipv4_test.cpp +++ b/tests/ipv4_test.cpp @@ -5,44 +5,42 @@ #include #include "fast_float/fast_float.h" -char* uint8_to_chars_manual(char* ptr, uint8_t value) { - if (value == 0) { - *ptr++ = '0'; - return ptr; - } - char* start = ptr; - while (value > 0) { - *ptr++ = '0' + (value % 10); - value /= 10; - } - // Reverse the digits written so far - std::reverse(start, ptr); +char *uint8_to_chars_manual(char *ptr, uint8_t value) { + if (value == 0) { + *ptr++ = '0'; return ptr; + } + char *start = ptr; + while (value > 0) { + *ptr++ = '0' + (value % 10); + value /= 10; + } + // Reverse the digits written so far + std::reverse(start, ptr); + return ptr; } -void uint32_to_ipv4_string(uint32_t ip, char* buffer) { - uint8_t octets[4] = { - static_cast(ip >> 24), - static_cast(ip >> 16), - static_cast(ip >> 8), - static_cast(ip) - }; +void uint32_to_ipv4_string(uint32_t ip, char *buffer) { + uint8_t octets[4] = {static_cast(ip >> 24), + static_cast(ip >> 16), + static_cast(ip >> 8), static_cast(ip)}; - char* ptr = buffer; + char *ptr = buffer; - for (int i = 0; i < 4; ++i) { - ptr = uint8_to_chars_manual(ptr, octets[i]); + for (int i = 0; i < 4; ++i) { + ptr = uint8_to_chars_manual(ptr, octets[i]); - if (i < 3) { - *ptr++ = '.'; - } + if (i < 3) { + *ptr++ = '.'; } - *ptr = '\0'; + } + *ptr = '\0'; } -fastfloat_really_inline uint32_t ipv4_string_to_uint32(const char* str, const char* end) { +fastfloat_really_inline uint32_t ipv4_string_to_uint32(const char *str, + const char *end) { uint32_t ip = 0; - const char* current = str; + const char *current = str; for (int i = 0; i < 4; ++i) { uint8_t value; @@ -63,30 +61,33 @@ fastfloat_really_inline uint32_t ipv4_string_to_uint32(const char* str, const ch } bool test_all_ipv4_conversions() { - std::cout << "Testing all IPv4 conversions... 0, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, ..." << std::endl; - char buffer[16]; - for (uint64_t ip = 0; ip <= 0xFFFFFFFF; ip+=1000) { - if(ip % 10000000 == 0) { - std::cout << "." << std::flush; - } - uint32_to_ipv4_string(static_cast(ip), buffer); - const char* end = buffer + strlen(buffer); - uint32_t parsed_ip = ipv4_string_to_uint32(buffer, end); - if (parsed_ip != ip) { - std::cerr << "Mismatch: original " << ip << ", parsed " << parsed_ip << std::endl; - return false; - } + std::cout << "Testing all IPv4 conversions... 0, 1000, 2000, 3000, 4000, " + "5000, 6000, 7000, 8000, 9000, ..." + << std::endl; + char buffer[16]; + for (uint64_t ip = 0; ip <= 0xFFFFFFFF; ip += 1000) { + if (ip % 10000000 == 0) { + std::cout << "." << std::flush; } - std::cout << std::endl; - return true; + uint32_to_ipv4_string(static_cast(ip), buffer); + const char *end = buffer + strlen(buffer); + uint32_t parsed_ip = ipv4_string_to_uint32(buffer, end); + if (parsed_ip != ip) { + std::cerr << "Mismatch: original " << ip << ", parsed " << parsed_ip + << std::endl; + return false; + } + } + std::cout << std::endl; + return true; } int main() { - if (test_all_ipv4_conversions()) { - std::cout << "All IPv4 conversions passed!" << std::endl; - return EXIT_SUCCESS; - } else { - std::cerr << "IPv4 conversion test failed!" << std::endl; - return EXIT_FAILURE; - } + if (test_all_ipv4_conversions()) { + std::cout << "All IPv4 conversions passed!" << std::endl; + return EXIT_SUCCESS; + } else { + std::cerr << "IPv4 conversion test failed!" << std::endl; + return EXIT_FAILURE; + } } \ No newline at end of file