@@ -23,6 +23,7 @@ import (
23
23
"os"
24
24
"path/filepath"
25
25
"strconv"
26
+ "strings"
26
27
"testing"
27
28
28
29
"gotest.tools/v3/assert"
@@ -477,3 +478,130 @@ func TestRunBlkioWeightCgroupV2(t *testing.T) {
477
478
base .Cmd ("update" , containerName , "--blkio-weight" , "400" ).AssertOK ()
478
479
base .Cmd ("exec" , containerName , "cat" , "io.bfq.weight" ).AssertOutExactly ("default 400\n " )
479
480
}
481
+
482
+ func TestRunBlkioSettingCgroupV2 (t * testing.T ) {
483
+ testCase := nerdtest .Setup ()
484
+
485
+ testCase .SubTests = []* test.Case {
486
+ {
487
+ Description : "blkio-weight" ,
488
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
489
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
490
+ "--blkio-weight" , "150" ,
491
+ testutil .AlpineImage , "sleep" , "infinity" )
492
+ },
493
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
494
+ return & test.Expected {
495
+ ExitCode : 0 ,
496
+ Output : expect .All (
497
+ func (stdout string , info string , t * testing.T ) {
498
+ assert .Assert (t , strings .Contains (helpers .Capture ("inspect" , "--format" , "{{.HostConfig.BlkioWeight}}" , data .Identifier ()), "150" ))
499
+ },
500
+ ),
501
+ }
502
+ },
503
+ },
504
+ {
505
+ Description : "blkio-weight-device" ,
506
+ Require : nerdtest .CGroupV2 ,
507
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
508
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
509
+ "--blkio-weight-device" , "/dev/sda:100" ,
510
+ testutil .AlpineImage , "sleep" , "infinity" )
511
+ },
512
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
513
+ return & test.Expected {
514
+ ExitCode : 0 ,
515
+ Output : expect .All (
516
+ func (stdout string , info string , t * testing.T ) {
517
+ inspectOut := helpers .Capture ("inspect" , "--format" , "{{range .HostConfig.BlkioWeightDevice}}{{.Weight}}{{end}}" , data .Identifier ())
518
+ assert .Assert (t , strings .Contains (inspectOut , "100" ))
519
+ },
520
+ ),
521
+ }
522
+ },
523
+ },
524
+ {
525
+ Description : "device-read-bps" ,
526
+ Require : nerdtest .CGroupV2 ,
527
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
528
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
529
+ "--device-read-bps" , "/dev/sda:1048576" ,
530
+ testutil .AlpineImage , "sleep" , "infinity" )
531
+ },
532
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
533
+ return & test.Expected {
534
+ ExitCode : 0 ,
535
+ Output : expect .All (
536
+ func (stdout string , info string , t * testing.T ) {
537
+ inspectOut := helpers .Capture ("inspect" , "--format" , "{{range .HostConfig.BlkioDeviceReadBps}}{{.Rate}}{{end}}" , data .Identifier ())
538
+ assert .Assert (t , strings .Contains (inspectOut , "1048576" ))
539
+ },
540
+ ),
541
+ }
542
+ },
543
+ },
544
+ {
545
+ Description : "device-write-bps" ,
546
+ Require : nerdtest .CGroupV2 ,
547
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
548
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
549
+ "--device-write-bps" , "/dev/sda:2097152" ,
550
+ testutil .AlpineImage , "sleep" , "infinity" )
551
+ },
552
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
553
+ return & test.Expected {
554
+ ExitCode : 0 ,
555
+ Output : expect .All (
556
+ func (stdout string , info string , t * testing.T ) {
557
+ inspectOut := helpers .Capture ("inspect" , "--format" , "{{range .HostConfig.BlkioDeviceWriteBps}}{{.Rate}}{{end}}" , data .Identifier ())
558
+ assert .Assert (t , strings .Contains (inspectOut , "2097152" ))
559
+ },
560
+ ),
561
+ }
562
+ },
563
+ },
564
+ {
565
+ Description : "device-read-iops" ,
566
+ Require : nerdtest .CGroupV2 ,
567
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
568
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
569
+ "--device-read-iops" , "/dev/sda:1000" ,
570
+ testutil .AlpineImage , "sleep" , "infinity" )
571
+ },
572
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
573
+ return & test.Expected {
574
+ ExitCode : 0 ,
575
+ Output : expect .All (
576
+ func (stdout string , info string , t * testing.T ) {
577
+ inspectOut := helpers .Capture ("inspect" , "--format" , "{{range .HostConfig.BlkioDeviceReadIOps}}{{.Rate}}{{end}}" , data .Identifier ())
578
+ assert .Assert (t , strings .Contains (inspectOut , "1000" ))
579
+ },
580
+ ),
581
+ }
582
+ },
583
+ },
584
+ {
585
+ Description : "device-write-iops" ,
586
+ Require : nerdtest .CGroupV2 ,
587
+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
588
+ return helpers .Command ("run" , "-d" , "--name" , data .Identifier (),
589
+ "--device-write-iops" , "/dev/sda:2000" ,
590
+ testutil .AlpineImage , "sleep" , "infinity" )
591
+ },
592
+ Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
593
+ return & test.Expected {
594
+ ExitCode : 0 ,
595
+ Output : expect .All (
596
+ func (stdout string , info string , t * testing.T ) {
597
+ inspectOut := helpers .Capture ("inspect" , "--format" , "{{range .HostConfig.BlkioDeviceWriteIOps}}{{.Rate}}{{end}}" , data .Identifier ())
598
+ assert .Assert (t , strings .Contains (inspectOut , "2000" ))
599
+ },
600
+ ),
601
+ }
602
+ },
603
+ },
604
+ }
605
+
606
+ testCase .Run (t )
607
+ }
0 commit comments