/usr/share/gocode/src/github.com/miekg/dns/dnsutil/util_test.go is in golang-github-miekg-dns-dev 0.0~git20170501.0.f282f80-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | package dnsutil
import "testing"
func TestAddOrigin(t *testing.T) {
var tests = []struct{ e1, e2, expected string }{
{"@", "example.com", "example.com"},
{"foo", "example.com", "foo.example.com"},
{"foo.", "example.com", "foo."},
{"@", "example.com.", "example.com."},
{"foo", "example.com.", "foo.example.com."},
{"foo.", "example.com.", "foo."},
// Oddball tests:
// In general origin should not be "" or "." but at least
// these tests verify we don't crash and will keep results
// from changing unexpectedly.
{"*.", "", "*."},
{"@", "", "@"},
{"foobar", "", "foobar"},
{"foobar.", "", "foobar."},
{"*.", ".", "*."},
{"@", ".", "."},
{"foobar", ".", "foobar."},
{"foobar.", ".", "foobar."},
}
for _, test := range tests {
actual := AddOrigin(test.e1, test.e2)
if test.expected != actual {
t.Errorf("AddOrigin(%#v, %#v) expected %#v, go %#v\n", test.e1, test.e2, test.expected, actual)
}
}
}
func TestTrimDomainName(t *testing.T) {
// Basic tests.
// Try trimming "example.com" and "example.com." from typical use cases.
var tests_examplecom = []struct{ experiment, expected string }{
{"foo.example.com", "foo"},
{"foo.example.com.", "foo"},
{".foo.example.com", ".foo"},
{".foo.example.com.", ".foo"},
{"*.example.com", "*"},
{"example.com", "@"},
{"example.com.", "@"},
{"com.", "com."},
{"foo.", "foo."},
{"serverfault.com.", "serverfault.com."},
{"serverfault.com", "serverfault.com"},
{".foo.ronco.com", ".foo.ronco.com"},
{".foo.ronco.com.", ".foo.ronco.com."},
}
for _, dom := range []string{"example.com", "example.com."} {
for i, test := range tests_examplecom {
actual := TrimDomainName(test.experiment, dom)
if test.expected != actual {
t.Errorf("%d TrimDomainName(%#v, %#v): expected (%v) got (%v)\n", i, test.experiment, dom, test.expected, actual)
}
}
}
// Paranoid tests.
// These test shouldn't be needed but I was weary of off-by-one errors.
// In theory, these can't happen because there are no single-letter TLDs,
// but it is good to exercize the code this way.
var tests = []struct{ experiment, expected string }{
{"", "@"},
{".", "."},
{"a.b.c.d.e.f.", "a.b.c.d.e"},
{"b.c.d.e.f.", "b.c.d.e"},
{"c.d.e.f.", "c.d.e"},
{"d.e.f.", "d.e"},
{"e.f.", "e"},
{"f.", "@"},
{".a.b.c.d.e.f.", ".a.b.c.d.e"},
{".b.c.d.e.f.", ".b.c.d.e"},
{".c.d.e.f.", ".c.d.e"},
{".d.e.f.", ".d.e"},
{".e.f.", ".e"},
{".f.", "@"},
{"a.b.c.d.e.f", "a.b.c.d.e"},
{"a.b.c.d.e.", "a.b.c.d.e."},
{"a.b.c.d.e", "a.b.c.d.e"},
{"a.b.c.d.", "a.b.c.d."},
{"a.b.c.d", "a.b.c.d"},
{"a.b.c.", "a.b.c."},
{"a.b.c", "a.b.c"},
{"a.b.", "a.b."},
{"a.b", "a.b"},
{"a.", "a."},
{"a", "a"},
{".a.b.c.d.e.f", ".a.b.c.d.e"},
{".a.b.c.d.e.", ".a.b.c.d.e."},
{".a.b.c.d.e", ".a.b.c.d.e"},
{".a.b.c.d.", ".a.b.c.d."},
{".a.b.c.d", ".a.b.c.d"},
{".a.b.c.", ".a.b.c."},
{".a.b.c", ".a.b.c"},
{".a.b.", ".a.b."},
{".a.b", ".a.b"},
{".a.", ".a."},
{".a", ".a"},
}
for _, dom := range []string{"f", "f."} {
for i, test := range tests {
actual := TrimDomainName(test.experiment, dom)
if test.expected != actual {
t.Errorf("%d TrimDomainName(%#v, %#v): expected (%v) got (%v)\n", i, test.experiment, dom, test.expected, actual)
}
}
}
// Test cases for bugs found in the wild.
// These test cases provide both origin, s, and the expected result.
// If you find a bug in the while, this is probably the easiest place
// to add it as a test case.
var tests_wild = []struct{ e1, e2, expected string }{
{"mathoverflow.net.", ".", "mathoverflow.net"},
{"mathoverflow.net", ".", "mathoverflow.net"},
{"", ".", "@"},
{"@", ".", "@"},
}
for i, test := range tests_wild {
actual := TrimDomainName(test.e1, test.e2)
if test.expected != actual {
t.Errorf("%d TrimDomainName(%#v, %#v): expected (%v) got (%v)\n", i, test.e1, test.e2, test.expected, actual)
}
}
}
|