diff options
author | 2017-01-10 10:18:34 -0500 | |
---|---|---|
committer | 2017-01-10 10:18:34 -0500 | |
commit | b10a4f90758cb2640c35b84536c0993bb607e9b4 (patch) | |
tree | 9f6d5f442130f27216ed462475f2cf983ab1babb /middleware/tls/tls_test.go | |
parent | 53ac25d1c327ea2c2924a2e90b510764be94319e (diff) | |
download | coredns-b10a4f90758cb2640c35b84536c0993bb607e9b4.tar.gz coredns-b10a4f90758cb2640c35b84536c0993bb607e9b4.tar.zst coredns-b10a4f90758cb2640c35b84536c0993bb607e9b4.zip |
Common tls (#474)
* Add common TLS config routines
These routines can be used to load TLS configs based upon the
args in the Corefile.
* Add common routine for Corefile arg handling
Add the NewTLSConfigFromArgs routine so that you can just pass
in the Corefile args and get a tls.Config. This ensures the
parameters are handled consistently across middleware.
* Change to varargs style params
Change to use args ...string instead of []string. Add
documentation of what each call means.
Diffstat (limited to 'middleware/tls/tls_test.go')
-rw-r--r-- | middleware/tls/tls_test.go | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/middleware/tls/tls_test.go b/middleware/tls/tls_test.go new file mode 100644 index 000000000..fb8d6247f --- /dev/null +++ b/middleware/tls/tls_test.go @@ -0,0 +1,81 @@ +package tls + +import ( + "testing" + "path/filepath" + + "github.com/miekg/coredns/middleware/test" +) + +func getPEMFiles(t *testing.T) (rmFunc func(), cert, key, ca string) { + tempDir, rmFunc, err := test.WritePEMFiles("") + if err != nil { + t.Fatalf("Could not write PEM files: %s", err) + } + + cert = filepath.Join(tempDir, "cert.pem") + key = filepath.Join(tempDir, "key.pem") + ca = filepath.Join(tempDir, "ca.pem") + + return +} + +func TestNewTLSConfig(t *testing.T) { + rmFunc, cert, key, ca := getPEMFiles(t) + defer rmFunc() + + _, err := NewTLSConfig(cert, key, ca) + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } +} + +func TestNewTLSClientConfig(t *testing.T) { + rmFunc, _, _, ca := getPEMFiles(t) + defer rmFunc() + + _, err := NewTLSClientConfig(ca) + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } +} + +func TestNewTLSConfigFromArgs(t *testing.T) { + rmFunc, cert, key, ca := getPEMFiles(t) + defer rmFunc() + + _, err := NewTLSConfigFromArgs() + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } + + c, err := NewTLSConfigFromArgs(ca) + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } + if c.RootCAs == nil { + t.Error("RootCAs should not be nil when one arg passed") + } + + c, err = NewTLSConfigFromArgs(cert,key) + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } + if c.RootCAs != nil { + t.Error("RootCAs should be nil when two args passed") + } + if len(c.Certificates) != 1 { + t.Error("Certificates should have a single entry when two args passed") + } + args := []string{cert,key,ca} + c, err = NewTLSConfigFromArgs(args...) + if err != nil { + t.Errorf("Failed to create TLSConfig: %s", err) + } + if c.RootCAs == nil { + t.Error("RootCAs should not be nil when three args passed") + } + if len(c.Certificates) != 1 { + t.Error("Certificateis should have a single entry when three args passed") + } +} |