mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user