Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / netwerk / test / gtest / TestDNSPacket.cpp
blob49530b80e00626929bd04817602c8fd1b2aeb5f6
1 #include "gtest/gtest.h"
3 #include "mozilla/net/DNSPacket.h"
4 #include "mozilla/Preferences.h"
6 using namespace mozilla;
7 using namespace mozilla::net;
9 void AssertDnsPadding(uint32_t PaddingLength, unsigned int WithPadding,
10 unsigned int WithoutPadding, bool DisableEcn,
11 const nsCString& host) {
12 DNSPacket encoder;
13 nsCString buf;
15 ASSERT_EQ(Preferences::SetUint("network.trr.padding.length", PaddingLength),
16 NS_OK);
18 ASSERT_EQ(Preferences::SetBool("network.trr.padding", true), NS_OK);
19 ASSERT_EQ(encoder.EncodeRequest(buf, host, 1, DisableEcn), NS_OK);
20 ASSERT_EQ(buf.Length(), WithPadding);
22 ASSERT_EQ(Preferences::SetBool("network.trr.padding", false), NS_OK);
23 ASSERT_EQ(encoder.EncodeRequest(buf, host, 1, DisableEcn), NS_OK);
24 ASSERT_EQ(buf.Length(), WithoutPadding);
27 TEST(TestDNSPacket, PaddingLenEcn)
29 AssertDnsPadding(16, 48, 41, true, "a.de"_ns);
30 AssertDnsPadding(16, 48, 42, true, "ab.de"_ns);
31 AssertDnsPadding(16, 48, 43, true, "abc.de"_ns);
32 AssertDnsPadding(16, 48, 44, true, "abcd.de"_ns);
33 AssertDnsPadding(16, 64, 45, true, "abcde.de"_ns);
34 AssertDnsPadding(16, 64, 46, true, "abcdef.de"_ns);
35 AssertDnsPadding(16, 64, 47, true, "abcdefg.de"_ns);
36 AssertDnsPadding(16, 64, 48, true, "abcdefgh.de"_ns);
39 TEST(TestDNSPacket, PaddingLenDisableEcn)
41 AssertDnsPadding(16, 48, 22, false, "a.de"_ns);
42 AssertDnsPadding(16, 48, 23, false, "ab.de"_ns);
43 AssertDnsPadding(16, 48, 24, false, "abc.de"_ns);
44 AssertDnsPadding(16, 48, 25, false, "abcd.de"_ns);
45 AssertDnsPadding(16, 48, 26, false, "abcde.de"_ns);
46 AssertDnsPadding(16, 48, 27, false, "abcdef.de"_ns);
47 AssertDnsPadding(16, 48, 32, false, "abcdefghijk.de"_ns);
48 AssertDnsPadding(16, 48, 33, false, "abcdefghijkl.de"_ns);
49 AssertDnsPadding(16, 64, 34, false, "abcdefghijklm.de"_ns);
50 AssertDnsPadding(16, 64, 35, false, "abcdefghijklmn.de"_ns);
53 TEST(TestDNSPacket, PaddingLengths)
55 AssertDnsPadding(0, 45, 41, true, "a.de"_ns);
56 AssertDnsPadding(1, 45, 41, true, "a.de"_ns);
57 AssertDnsPadding(2, 46, 41, true, "a.de"_ns);
58 AssertDnsPadding(3, 45, 41, true, "a.de"_ns);
59 AssertDnsPadding(4, 48, 41, true, "a.de"_ns);
60 AssertDnsPadding(16, 48, 41, true, "a.de"_ns);
61 AssertDnsPadding(32, 64, 41, true, "a.de"_ns);
62 AssertDnsPadding(42, 84, 41, true, "a.de"_ns);
63 AssertDnsPadding(52, 52, 41, true, "a.de"_ns);
64 AssertDnsPadding(80, 80, 41, true, "a.de"_ns);
65 AssertDnsPadding(128, 128, 41, true, "a.de"_ns);
66 AssertDnsPadding(256, 256, 41, true, "a.de"_ns);
67 AssertDnsPadding(1024, 1024, 41, true, "a.de"_ns);
68 AssertDnsPadding(1025, 1024, 41, true, "a.de"_ns);