Skip to content

Commit 5ebc362

Browse files
committed
Skip test that are not supported in Docker due to an existing bug
Signed-off-by: Swagat Bora <[email protected]>
1 parent 1f14e6d commit 5ebc362

File tree

1 file changed

+72
-9
lines changed

1 file changed

+72
-9
lines changed

cmd/nerdctl/container/container_run_cgroup_linux_test.go

+72-9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"context"
2222
"fmt"
2323
"os"
24+
"os/exec"
2425
"path/filepath"
2526
"strconv"
2627
"strings"
@@ -481,15 +482,38 @@ func TestRunBlkioWeightCgroupV2(t *testing.T) {
481482

482483
func TestRunBlkioSettingCgroupV2(t *testing.T) {
483484
testCase := nerdtest.Setup()
485+
testCase.Require = nerdtest.Rootful
486+
487+
// Create dummy device path
488+
dummyDev := "/dev/dummy-zero"
489+
490+
testCase.Setup = func(data test.Data, helpers test.Helpers) {
491+
// Create dummy device
492+
helperCmd := exec.Command("mknod", dummyDev, "c", "1", "5")
493+
if out, err := helperCmd.CombinedOutput(); err != nil {
494+
t.Fatalf("cannot create %q: %q: %v", dummyDev, string(out), err)
495+
}
496+
}
497+
498+
testCase.Cleanup = func(data test.Data, helpers test.Helpers) {
499+
// Clean up the dummy device
500+
if err := exec.Command("rm", "-f", dummyDev).Run(); err != nil {
501+
t.Logf("failed to remove device %s: %v", dummyDev, err)
502+
}
503+
}
484504

485505
testCase.SubTests = []*test.Case{
486506
{
487507
Description: "blkio-weight",
508+
Require: nerdtest.CGroupV2,
488509
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
489510
return helpers.Command("run", "-d", "--name", data.Identifier(),
490511
"--blkio-weight", "150",
491512
testutil.AlpineImage, "sleep", "infinity")
492513
},
514+
Cleanup: func(data test.Data, helpers test.Helpers) {
515+
helpers.Anyhow("rm", "-f", data.Identifier())
516+
},
493517
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
494518
return &test.Expected{
495519
ExitCode: 0,
@@ -506,9 +530,12 @@ func TestRunBlkioSettingCgroupV2(t *testing.T) {
506530
Require: nerdtest.CGroupV2,
507531
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
508532
return helpers.Command("run", "-d", "--name", data.Identifier(),
509-
"--blkio-weight-device", "/dev/sda:100",
533+
"--blkio-weight-device", dummyDev+":100",
510534
testutil.AlpineImage, "sleep", "infinity")
511535
},
536+
Cleanup: func(data test.Data, helpers test.Helpers) {
537+
helpers.Anyhow("rm", "-f", data.Identifier())
538+
},
512539
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
513540
return &test.Expected{
514541
ExitCode: 0,
@@ -523,12 +550,21 @@ func TestRunBlkioSettingCgroupV2(t *testing.T) {
523550
},
524551
{
525552
Description: "device-read-bps",
526-
Require: nerdtest.CGroupV2,
553+
Require: require.All(
554+
nerdtest.CGroupV2,
555+
// Docker cli (v26.1.3) available in github runners has a bug where some of the blkio options
556+
// do not work https://github.com/docker/cli/issues/5321. The fix has been merged to the latest releases
557+
// but not currently available in the v26 release.
558+
require.Not(nerdtest.Docker),
559+
),
527560
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
528561
return helpers.Command("run", "-d", "--name", data.Identifier(),
529-
"--device-read-bps", "/dev/sda:1048576",
562+
"--device-read-bps", dummyDev+":1048576",
530563
testutil.AlpineImage, "sleep", "infinity")
531564
},
565+
Cleanup: func(data test.Data, helpers test.Helpers) {
566+
helpers.Anyhow("rm", "-f", data.Identifier())
567+
},
532568
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
533569
return &test.Expected{
534570
ExitCode: 0,
@@ -543,12 +579,21 @@ func TestRunBlkioSettingCgroupV2(t *testing.T) {
543579
},
544580
{
545581
Description: "device-write-bps",
546-
Require: nerdtest.CGroupV2,
582+
Require: require.All(
583+
nerdtest.CGroupV2,
584+
// Docker cli (v26.1.3) available in github runners has a bug where some of the blkio options
585+
// do not work https://github.com/docker/cli/issues/5321. The fix has been merged to the latest releases
586+
// but not currently available in the v26 release.
587+
require.Not(nerdtest.Docker),
588+
),
547589
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
548590
return helpers.Command("run", "-d", "--name", data.Identifier(),
549-
"--device-write-bps", "/dev/sda:2097152",
591+
"--device-write-bps", dummyDev+":2097152",
550592
testutil.AlpineImage, "sleep", "infinity")
551593
},
594+
Cleanup: func(data test.Data, helpers test.Helpers) {
595+
helpers.Anyhow("rm", "-f", data.Identifier())
596+
},
552597
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
553598
return &test.Expected{
554599
ExitCode: 0,
@@ -563,12 +608,21 @@ func TestRunBlkioSettingCgroupV2(t *testing.T) {
563608
},
564609
{
565610
Description: "device-read-iops",
566-
Require: nerdtest.CGroupV2,
611+
Require: require.All(
612+
nerdtest.CGroupV2,
613+
// Docker cli (v26.1.3) available in github runners has a bug where some of the blkio options
614+
// do not work https://github.com/docker/cli/issues/5321. The fix has been merged to the latest releases
615+
// but not currently available in the v26 release.
616+
require.Not(nerdtest.Docker),
617+
),
567618
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
568619
return helpers.Command("run", "-d", "--name", data.Identifier(),
569-
"--device-read-iops", "/dev/sda:1000",
620+
"--device-read-iops", dummyDev+":1000",
570621
testutil.AlpineImage, "sleep", "infinity")
571622
},
623+
Cleanup: func(data test.Data, helpers test.Helpers) {
624+
helpers.Anyhow("rm", "-f", data.Identifier())
625+
},
572626
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
573627
return &test.Expected{
574628
ExitCode: 0,
@@ -583,12 +637,21 @@ func TestRunBlkioSettingCgroupV2(t *testing.T) {
583637
},
584638
{
585639
Description: "device-write-iops",
586-
Require: nerdtest.CGroupV2,
640+
Require: require.All(
641+
nerdtest.CGroupV2,
642+
// Docker cli (v26.1.3) available in github runners has a bug where some of the blkio options
643+
// do not work https://github.com/docker/cli/issues/5321. The fix has been merged to the latest releases
644+
// but not currently available in the v26 release.
645+
require.Not(nerdtest.Docker),
646+
),
587647
Command: func(data test.Data, helpers test.Helpers) test.TestableCommand {
588648
return helpers.Command("run", "-d", "--name", data.Identifier(),
589-
"--device-write-iops", "/dev/sda:2000",
649+
"--device-write-iops", dummyDev+":2000",
590650
testutil.AlpineImage, "sleep", "infinity")
591651
},
652+
Cleanup: func(data test.Data, helpers test.Helpers) {
653+
helpers.Anyhow("rm", "-f", data.Identifier())
654+
},
592655
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
593656
return &test.Expected{
594657
ExitCode: 0,

0 commit comments

Comments
 (0)