Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/toolkit/components/url-classifier/tests/gtest/TestSafebrowsingHash.cpp
Line
Count
Source (jump to first uncovered line)
1
#include "Entries.h"
2
#include "mozilla/EndianUtils.h"
3
4
TEST(UrlClassifierHash, ToFromUint32)
5
0
{
6
0
  using namespace mozilla::safebrowsing;
7
0
8
0
  // typedef SafebrowsingHash<PREFIX_SIZE, PrefixComparator> Prefix;
9
0
  // typedef nsTArray<Prefix> PrefixArray;
10
0
11
0
  const char PREFIX_RAW[4] = { 0x1, 0x2, 0x3, 0x4 };
12
0
  uint32_t PREFIX_UINT32;
13
0
  memcpy(&PREFIX_UINT32, PREFIX_RAW, 4);
14
0
15
0
  Prefix p;
16
0
  p.Assign(nsCString(PREFIX_RAW, 4));
17
0
  ASSERT_EQ(p.ToUint32(), PREFIX_UINT32);
18
0
19
0
  p.FromUint32(PREFIX_UINT32);
20
0
  ASSERT_EQ(memcmp(PREFIX_RAW, p.buf, 4), 0);
21
0
}
22
23
TEST(UrlClassifierHash, Compare)
24
0
{
25
0
  using namespace mozilla;
26
0
  using namespace mozilla::safebrowsing;
27
0
28
0
  Prefix p1, p2, p3;
29
0
30
0
  // The order of p1,p2,p3 is "p1 == p3 < p2"
31
0
#if MOZ_LITTLE_ENDIAN
32
0
  p1.Assign(nsCString("\x01\x00\x00\x00", 4));
33
0
  p2.Assign(nsCString("\x00\x00\x00\x01", 4));
34
0
  p3.Assign(nsCString("\x01\x00\x00\x00", 4));
35
#else
36
  p1.Assign(nsCString("\x00\x00\x00\x01", 4));
37
  p2.Assign(nsCString("\x01\x00\x00\x00", 4));
38
  p3.Assign(nsCString("\x00\x00\x00\x01", 4));
39
#endif
40
41
0
  // Make sure "p1 == p3 < p2" is true
42
0
  // on both little and big endian machine.
43
0
44
0
  ASSERT_EQ(p1.Compare(p2), -1);
45
0
  ASSERT_EQ(p1.Compare(p1), 0);
46
0
  ASSERT_EQ(p2.Compare(p1), 1);
47
0
  ASSERT_EQ(p1.Compare(p3), 0);
48
0
49
0
  ASSERT_TRUE(p1 < p2);
50
0
  ASSERT_TRUE(p1 == p1);
51
0
  ASSERT_TRUE(p1 == p3);
52
0
}