Merge pull request #4403 from Stavrospanakakis/replace-fields-splitn-cgroups-fs

libcontainer/cgroups/fs: remove todo since strings.Fields performs well
This commit is contained in:
Kir Kolyshkin
2024-09-27 10:26:59 -07:00
committed by GitHub
3 changed files with 18 additions and 3 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ func getCpuUsageBreakdown(path string) (uint64, uint64, error) {
if err != nil {
return 0, 0, err
}
// TODO: use strings.SplitN instead.
fields := strings.Fields(data)
if len(fields) < 4 || fields[0] != userField || fields[2] != systemField {
return 0, 0, malformedLine(path, file, data)
+15
View File
@@ -95,3 +95,18 @@ func TestCpuacctStatsWithoutUsageAll(t *testing.T) {
expectedStats, actualStats.CpuStats.CpuUsage)
}
}
func BenchmarkGetCpuUsageBreakdown(b *testing.B) {
path := tempDir(b, "cpuacct")
writeFileContents(b, path, map[string]string{
"cpuacct.stat": cpuAcctStatContents,
})
b.ResetTimer()
for i := 0; i < b.N; i++ {
_, _, err := getCpuUsageBreakdown(path)
if err != nil {
b.Fatal(err)
}
}
}
+2 -2
View File
@@ -18,7 +18,7 @@ func init() {
}
// tempDir creates a new test directory for the specified subsystem.
func tempDir(t *testing.T, subsystem string) string {
func tempDir(t testing.TB, subsystem string) string {
path := filepath.Join(t.TempDir(), subsystem)
// Ensure the full mock cgroup path exists.
if err := os.Mkdir(path, 0o755); err != nil {
@@ -29,7 +29,7 @@ func tempDir(t *testing.T, subsystem string) string {
// writeFileContents writes the specified contents on the mock of the specified
// cgroup files.
func writeFileContents(t *testing.T, path string, fileContents map[string]string) {
func writeFileContents(t testing.TB, path string, fileContents map[string]string) {
for file, contents := range fileContents {
err := cgroups.WriteFile(path, file, contents)
if err != nil {