From b96b2b4b288dc280ebc38b3de13342ca5aeea33e Mon Sep 17 00:00:00 2001 From: kyriesk Date: Fri, 13 Mar 2026 21:32:28 +1100 Subject: [PATCH 1/4] add 'mac_to_hex' test to unit_test_network.cpp --- .../src/test/unit_tests/unit_test_network.cpp | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/coresdk/src/test/unit_tests/unit_test_network.cpp b/coresdk/src/test/unit_tests/unit_test_network.cpp index dfc13ee7..34fc6967 100644 --- a/coresdk/src/test/unit_tests/unit_test_network.cpp +++ b/coresdk/src/test/unit_tests/unit_test_network.cpp @@ -4,6 +4,11 @@ #include "logging_handling.h" +#include + +#define TEST_MAC "00:00:00:00:00:00" +#define TEST_MAC_HEX "0x000000000000" + using namespace splashkit_lib; TEST_CASE("can create a server", "[networking]") @@ -128,8 +133,8 @@ TEST_CASE("can communicate with server", "[networking]") enable_logging(WARNING); const string INVALID_IP = "invalid_ip"; - - disable_logging(ERROR); //Disables "ERROR -> Could not establish connection at open_connection after calling _establish_connection" + + disable_logging(ERROR); // Disables "ERROR -> Could not establish connection at open_connection after calling _establish_connection" connection conn2 = open_connection("test_connection_4", INVALID_IP, PORT, TCP); enable_logging(ERROR); @@ -234,4 +239,39 @@ TEST_CASE("can convert network data") REQUIRE_FALSE(is_valid_ipv4("abc.def.ghi.jkl")); // Letters REQUIRE_FALSE(is_valid_ipv4("192,168,1,1")); // Wrong separator } +} +TEST_CASE("can convert mac address string to hex string") +{ + REQUIRE(mac_to_hex("00:00:00:00:00:00") == "0x000000000000"); + REQUIRE(mac_to_hex("FF:FF:FF:FF:FF:FF") == "0xFFFFFFFFFFFF"); + REQUIRE(mac_to_hex("12:34:56:78:9A:BC") == "0x123456789ABC"); + REQUIRE(mac_to_hex("AB:CD:EF:12:34:56") == "0xABCDEF123456"); + REQUIRE(mac_to_hex(TEST_MAC) == TEST_MAC_HEX); + + std::string result = mac_to_hex("AB:CD:EF:12:34:56"); + REQUIRE(result == "0xABCDEF123456"); + + // Additional positive tests + REQUIRE(mac_to_hex("01:23:45:67:89:AB") == "0x0123456789AB"); + REQUIRE(mac_to_hex("DE:AD:BE:EF:00:01") == "0xDEADBEEF0001"); + + // Negative tests + REQUIRE(mac_to_hex("00:00:00:00:00:00") != "0xFFFFFFFFFFFF"); + REQUIRE(mac_to_hex("FF:FF:FF:FF:FF:FF") != "0x000000000000"); + REQUIRE(mac_to_hex("12:34:56:78:9A:BC") != "0xABCDEF123456"); + REQUIRE(mac_to_hex("AB:CD:EF:12:34:56") != "0x123456789ABC"); + + // Additional negative tests + REQUIRE(mac_to_hex("01:23:45:67:89:AB") != "0xDEADBEEF0001"); + REQUIRE(mac_to_hex("DE:AD:BE:EF:00:01") != "0x0123456789AB"); + + // Tests for invalid types of MAC addresses + REQUIRE(mac_to_hex("01:23:45:67:89") != "0x0123456789ABC"); + REQUIRE(mac_to_hex("01:23:45:AB") != "0x0123456789"); + REQUIRE(mac_to_hex("01:23:45:67:89:AB:CD") != "0x0123456789AB"); + REQUIRE(mac_to_hex("01:23:67:89:AB") != "0x0123456789ABCD"); + REQUIRE(mac_to_hex("0000") == ""); + + std::cout << "All MAC to Hexadecimal tests passed!\n" + << "AB:CD:EF:12:34:56" << " in hex: " << result << std::endl; } \ No newline at end of file From a07e3f0a77397047c0f2c384aa46dc30ffdea9de Mon Sep 17 00:00:00 2001 From: kyriesk Date: Fri, 20 Mar 2026 14:46:31 +1100 Subject: [PATCH 2/4] add 'hex_to_mac' test to unit_test_network.cpp --- .../src/test/unit_tests/unit_test_network.cpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/coresdk/src/test/unit_tests/unit_test_network.cpp b/coresdk/src/test/unit_tests/unit_test_network.cpp index 34fc6967..07da1e9e 100644 --- a/coresdk/src/test/unit_tests/unit_test_network.cpp +++ b/coresdk/src/test/unit_tests/unit_test_network.cpp @@ -274,4 +274,38 @@ TEST_CASE("can convert mac address string to hex string") std::cout << "All MAC to Hexadecimal tests passed!\n" << "AB:CD:EF:12:34:56" << " in hex: " << result << std::endl; +} + +TEST_CASE("can convert hex string to mac address string") +{ + REQUIRE(hex_to_mac("0x000000000000") == "00:00:00:00:00:00"); + REQUIRE(hex_to_mac("0xFFFFFFFFFFFF") == "FF:FF:FF:FF:FF:FF"); + REQUIRE(hex_to_mac("0x123456789ABC") == "12:34:56:78:9A:BC"); + REQUIRE(hex_to_mac("0xABCDEF123456") != "AB:CD:GF:12:34:56"); + REQUIRE(hex_to_mac("0xABCDEF123456") == "AB:CD:EF:12:34:56"); + + std::string result = hex_to_mac(TEST_MAC_HEX); + REQUIRE(result == TEST_MAC); + + // Additional positive tests + REQUIRE(hex_to_mac("0x0123456789AB") == "01:23:45:67:89:AB"); + REQUIRE(hex_to_mac("0xDEADBEEF0001") == "DE:AD:BE:EF:00:01"); + + // Negative tests + REQUIRE(hex_to_mac("0x000000000000") != "FF:FF:FF:FF:FF:FF"); + REQUIRE(hex_to_mac("0xFFFFFFFFFFFF") != "00:00:00:00:00:00"); + REQUIRE(hex_to_mac("0x123456789ABC") != "AB:CD:EF:12:34:56"); + + // Additional negative tests + REQUIRE(hex_to_mac("0x0123456789AB") != "DE:AD:BE:EF:00:01"); + REQUIRE(hex_to_mac("0xDEADBEEF0001") != "01:23:45:67:89:AB"); + + // Tests for invalid types of hex values + REQUIRE(hex_to_mac("0x123456789AB") != "01:23:45:67:89:AB"); + REQUIRE(hex_to_mac("0x123456789ABCD") != "01:23:45:67:89:AB"); + REQUIRE(hex_to_mac("000000000000") != "00:00:00:00:00:00"); + + std::cout << "All Hexadecimal to MAC tests passed!\n" + << TEST_MAC_HEX << " in MAC format: " << result << std::endl; + std::cout << "-------------------------------------" << std::endl; } \ No newline at end of file From 00afb0a97cea6cfb98b763d2642cac506e08be5a Mon Sep 17 00:00:00 2001 From: kyriesk Date: Fri, 20 Mar 2026 14:55:17 +1100 Subject: [PATCH 3/4] add 'is_valid_mac' test to unit_test_network.cpp --- .../src/test/unit_tests/unit_test_network.cpp | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/coresdk/src/test/unit_tests/unit_test_network.cpp b/coresdk/src/test/unit_tests/unit_test_network.cpp index 07da1e9e..96039ad3 100644 --- a/coresdk/src/test/unit_tests/unit_test_network.cpp +++ b/coresdk/src/test/unit_tests/unit_test_network.cpp @@ -308,4 +308,36 @@ TEST_CASE("can convert hex string to mac address string") std::cout << "All Hexadecimal to MAC tests passed!\n" << TEST_MAC_HEX << " in MAC format: " << result << std::endl; std::cout << "-------------------------------------" << std::endl; +} + +TEST_CASE("check the validation of mac address") +{ + // Valid MAC addresses + REQUIRE(is_valid_mac("00:00:00:00:00:00")); + REQUIRE(is_valid_mac("FF:FF:FF:FF:FF:FF")); + REQUIRE(is_valid_mac("12:34:56:78:9A:BC")); + REQUIRE(is_valid_mac("AB:CD:EF:12:34:56")); + REQUIRE(is_valid_mac("01:23:45:67:89:AB")); + REQUIRE(is_valid_mac("DE:AD:BE:EF:00:01")); + + // Invalid MAC addresses - wrong length + REQUIRE(!is_valid_mac("00:00:00:00:00:0")); + REQUIRE(!is_valid_mac("FF:FF:FF:FF:FF:F")); + REQUIRE(!is_valid_mac("12:34:56:78:9A:B")); + REQUIRE(!is_valid_mac("AB:CD:EF:12:34:5")); + REQUIRE(!is_valid_mac("AB:CD:EF:12:34:567")); + REQUIRE(!is_valid_mac("AB:CD:EF:12:34")); + + // Invalid MAC addresses - invalid characters + REQUIRE(!is_valid_mac("GG:00:00:00:00:00")); + REQUIRE(!is_valid_mac("00:00:00:00:00:GG")); + REQUIRE(!is_valid_mac("ZZ:ZZ:ZZ:ZZ:ZZ:ZZ")); + REQUIRE(!is_valid_mac("12:34:56:78:9A:BG")); + + // Invalid MAC addresses - wrong format + REQUIRE(!is_valid_mac("00-00-00-00-00-00")); + REQUIRE(!is_valid_mac("0000.0000.0000")); + REQUIRE(!is_valid_mac("000000000000")); + REQUIRE(!is_valid_mac("00:00:00:00:00")); + REQUIRE(!is_valid_mac("00:00:00:00:00:00:00")); } \ No newline at end of file From c16db7bba33613309302cf183c74bcc7e2e5e2c3 Mon Sep 17 00:00:00 2001 From: kyriesk Date: Mon, 13 Apr 2026 15:46:19 +1000 Subject: [PATCH 4/4] Add filters to unit_test_network.cpp --- coresdk/src/test/unit_tests/unit_test_network.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/coresdk/src/test/unit_tests/unit_test_network.cpp b/coresdk/src/test/unit_tests/unit_test_network.cpp index 96039ad3..f748e271 100644 --- a/coresdk/src/test/unit_tests/unit_test_network.cpp +++ b/coresdk/src/test/unit_tests/unit_test_network.cpp @@ -143,7 +143,7 @@ TEST_CASE("can communicate with server", "[networking]") enable_logging(WARNING); } } -TEST_CASE("can convert network data") +TEST_CASE("can convert network data", "[networking]") { close_all_servers(); close_all_connections(); @@ -240,7 +240,7 @@ TEST_CASE("can convert network data") REQUIRE_FALSE(is_valid_ipv4("192,168,1,1")); // Wrong separator } } -TEST_CASE("can convert mac address string to hex string") +TEST_CASE("can convert mac address string to hex string", "[networking]") { REQUIRE(mac_to_hex("00:00:00:00:00:00") == "0x000000000000"); REQUIRE(mac_to_hex("FF:FF:FF:FF:FF:FF") == "0xFFFFFFFFFFFF"); @@ -276,7 +276,7 @@ TEST_CASE("can convert mac address string to hex string") << "AB:CD:EF:12:34:56" << " in hex: " << result << std::endl; } -TEST_CASE("can convert hex string to mac address string") +TEST_CASE("can convert hex string to mac address string", "[networking]") { REQUIRE(hex_to_mac("0x000000000000") == "00:00:00:00:00:00"); REQUIRE(hex_to_mac("0xFFFFFFFFFFFF") == "FF:FF:FF:FF:FF:FF"); @@ -310,7 +310,7 @@ TEST_CASE("can convert hex string to mac address string") std::cout << "-------------------------------------" << std::endl; } -TEST_CASE("check the validation of mac address") +TEST_CASE("check the validation of mac address", "[networking]") { // Valid MAC addresses REQUIRE(is_valid_mac("00:00:00:00:00:00"));