mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
ed39fbeb2a
Previous versions of libcontainer allowed CpuShares that were greater than the maximum or less than the minimum supported by the kernel, and relied on the kernel to do the right thing. Newer libcontainer fails after creating the container if the requested CpuShares is different from what was actually created by the kernel, which breaks compatibility with earlier Docker Remote API versions. This change explicitly adjusts the requested CpuShares in API versions < 1.20. Signed-off-by: Samuel Karp <skarp@amazon.com>
68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
// +build linux
|
|
|
|
package server
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/docker/docker/pkg/version"
|
|
"github.com/docker/docker/runconfig"
|
|
)
|
|
|
|
func TestAdjustCpuSharesOldApi(t *testing.T) {
|
|
apiVersion := version.Version("1.18")
|
|
hostConfig := &runconfig.HostConfig{
|
|
CpuShares: linuxMinCpuShares - 1,
|
|
}
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != linuxMinCpuShares {
|
|
t.Errorf("Expected CpuShares to be %d", linuxMinCpuShares)
|
|
}
|
|
|
|
hostConfig.CpuShares = linuxMaxCpuShares + 1
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != linuxMaxCpuShares {
|
|
t.Errorf("Expected CpuShares to be %d", linuxMaxCpuShares)
|
|
}
|
|
|
|
hostConfig.CpuShares = 0
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != 0 {
|
|
t.Error("Expected CpuShares to be unchanged")
|
|
}
|
|
|
|
hostConfig.CpuShares = 1024
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != 1024 {
|
|
t.Error("Expected CpuShares to be unchanged")
|
|
}
|
|
}
|
|
|
|
func TestAdjustCpuSharesNoAdjustment(t *testing.T) {
|
|
apiVersion := version.Version("1.19")
|
|
hostConfig := &runconfig.HostConfig{
|
|
CpuShares: linuxMinCpuShares - 1,
|
|
}
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != linuxMinCpuShares-1 {
|
|
t.Errorf("Expected CpuShares to be %d", linuxMinCpuShares-1)
|
|
}
|
|
|
|
hostConfig.CpuShares = linuxMaxCpuShares + 1
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != linuxMaxCpuShares+1 {
|
|
t.Errorf("Expected CpuShares to be %d", linuxMaxCpuShares+1)
|
|
}
|
|
|
|
hostConfig.CpuShares = 0
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != 0 {
|
|
t.Error("Expected CpuShares to be unchanged")
|
|
}
|
|
|
|
hostConfig.CpuShares = 1024
|
|
adjustCpuShares(apiVersion, hostConfig)
|
|
if hostConfig.CpuShares != 1024 {
|
|
t.Error("Expected CpuShares to be unchanged")
|
|
}
|
|
}
|