containerd/namespaces/validate_test.go
Stephen J Day c6efdfb9ee
namespaces: ensure that tests actually fail
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-06-22 16:05:48 -07:00

80 lines
1.3 KiB
Go

package namespaces
import (
"testing"
"github.com/pkg/errors"
)
func TestValidNamespaces(t *testing.T) {
for _, testcase := range []struct {
input string
err error
}{
{
input: "default",
},
{
input: "default-default",
},
{
input: "default--default",
},
{
input: "containerd.io",
},
{
input: "foo.boo",
},
{
input: "swarmkit.docker.io",
},
{
input: "zn--e9.org", // or something like it!
},
{
input: ".foo..foo",
err: errNamespaceInvalid,
},
{
input: "foo/foo",
err: errNamespaceInvalid,
},
{
input: "foo/..",
err: errNamespaceInvalid,
},
{
input: "foo..foo",
err: errNamespaceInvalid,
},
{
input: "foo.-boo",
err: errNamespaceInvalid,
},
{
input: "-foo.boo",
err: errNamespaceInvalid,
},
{
input: "foo.boo-",
err: errNamespaceInvalid,
},
{
input: "foo_foo.boo_underscores", // boo-urns?
err: errNamespaceInvalid,
},
} {
t.Run(testcase.input, func(t *testing.T) {
if err := Validate(testcase.input); errors.Cause(err) != testcase.err {
t.Log(errors.Cause(err), testcase.err)
if testcase.err == nil {
t.Fatalf("unexpected error: %v != nil", err)
} else {
t.Fatalf("expected error %v to be %v", err, testcase.err)
}
}
})
}
}