func isCpusetListAvailable(provided, available string) (bool, error) { parsedProvided, err := parsers.ParseUintList(provided) if err != nil { return false, err } parsedAvailable, err := parsers.ParseUintList(available) if err != nil { return false, err } for k := range parsedProvided { if !parsedAvailable[k] { return false, nil } } return true, nil }
func (s *DockerSuite) TestRunInvalidCpusetMemsFlagValue(c *check.C) { testRequires(c, cgroupCpuset) sysInfo := sysinfo.New(true) mems, err := parsers.ParseUintList(sysInfo.Mems) c.Assert(err, check.IsNil) var invalid int for i := 0; i <= len(mems)+1; i++ { if !mems[i] { invalid = i break } } out, _, err := dockerCmdWithError("run", "--cpuset-mems", strconv.Itoa(invalid), "busybox", "true") c.Assert(err, check.NotNil) expected := fmt.Sprintf("Error response from daemon: Requested memory nodes are not available - requested %s, available: %s", strconv.Itoa(invalid), sysInfo.Mems) c.Assert(out, checker.Contains, expected) }
func (s *DockerSuite) TestRunInvalidCpusetCpusFlagValue(c *check.C) { testRequires(c, cgroupCpuset) sysInfo := sysinfo.New(true) cpus, err := parsers.ParseUintList(sysInfo.Cpus) c.Assert(err, check.IsNil) var invalid int for i := 0; i <= len(cpus)+1; i++ { if !cpus[i] { invalid = i break } } out, _, err := dockerCmdWithError("run", "--cpuset-cpus", strconv.Itoa(invalid), "busybox", "true") c.Assert(err, check.NotNil) expected := fmt.Sprintf("Error response from daemon: Requested CPUs are not available - requested %s, available: %s.\n", strconv.Itoa(invalid), sysInfo.Cpus) c.Assert(out, check.Equals, expected, check.Commentf("Expected output to contain %q, got %q", expected, out)) }