test: move test cases for client_id_{hash,compare}_func() to test-dhcp-client-id.c

This commit is contained in:
Yu Watanabe
2026-05-13 03:02:37 +09:00
parent 000eb0f908
commit c28ec168aa
3 changed files with 54 additions and 46 deletions
+3
View 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'),
},
@@ -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);
-46
View 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();