fix the problem that memory-swap=-1 is not working for docker command

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
This commit is contained in:
Qiang Huang 2015-02-09 10:36:49 +08:00
parent c03d6f57b6
commit aee28e0e87
2 changed files with 21 additions and 4 deletions

View File

@ -60,6 +60,19 @@ func TestRunEchoStdoutWithMemoryLimit(t *testing.T) {
logDone("run - echo with memory limit")
}
// should run without memory swap
func TestRunWithoutMemoryswapLimit(t *testing.T) {
runCmd := exec.Command(dockerBinary, "run", "-m", "16m", "--memory-swap", "-1", "busybox", "true")
out, _, err := runCommandWithOutput(runCmd)
if err != nil {
t.Fatalf("failed to run container, output: %q", out)
}
deleteAllContainers()
logDone("run - without memory swap limit")
}
// "test" should be printed
func TestRunEchoStdoutWitCPULimit(t *testing.T) {
runCmd := exec.Command(dockerBinary, "run", "-c", "1000", "busybox", "echo", "test")

View File

@ -140,11 +140,15 @@ func Parse(cmd *flag.FlagSet, args []string) (*Config, *HostConfig, *flag.FlagSe
var MemorySwap int64
if *flMemorySwap != "" {
parsedMemorySwap, err := units.RAMInBytes(*flMemorySwap)
if err != nil {
return nil, nil, cmd, err
if *flMemorySwap == "-1" {
MemorySwap = -1
} else {
parsedMemorySwap, err := units.RAMInBytes(*flMemorySwap)
if err != nil {
return nil, nil, cmd, err
}
MemorySwap = parsedMemorySwap
}
MemorySwap = parsedMemorySwap
}
var binds []string