Add find tests and remove panic in DEBUG

Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
Michael Crosby 2014-03-04 08:55:12 -08:00
parent 0ef83adf9f
commit bd2d7a377c
2 changed files with 47 additions and 9 deletions

View file

@ -4,7 +4,6 @@ import (
"encoding/json"
"errors"
"github.com/syndtr/gocapability/capability"
"os"
)
var (
@ -74,16 +73,18 @@ func GetNamespace(key string) *Namespace {
return ns
}
}
if os.Getenv("DEBUG") != "" {
panic("Unreachable: Namespace not found")
}
return nil
}
// Contains returns true if the specified Namespace is
// in the slice
func (n Namespaces) Contains(ns string) bool {
return GetNamespace(ns) != nil
for _, nsp := range n {
if nsp.Key == ns {
return true
}
}
return false
}
type (
@ -121,14 +122,16 @@ func GetCapability(key string) *Capability {
return capp
}
}
if os.Getenv("DEBUG") != "" {
panic("Unreachable: Capability not found")
}
return nil
}
// Contains returns true if the specified Capability is
// in the slice
func (c Capabilities) Contains(capp string) bool {
return GetCapability(capp) != nil
for _, cap := range c {
if cap.Key == capp {
return true
}
}
return false
}

View file

@ -0,0 +1,35 @@
package libcontainer
import (
"testing"
)
func TestNamespacesContains(t *testing.T) {
ns := Namespaces{
GetNamespace("NEWPID"),
GetNamespace("NEWNS"),
GetNamespace("NEWUTS"),
}
if ns.Contains("NEWNET") {
t.Fatal("namespaces should not contain NEWNET")
}
if !ns.Contains("NEWPID") {
t.Fatal("namespaces should contain NEWPID but does not")
}
}
func TestCapabilitiesContains(t *testing.T) {
caps := Capabilities{
GetCapability("MKNOD"),
GetCapability("SETPCAP"),
}
if caps.Contains("SYS_ADMIN") {
t.Fatal("capabilities should not contain SYS_ADMIN")
}
if !caps.Contains("MKNOD") {
t.Fatal("capabilities should container MKNOD but does not")
}
}