diff options
Diffstat (limited to 'Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp')
-rw-r--r-- | Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp | 63 |
1 files changed, 50 insertions, 13 deletions
diff --git a/Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp b/Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp index a4d223c99..5985b026a 100644 --- a/Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp +++ b/Tools/TestWebKitAPI/Tests/WTF/StringHasher.cpp @@ -25,7 +25,7 @@ #include "config.h" -#include <wtf/StringHasher.h> +#include <wtf/Hasher.h> namespace TestWebKitAPI { @@ -264,6 +264,43 @@ TEST(WTF, StringHasher_addCharacters) hasher.addCharacters(testBUChars + 3); ASSERT_EQ(testBHash5, hasher.hash()); ASSERT_EQ(testBHash5 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + // Hashing zero characters after hashing other characters. + hasher = StringHasher(); + hasher.addCharacters(nullLChars, 0); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(emptyStringHash, hasher.hash()); + ASSERT_EQ(emptyStringHash & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + hasher = StringHasher(); + hasher.addCharacters(testALChars, 1); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(testAHash1, hasher.hash()); + ASSERT_EQ(testAHash1 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + hasher = StringHasher(); + hasher.addCharacters(testALChars, 2); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(testAHash2, hasher.hash()); + ASSERT_EQ(testAHash2 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + hasher = StringHasher(); + hasher.addCharacters(testAUChars, 3); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(testAHash3, hasher.hash()); + ASSERT_EQ(testAHash3 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + hasher = StringHasher(); + hasher.addCharacters(testALChars, 4); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(testAHash4, hasher.hash()); + ASSERT_EQ(testAHash4 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); + + hasher = StringHasher(); + hasher.addCharacters(testALChars, 5); + hasher.addCharacters(nullLChars, 0); + ASSERT_EQ(testAHash5, hasher.hash()); + ASSERT_EQ(testAHash5 & 0xFFFFFF, hasher.hashWithTop8BitsMasked()); } TEST(WTF, StringHasher_addCharactersAssumingAligned) @@ -427,18 +464,18 @@ TEST(WTF, StringHasher_computeHashAndMaskTop8Bits) TEST(WTF, StringHasher_hashMemory) { - ASSERT_EQ(emptyStringHash & 0xFFFFFF, StringHasher::hashMemory(0, 0)); - ASSERT_EQ(emptyStringHash & 0xFFFFFF, StringHasher::hashMemory(nullUChars, 0)); - ASSERT_EQ(emptyStringHash & 0xFFFFFF, StringHasher::hashMemory<0>(0)); - ASSERT_EQ(emptyStringHash & 0xFFFFFF, StringHasher::hashMemory<0>(nullUChars)); - - ASSERT_EQ(singleNullCharacterHash & 0xFFFFFF, StringHasher::hashMemory(nullUChars, 2)); - ASSERT_EQ(singleNullCharacterHash & 0xFFFFFF, StringHasher::hashMemory<2>(nullUChars)); - - ASSERT_EQ(testAHash5 & 0xFFFFFF, StringHasher::hashMemory(testAUChars, 10)); - ASSERT_EQ(testAHash5 & 0xFFFFFF, StringHasher::hashMemory<10>(testAUChars)); - ASSERT_EQ(testBHash5 & 0xFFFFFF, StringHasher::hashMemory(testBUChars, 10)); - ASSERT_EQ(testBHash5 & 0xFFFFFF, StringHasher::hashMemory<10>(testBUChars)); + ASSERT_EQ(emptyStringHash, StringHasher::hashMemory(0, 0)); + ASSERT_EQ(emptyStringHash, StringHasher::hashMemory(nullUChars, 0)); + ASSERT_EQ(emptyStringHash, StringHasher::hashMemory<0>(0)); + ASSERT_EQ(emptyStringHash, StringHasher::hashMemory<0>(nullUChars)); + + ASSERT_EQ(singleNullCharacterHash, StringHasher::hashMemory(nullUChars, 2)); + ASSERT_EQ(singleNullCharacterHash, StringHasher::hashMemory<2>(nullUChars)); + + ASSERT_EQ(testAHash5, StringHasher::hashMemory(testAUChars, 10)); + ASSERT_EQ(testAHash5, StringHasher::hashMemory<10>(testAUChars)); + ASSERT_EQ(testBHash5, StringHasher::hashMemory(testBUChars, 10)); + ASSERT_EQ(testBHash5, StringHasher::hashMemory<10>(testBUChars)); } } // namespace TestWebKitAPI |