1.1 --- a/test/test_hash_key.cpp Sun Nov 06 14:46:59 2022 +0100 1.2 +++ b/test/test_hash_key.cpp Sun Nov 06 16:07:32 2022 +0100 1.3 @@ -32,7 +32,7 @@ 1.4 1.5 TEST(cx_hash_key, functions) { 1.6 auto str = "my key"; 1.7 - auto len = 1 + strlen(str); 1.8 + auto len = strlen(str); 1.9 1.10 auto str_key = cx_hash_key_str(str); 1.11 auto bytes_key = cx_hash_key_bytes( 1.12 @@ -47,5 +47,41 @@ 1.13 EXPECT_EQ(bytes_key.len, len); 1.14 EXPECT_EQ(str_key.data.cstr, str); 1.15 EXPECT_EQ(bytes_key.data.cbytes, reinterpret_cast<unsigned char const *>(str)); 1.16 - EXPECT_EQ(bytes_key.data.obj, (void *) str); 1.17 + EXPECT_EQ(bytes_key.data.cobj, reinterpret_cast<void const *>(str)); 1.18 } 1.19 + 1.20 +TEST(cx_hash_key, empty_string) { 1.21 + auto str = ""; 1.22 + 1.23 + auto str_key = cx_hash_key_str(str); 1.24 + auto bytes_key = cx_hash_key_bytes( 1.25 + reinterpret_cast<unsigned char const *>(str), 0); 1.26 + auto obj_key = cx_hash_key( 1.27 + reinterpret_cast<void const *>(str), 0); 1.28 + 1.29 + EXPECT_EQ(bytes_key.hash, 4152238450u); 1.30 + EXPECT_EQ(str_key.hash, 4152238450u); 1.31 + EXPECT_EQ(obj_key.hash, 4152238450u); 1.32 + EXPECT_EQ(str_key.len, 0); 1.33 + EXPECT_EQ(bytes_key.len, 0); 1.34 + EXPECT_EQ(bytes_key.len, 0); 1.35 + EXPECT_EQ(str_key.data.cstr, str); 1.36 + EXPECT_EQ(bytes_key.data.cbytes, reinterpret_cast<unsigned char const *>(str)); 1.37 + EXPECT_EQ(bytes_key.data.cobj, reinterpret_cast<void const *>(str)); 1.38 +} 1.39 + 1.40 +TEST(cx_hash_key, null_ptr) { 1.41 + auto str_key = cx_hash_key_str(nullptr); 1.42 + auto bytes_key = cx_hash_key_bytes(nullptr, 0); 1.43 + auto obj_key = cx_hash_key(nullptr, 0); 1.44 + 1.45 + EXPECT_EQ(bytes_key.hash, 1574210520u); 1.46 + EXPECT_EQ(str_key.hash, 1574210520u); 1.47 + EXPECT_EQ(obj_key.hash, 1574210520u); 1.48 + EXPECT_EQ(str_key.len, 0); 1.49 + EXPECT_EQ(bytes_key.len, 0); 1.50 + EXPECT_EQ(bytes_key.len, 0); 1.51 + EXPECT_EQ(str_key.data.cstr, nullptr); 1.52 + EXPECT_EQ(bytes_key.data.cbytes, nullptr); 1.53 + EXPECT_EQ(bytes_key.data.cobj, nullptr); 1.54 +}