Merge pull request #494 from Mashimiao/return-clear-freezer-error
cgroups: reurn error when passing invalid argument to freezer
This commit is contained in:
commit
1a246dd543
|
@ -1,6 +1,7 @@
|
||||||
package fs
|
package fs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -41,6 +42,10 @@ func (s *FreezerGroup) Set(path string, cgroup *configs.Cgroup) error {
|
||||||
}
|
}
|
||||||
time.Sleep(1 * time.Millisecond)
|
time.Sleep(1 * time.Millisecond)
|
||||||
}
|
}
|
||||||
|
case configs.Undefined:
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("Invalid argument '%s' to freezer.state", string(cgroup.Freezer))
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package fs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/docker/libcontainer/configs"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFreezerSetState(t *testing.T) {
|
||||||
|
helper := NewCgroupTestUtil("freezer", t)
|
||||||
|
defer helper.cleanup()
|
||||||
|
|
||||||
|
helper.writeFileContents(map[string]string{
|
||||||
|
"freezer.state": string(configs.Frozen),
|
||||||
|
})
|
||||||
|
|
||||||
|
helper.CgroupData.c.Freezer = configs.Thawed
|
||||||
|
freezer := &FreezerGroup{}
|
||||||
|
if err := freezer.Set(helper.CgroupPath, helper.CgroupData.c); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
value, err := getCgroupParamString(helper.CgroupPath, "freezer.state")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to parse freezer.state - %s", err)
|
||||||
|
}
|
||||||
|
if value != string(configs.Thawed) {
|
||||||
|
t.Fatal("Got the wrong value, set freezer.state failed.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFreezerSetInvalidState(t *testing.T) {
|
||||||
|
helper := NewCgroupTestUtil("freezer", t)
|
||||||
|
defer helper.cleanup()
|
||||||
|
|
||||||
|
const (
|
||||||
|
invalidArg configs.FreezerState = "Invalid"
|
||||||
|
)
|
||||||
|
|
||||||
|
helper.CgroupData.c.Freezer = invalidArg
|
||||||
|
freezer := &FreezerGroup{}
|
||||||
|
if err := freezer.Set(helper.CgroupPath, helper.CgroupData.c); err == nil {
|
||||||
|
t.Fatal("Failed to return invalid argument error")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue