test/test_hash_key.cpp

changeset 604
056e5f592d84
parent 603
c49104015a6b
equal deleted inserted replaced
603:c49104015a6b 604:056e5f592d84
30 30
31 #include <gtest/gtest.h> 31 #include <gtest/gtest.h>
32 32
33 TEST(cx_hash_key, functions) { 33 TEST(cx_hash_key, functions) {
34 auto str = "my key"; 34 auto str = "my key";
35 auto len = 1 + strlen(str); 35 auto len = strlen(str);
36 36
37 auto str_key = cx_hash_key_str(str); 37 auto str_key = cx_hash_key_str(str);
38 auto bytes_key = cx_hash_key_bytes( 38 auto bytes_key = cx_hash_key_bytes(
39 reinterpret_cast<unsigned char const *>(str), len); 39 reinterpret_cast<unsigned char const *>(str), len);
40 auto obj_key = cx_hash_key( 40 auto obj_key = cx_hash_key(
45 EXPECT_EQ(str_key.len, len); 45 EXPECT_EQ(str_key.len, len);
46 EXPECT_EQ(bytes_key.len, len); 46 EXPECT_EQ(bytes_key.len, len);
47 EXPECT_EQ(bytes_key.len, len); 47 EXPECT_EQ(bytes_key.len, len);
48 EXPECT_EQ(str_key.data.cstr, str); 48 EXPECT_EQ(str_key.data.cstr, str);
49 EXPECT_EQ(bytes_key.data.cbytes, reinterpret_cast<unsigned char const *>(str)); 49 EXPECT_EQ(bytes_key.data.cbytes, reinterpret_cast<unsigned char const *>(str));
50 EXPECT_EQ(bytes_key.data.obj, (void *) str); 50 EXPECT_EQ(bytes_key.data.cobj, reinterpret_cast<void const *>(str));
51 } 51 }
52
53 TEST(cx_hash_key, empty_string) {
54 auto str = "";
55
56 auto str_key = cx_hash_key_str(str);
57 auto bytes_key = cx_hash_key_bytes(
58 reinterpret_cast<unsigned char const *>(str), 0);
59 auto obj_key = cx_hash_key(
60 reinterpret_cast<void const *>(str), 0);
61
62 EXPECT_EQ(bytes_key.hash, 4152238450u);
63 EXPECT_EQ(str_key.hash, 4152238450u);
64 EXPECT_EQ(obj_key.hash, 4152238450u);
65 EXPECT_EQ(str_key.len, 0);
66 EXPECT_EQ(bytes_key.len, 0);
67 EXPECT_EQ(bytes_key.len, 0);
68 EXPECT_EQ(str_key.data.cstr, str);
69 EXPECT_EQ(bytes_key.data.cbytes, reinterpret_cast<unsigned char const *>(str));
70 EXPECT_EQ(bytes_key.data.cobj, reinterpret_cast<void const *>(str));
71 }
72
73 TEST(cx_hash_key, null_ptr) {
74 auto str_key = cx_hash_key_str(nullptr);
75 auto bytes_key = cx_hash_key_bytes(nullptr, 0);
76 auto obj_key = cx_hash_key(nullptr, 0);
77
78 EXPECT_EQ(bytes_key.hash, 1574210520u);
79 EXPECT_EQ(str_key.hash, 1574210520u);
80 EXPECT_EQ(obj_key.hash, 1574210520u);
81 EXPECT_EQ(str_key.len, 0);
82 EXPECT_EQ(bytes_key.len, 0);
83 EXPECT_EQ(bytes_key.len, 0);
84 EXPECT_EQ(str_key.data.cstr, nullptr);
85 EXPECT_EQ(bytes_key.data.cbytes, nullptr);
86 EXPECT_EQ(bytes_key.data.cobj, nullptr);
87 }

mercurial