1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2018 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker
5*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/fxfa_basic.h"
6*3ac0a46fSAndroid Build Coastguard Worker
7*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/bytestring.h"
8*3ac0a46fSAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
9*3ac0a46fSAndroid Build Coastguard Worker
10*3ac0a46fSAndroid Build Coastguard Worker namespace {
11*3ac0a46fSAndroid Build Coastguard Worker
HashTestCase(uint32_t hash,const char * str,uint32_t * so_far)12*3ac0a46fSAndroid Build Coastguard Worker void HashTestCase(uint32_t hash, const char* str, uint32_t* so_far) {
13*3ac0a46fSAndroid Build Coastguard Worker if (hash != 0xffffffffu) {
14*3ac0a46fSAndroid Build Coastguard Worker EXPECT_EQ(hash, FX_HashCode_GetAsIfW(str)) << str;
15*3ac0a46fSAndroid Build Coastguard Worker EXPECT_LT(*so_far, hash) << hash;
16*3ac0a46fSAndroid Build Coastguard Worker } else {
17*3ac0a46fSAndroid Build Coastguard Worker EXPECT_NE(hash, FX_HashCode_GetAsIfW(str)) << str;
18*3ac0a46fSAndroid Build Coastguard Worker }
19*3ac0a46fSAndroid Build Coastguard Worker *so_far = hash;
20*3ac0a46fSAndroid Build Coastguard Worker }
21*3ac0a46fSAndroid Build Coastguard Worker
22*3ac0a46fSAndroid Build Coastguard Worker } // namespace
23*3ac0a46fSAndroid Build Coastguard Worker
TEST(FXFABasic,PacketHashTest)24*3ac0a46fSAndroid Build Coastguard Worker TEST(FXFABasic, PacketHashTest) {
25*3ac0a46fSAndroid Build Coastguard Worker uint32_t so_far = 0;
26*3ac0a46fSAndroid Build Coastguard Worker #undef PCKT____
27*3ac0a46fSAndroid Build Coastguard Worker #define PCKT____(a, b, c, d, e, f) HashTestCase(a, b, &so_far);
28*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/packets.inc"
29*3ac0a46fSAndroid Build Coastguard Worker #undef PCKT____
30*3ac0a46fSAndroid Build Coastguard Worker }
31*3ac0a46fSAndroid Build Coastguard Worker
TEST(FXFABasic,AttributeHashTest)32*3ac0a46fSAndroid Build Coastguard Worker TEST(FXFABasic, AttributeHashTest) {
33*3ac0a46fSAndroid Build Coastguard Worker uint32_t so_far = 0;
34*3ac0a46fSAndroid Build Coastguard Worker #undef ATTR____
35*3ac0a46fSAndroid Build Coastguard Worker #define ATTR____(a, b, c, d) HashTestCase(a, b, &so_far);
36*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/attributes.inc"
37*3ac0a46fSAndroid Build Coastguard Worker #undef ATTR____
38*3ac0a46fSAndroid Build Coastguard Worker }
39*3ac0a46fSAndroid Build Coastguard Worker
TEST(FXFABasic,ValueHashTest)40*3ac0a46fSAndroid Build Coastguard Worker TEST(FXFABasic, ValueHashTest) {
41*3ac0a46fSAndroid Build Coastguard Worker uint32_t so_far = 0;
42*3ac0a46fSAndroid Build Coastguard Worker #undef VALUE____
43*3ac0a46fSAndroid Build Coastguard Worker #define VALUE____(a, b, c) HashTestCase(a, b, &so_far);
44*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/attribute_values.inc"
45*3ac0a46fSAndroid Build Coastguard Worker #undef VALUE____
46*3ac0a46fSAndroid Build Coastguard Worker }
47*3ac0a46fSAndroid Build Coastguard Worker
TEST(FXFABasic,ElementHashTest)48*3ac0a46fSAndroid Build Coastguard Worker TEST(FXFABasic, ElementHashTest) {
49*3ac0a46fSAndroid Build Coastguard Worker uint32_t so_far = 0;
50*3ac0a46fSAndroid Build Coastguard Worker #undef ELEM____
51*3ac0a46fSAndroid Build Coastguard Worker #define ELEM____(a, b, c, d) HashTestCase(a, b, &so_far);
52*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/elements.inc"
53*3ac0a46fSAndroid Build Coastguard Worker #undef ELEM____
54*3ac0a46fSAndroid Build Coastguard Worker }
55