| package fs |
| |
| import ( |
| "testing" |
| |
| "github.com/opencontainers/runc/libcontainer/cgroups" |
| "github.com/opencontainers/runc/libcontainer/configs" |
| ) |
| |
| func BenchmarkGetStats(b *testing.B) { |
| if cgroups.IsCgroup2UnifiedMode() { |
| b.Skip("cgroup v2 is not supported") |
| } |
| |
| // Unset TestMode as we work with real cgroupfs here, |
| // and we want OpenFile to perform the fstype check. |
| cgroups.TestMode = false |
| defer func() { |
| cgroups.TestMode = true |
| }() |
| |
| cg := &configs.Cgroup{ |
| Path: "/some/kind/of/a/path/here", |
| Resources: &configs.Resources{}, |
| } |
| m, err := NewManager(cg, nil) |
| if err != nil { |
| b.Fatal(err) |
| } |
| err = m.Apply(-1) |
| if err != nil { |
| b.Fatal(err) |
| } |
| defer func() { |
| _ = m.Destroy() |
| }() |
| |
| var st *cgroups.Stats |
| |
| b.ResetTimer() |
| for i := 0; i < b.N; i++ { |
| st, err = m.GetStats() |
| if err != nil { |
| b.Fatal(err) |
| } |
| } |
| if st.CpuStats.CpuUsage.TotalUsage != 0 { |
| b.Fatalf("stats: %+v", st) |
| } |
| } |