github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/runc/libcontainer/cgroups/fs/stats_util_test.go (about) 1 // +build linux 2 3 package fs 4 5 import ( 6 "fmt" 7 "testing" 8 9 "github.com/Sirupsen/logrus" 10 "github.com/opencontainers/runc/libcontainer/cgroups" 11 ) 12 13 func blkioStatEntryEquals(expected, actual []cgroups.BlkioStatEntry) error { 14 if len(expected) != len(actual) { 15 return fmt.Errorf("blkioStatEntries length do not match") 16 } 17 for i, expValue := range expected { 18 actValue := actual[i] 19 if expValue != actValue { 20 return fmt.Errorf("Expected blkio stat entry %v but found %v", expValue, actValue) 21 } 22 } 23 return nil 24 } 25 26 func expectBlkioStatsEquals(t *testing.T, expected, actual cgroups.BlkioStats) { 27 if err := blkioStatEntryEquals(expected.IoServiceBytesRecursive, actual.IoServiceBytesRecursive); err != nil { 28 logrus.Printf("blkio IoServiceBytesRecursive do not match - %s\n", err) 29 t.Fail() 30 } 31 32 if err := blkioStatEntryEquals(expected.IoServicedRecursive, actual.IoServicedRecursive); err != nil { 33 logrus.Printf("blkio IoServicedRecursive do not match - %s\n", err) 34 t.Fail() 35 } 36 37 if err := blkioStatEntryEquals(expected.IoQueuedRecursive, actual.IoQueuedRecursive); err != nil { 38 logrus.Printf("blkio IoQueuedRecursive do not match - %s\n", err) 39 t.Fail() 40 } 41 42 if err := blkioStatEntryEquals(expected.SectorsRecursive, actual.SectorsRecursive); err != nil { 43 logrus.Printf("blkio SectorsRecursive do not match - %s\n", err) 44 t.Fail() 45 } 46 47 if err := blkioStatEntryEquals(expected.IoServiceTimeRecursive, actual.IoServiceTimeRecursive); err != nil { 48 logrus.Printf("blkio IoServiceTimeRecursive do not match - %s\n", err) 49 t.Fail() 50 } 51 52 if err := blkioStatEntryEquals(expected.IoWaitTimeRecursive, actual.IoWaitTimeRecursive); err != nil { 53 logrus.Printf("blkio IoWaitTimeRecursive do not match - %s\n", err) 54 t.Fail() 55 } 56 57 if err := blkioStatEntryEquals(expected.IoMergedRecursive, actual.IoMergedRecursive); err != nil { 58 logrus.Printf("blkio IoMergedRecursive do not match - %v vs %v\n", expected.IoMergedRecursive, actual.IoMergedRecursive) 59 t.Fail() 60 } 61 62 if err := blkioStatEntryEquals(expected.IoTimeRecursive, actual.IoTimeRecursive); err != nil { 63 logrus.Printf("blkio IoTimeRecursive do not match - %s\n", err) 64 t.Fail() 65 } 66 } 67 68 func expectThrottlingDataEquals(t *testing.T, expected, actual cgroups.ThrottlingData) { 69 if expected != actual { 70 logrus.Printf("Expected throttling data %v but found %v\n", expected, actual) 71 t.Fail() 72 } 73 } 74 75 func expectHugetlbStatEquals(t *testing.T, expected, actual cgroups.HugetlbStats) { 76 if expected != actual { 77 logrus.Printf("Expected hugetlb stats %v but found %v\n", expected, actual) 78 t.Fail() 79 } 80 } 81 82 func expectMemoryStatEquals(t *testing.T, expected, actual cgroups.MemoryStats) { 83 expectMemoryDataEquals(t, expected.Usage, actual.Usage) 84 expectMemoryDataEquals(t, expected.SwapUsage, actual.SwapUsage) 85 expectMemoryDataEquals(t, expected.KernelUsage, actual.KernelUsage) 86 87 for key, expValue := range expected.Stats { 88 actValue, ok := actual.Stats[key] 89 if !ok { 90 logrus.Printf("Expected memory stat key %s not found\n", key) 91 t.Fail() 92 } 93 if expValue != actValue { 94 logrus.Printf("Expected memory stat value %d but found %d\n", expValue, actValue) 95 t.Fail() 96 } 97 } 98 } 99 100 func expectMemoryDataEquals(t *testing.T, expected, actual cgroups.MemoryData) { 101 if expected.Usage != actual.Usage { 102 logrus.Printf("Expected memory usage %d but found %d\n", expected.Usage, actual.Usage) 103 t.Fail() 104 } 105 if expected.MaxUsage != actual.MaxUsage { 106 logrus.Printf("Expected memory max usage %d but found %d\n", expected.MaxUsage, actual.MaxUsage) 107 t.Fail() 108 } 109 if expected.Failcnt != actual.Failcnt { 110 logrus.Printf("Expected memory failcnt %d but found %d\n", expected.Failcnt, actual.Failcnt) 111 t.Fail() 112 } 113 if expected.Limit != actual.Limit { 114 logrus.Printf("Expected memory limit %d but found %d\n", expected.Limit, actual.Limit) 115 t.Fail() 116 } 117 }