| // Copyright 2018 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "xfa/fxfa/fxfa_basic.h" |
| |
| #include "core/fxcrt/bytestring.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace { |
| |
| void HashTestCase(uint32_t hash, const char* str, uint32_t* so_far) { |
| if (hash != 0xffffffffu) { |
| EXPECT_EQ(hash, FX_HashCode_GetAsIfW(str, false)) << str; |
| EXPECT_LT(*so_far, hash) << hash; |
| } else { |
| EXPECT_NE(hash, FX_HashCode_GetAsIfW(str, false)) << str; |
| } |
| *so_far = hash; |
| } |
| |
| } // namespace |
| |
| TEST(FXFABasic, PacketHashTest) { |
| uint32_t so_far = 0; |
| #undef PCKT____ |
| #define PCKT____(a, b, c, d, e, f) HashTestCase(a, b, &so_far); |
| #include "xfa/fxfa/parser/packets.inc" |
| #undef PCKT____ |
| } |
| |
| TEST(FXFABasic, AttributeHashTest) { |
| uint32_t so_far = 0; |
| #undef ATTR____ |
| #define ATTR____(a, b, c, d) HashTestCase(a, b, &so_far); |
| #include "xfa/fxfa/parser/attributes.inc" |
| #undef ATTR____ |
| } |
| |
| TEST(FXFABasic, ValueHashTest) { |
| uint32_t so_far = 0; |
| #undef VALUE____ |
| #define VALUE____(a, b, c) HashTestCase(a, b, &so_far); |
| #include "xfa/fxfa/parser/attribute_values.inc" |
| #undef VALUE____ |
| } |
| |
| TEST(FXFABasic, ElementHashTest) { |
| uint32_t so_far = 0; |
| #undef ELEM____ |
| #define ELEM____(a, b, c, d) HashTestCase(a, b, &so_far); |
| #include "xfa/fxfa/parser/elements.inc" |
| #undef ELEM____ |
| } |