Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / netwerk / test / gtest / TestNetworkLinkIdHashingWindows.cpp
blobeb2097d0a4c66083053e0231bd38e086155119cd
1 #include <combaseapi.h>
3 #include "gtest/gtest.h"
4 #include "mozilla/SHA1.h"
5 #include "nsNotifyAddrListener.h"
7 using namespace mozilla;
9 GUID StringToGuid(const std::string& str) {
10 GUID guid;
11 sscanf(str.c_str(),
12 "%8lx-%4hx-%4hx-%2hhx%2hhx-%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx",
13 &guid.Data1, &guid.Data2, &guid.Data3, &guid.Data4[0], &guid.Data4[1],
14 &guid.Data4[2], &guid.Data4[3], &guid.Data4[4], &guid.Data4[5],
15 &guid.Data4[6], &guid.Data4[7]);
17 return guid;
20 TEST(TestGuidHashWindows, Single)
22 // Setup
23 SHA1Sum expected_sha1;
24 SHA1Sum::Hash expected_digest;
26 GUID g1 = StringToGuid("264555b1-289c-4494-83d1-e158d1d95115");
28 expected_sha1.update(&g1, sizeof(GUID));
29 expected_sha1.finish(expected_digest);
31 std::vector<GUID> nwGUIDS;
32 nwGUIDS.push_back(g1);
33 SHA1Sum actual_sha1;
34 // Run
35 nsNotifyAddrListener::HashSortedNetworkIds(nwGUIDS, actual_sha1);
36 SHA1Sum::Hash actual_digest;
37 actual_sha1.finish(actual_digest);
39 // Assert
40 ASSERT_EQ(0, memcmp(&expected_digest, &actual_digest, sizeof(SHA1Sum::Hash)));
43 TEST(TestNetworkLinkIdHashingWindows, Multiple)
45 // Setup
46 SHA1Sum expected_sha1;
47 SHA1Sum::Hash expected_digest;
49 std::vector<GUID> nwGUIDS;
50 nwGUIDS.push_back(StringToGuid("00000000-0000-0000-0000-000000000001"));
51 nwGUIDS.push_back(StringToGuid("00000000-0000-0000-0000-000000000002"));
52 nwGUIDS.push_back(StringToGuid("00000000-0000-0000-0000-000000000003"));
53 nwGUIDS.push_back(StringToGuid("00000000-0000-0000-0000-000000000004"));
55 for (const auto& guid : nwGUIDS) {
56 expected_sha1.update(&guid, sizeof(GUID));
58 expected_sha1.finish(expected_digest);
60 // Ordered
61 std::vector<GUID> ordered;
62 for (const auto& guid : nwGUIDS) {
63 ordered.push_back(guid);
65 SHA1Sum ordered_sha1;
67 // Unordered
68 std::vector<GUID> reversed;
69 for (auto it = nwGUIDS.rbegin(); it != nwGUIDS.rend(); ++it) {
70 reversed.push_back(*it);
72 SHA1Sum reversed_sha1;
74 // Run
75 nsNotifyAddrListener::HashSortedNetworkIds(ordered, ordered_sha1);
76 SHA1Sum::Hash ordered_digest;
77 ordered_sha1.finish(ordered_digest);
79 nsNotifyAddrListener::HashSortedNetworkIds(reversed, reversed_sha1);
80 SHA1Sum::Hash reversed_digest;
81 reversed_sha1.finish(reversed_digest);
83 // Assert
84 ASSERT_EQ(0,
85 memcmp(&expected_digest, &ordered_digest, sizeof(SHA1Sum::Hash)));
86 ASSERT_EQ(0,
87 memcmp(&expected_digest, &reversed_digest, sizeof(SHA1Sum::Hash)));