]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: move test cases for client_id_{hash,compare}_func() to test-dhcp-client-id.c 42062/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 4 May 2026 05:15:44 +0000 (14:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 12 May 2026 18:02:37 +0000 (03:02 +0900)
src/libsystemd-network/meson.build
src/libsystemd-network/test-dhcp-client-id.c [new file with mode: 0644]
src/libsystemd-network/test-dhcp-server.c

index 9a2d1bc77651727b197f85f205a83d2980f0e49d..500882319e63e5eec4066be3751a6644c36a05c0 100644 (file)
@@ -78,6 +78,9 @@ executables += [
         network_test_template + {
                 'sources' : files('test-dhcp-client.c'),
         },
+        network_test_template + {
+                'sources' : files('test-dhcp-client-id.c'),
+        },
         network_test_template + {
                 'sources' : files('test-dhcp-duid.c'),
         },
diff --git a/src/libsystemd-network/test-dhcp-client-id.c b/src/libsystemd-network/test-dhcp-client-id.c
new file mode 100644 (file)
index 0000000..60cb682
--- /dev/null
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "dhcp-client-id-internal.h"
+#include "hashmap.h"
+#include "siphash24.h"
+#include "tests.h"
+
+static uint64_t client_id_hash_helper(sd_dhcp_client_id *id, uint8_t key[HASH_KEY_SIZE]) {
+        struct siphash state;
+
+        siphash24_init(&state, key);
+        client_id_hash_func(id, &state);
+
+        return htole64(siphash24_finalize(&state));
+}
+
+TEST(client_id_hash) {
+        sd_dhcp_client_id a = {
+                .size = 4,
+        }, b = {
+                .size = 4,
+        };
+        uint8_t hash_key[HASH_KEY_SIZE] = {
+                '0', '1', '2', '3', '4', '5', '6', '7',
+                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
+        };
+
+        log_debug("/* %s */", __func__);
+
+        memcpy(a.raw, "abcd", 4);
+        memcpy(b.raw, "abcd", 4);
+
+        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
+        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
+        a.size = 3;
+        ASSERT_NE(client_id_compare_func(&a, &b), 0);
+        a.size = 4;
+        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
+        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
+
+        b.size = 3;
+        ASSERT_NE(client_id_compare_func(&a, &b), 0);
+        b.size = 4;
+        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
+        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
+
+        memcpy(b.raw, "abce", 4);
+        ASSERT_NE(client_id_compare_func(&a, &b), 0);
+}
+
+DEFINE_TEST_MAIN(LOG_DEBUG);
index 3dc49491269b154fd5aee66a8a327e7658487806..4da4fdb116b5b8a2c673bfe025e135ddef55bf54 100644 (file)
@@ -9,8 +9,6 @@
 #include "sd-event.h"
 
 #include "dhcp-server-internal.h"
-#include "hashmap.h"
-#include "siphash24.h"
 #include "tests.h"
 
 static void test_pool(struct in_addr *address, unsigned size, int ret) {
@@ -285,49 +283,6 @@ static void test_message_handler(void) {
         ASSERT_OK_EQ(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test), NULL), DHCP_ACK);
 }
 
-static uint64_t client_id_hash_helper(sd_dhcp_client_id *id, uint8_t key[HASH_KEY_SIZE]) {
-        struct siphash state;
-
-        siphash24_init(&state, key);
-        client_id_hash_func(id, &state);
-
-        return htole64(siphash24_finalize(&state));
-}
-
-static void test_client_id_hash(void) {
-        sd_dhcp_client_id a = {
-                .size = 4,
-        }, b = {
-                .size = 4,
-        };
-        uint8_t hash_key[HASH_KEY_SIZE] = {
-                '0', '1', '2', '3', '4', '5', '6', '7',
-                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
-        };
-
-        log_debug("/* %s */", __func__);
-
-        memcpy(a.raw, "abcd", 4);
-        memcpy(b.raw, "abcd", 4);
-
-        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
-        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
-        a.size = 3;
-        ASSERT_NE(client_id_compare_func(&a, &b), 0);
-        a.size = 4;
-        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
-        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
-
-        b.size = 3;
-        ASSERT_NE(client_id_compare_func(&a, &b), 0);
-        b.size = 4;
-        ASSERT_EQ(client_id_compare_func(&a, &b), 0);
-        ASSERT_EQ(client_id_hash_helper(&a, hash_key), client_id_hash_helper(&b, hash_key));
-
-        memcpy(b.raw, "abce", 4);
-        ASSERT_NE(client_id_compare_func(&a, &b), 0);
-}
-
 static void test_static_lease(void) {
         _cleanup_(sd_dhcp_server_unrefp) sd_dhcp_server *server = NULL;
 
@@ -452,7 +407,6 @@ int main(int argc, char *argv[]) {
 
         test_setup_logging(LOG_DEBUG);
 
-        test_client_id_hash();
         test_static_lease();
         test_domain_name();