diff options
author | 2017-09-20 13:06:53 -0700 | |
---|---|---|
committer | 2017-09-20 16:06:53 -0400 | |
commit | ec21f83425e484b2fa11607493e077c4184208c6 (patch) | |
tree | 242b79158928ad608f89f61d5a4fef420766c5b7 /plugin/rewrite/rewrite_test.go | |
parent | 36c7aa6437ccf574318b838d8dffda8c7e59216b (diff) | |
download | coredns-ec21f83425e484b2fa11607493e077c4184208c6.tar.gz coredns-ec21f83425e484b2fa11607493e077c4184208c6.tar.zst coredns-ec21f83425e484b2fa11607493e077c4184208c6.zip |
Modify the rewrite plugin to write multiple EDNS0 options (#936) (#1096)
* Add processing mode
* Add processing mode
* Update UTs
* Update README.md
* Change to use the constant Stop
* Fix README per review comments
Diffstat (limited to 'plugin/rewrite/rewrite_test.go')
-rw-r--r-- | plugin/rewrite/rewrite_test.go | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/plugin/rewrite/rewrite_test.go b/plugin/rewrite/rewrite_test.go index 74a8594df..9ce87e517 100644 --- a/plugin/rewrite/rewrite_test.go +++ b/plugin/rewrite/rewrite_test.go @@ -88,6 +88,43 @@ func TestNewRule(t *testing.T) { {[]string{"edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, {[]string{"edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, {[]string{"edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"unknown-action", "name", "a.com", "b.com"}, true, nil}, + {[]string{"stop", "name", "a.com", "b.com"}, false, reflect.TypeOf(&nameRule{})}, + {[]string{"continue", "name", "a.com", "b.com"}, false, reflect.TypeOf(&nameRule{})}, + {[]string{"unknown-action", "type", "any", "a"}, true, nil}, + {[]string{"stop", "type", "any", "a"}, false, reflect.TypeOf(&typeRule{})}, + {[]string{"continue", "type", "any", "a"}, false, reflect.TypeOf(&typeRule{})}, + {[]string{"unknown-action", "class", "ch", "in"}, true, nil}, + {[]string{"stop", "class", "ch", "in"}, false, reflect.TypeOf(&classRule{})}, + {[]string{"continue", "class", "ch", "in"}, false, reflect.TypeOf(&classRule{})}, + {[]string{"unknown-action", "edns0", "local", "set", "0xffee", "abcedef"}, true, nil}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})}, + {[]string{"unknown-action", "edns0", "nsid", "set"}, true, nil}, + {[]string{"stop", "edns0", "nsid", "set"}, false, reflect.TypeOf(&edns0NsidRule{})}, + {[]string{"continue", "edns0", "nsid", "set"}, false, reflect.TypeOf(&edns0NsidRule{})}, + {[]string{"unknown-action", "edns0", "local", "set", "0xffee", "{qname}"}, true, nil}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"stop", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"continue", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})}, + {[]string{"unknown-action", "edns0", "subnet", "set", "24", "64"}, true, nil}, + {[]string{"stop", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"stop", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"stop", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"continue", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"continue", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, + {[]string{"continue", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})}, } for i, tc := range tests { @@ -208,7 +245,7 @@ func TestRewriteEDNS0Local(t *testing.T) { m.SetQuestion("example.com.", dns.TypeA) m.Question[0].Qclass = dns.ClassINET - r, err := newEdns0Rule(tc.args...) + r, err := newEdns0Rule("stop", tc.args...) if err != nil { t.Errorf("Error creating test rule: %s", err) continue @@ -232,9 +269,9 @@ func TestRewriteEDNS0Local(t *testing.T) { func TestEdns0LocalMultiRule(t *testing.T) { rules := []Rule{} - r, _ := newEdns0Rule("local", "replace", "0xffee", "abcdef") + r, _ := newEdns0Rule("stop", "local", "replace", "0xffee", "abcdef") rules = append(rules, r) - r, _ = newEdns0Rule("local", "set", "0xffee", "fedcba") + r, _ = newEdns0Rule("stop", "local", "set", "0xffee", "fedcba") rules = append(rules, r) rw := Rewrite{ @@ -399,7 +436,7 @@ func TestRewriteEDNS0LocalVariable(t *testing.T) { m.SetQuestion("example.com.", dns.TypeA) m.Question[0].Qclass = dns.ClassINET - r, err := newEdns0Rule(tc.args...) + r, err := newEdns0Rule("stop", tc.args...) if err != nil { t.Errorf("Error creating test rule: %s", err) continue @@ -510,7 +547,7 @@ func TestRewriteEDNS0Subnet(t *testing.T) { m.SetQuestion("example.com.", dns.TypeA) m.Question[0].Qclass = dns.ClassINET - r, err := newEdns0Rule(tc.args...) + r, err := newEdns0Rule("stop", tc.args...) if err != nil { t.Errorf("Error creating test rule: %s", err) continue |