mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
1aa7ca8046
We read output from the following files if they exists: - cpu.pressure - memory.pressure - io.pressure Each are in format: ``` some avg10=0.00 avg60=0.00 avg300=0.00 total=0 full avg10=0.00 avg60=0.00 avg300=0.00 total=0 ``` Signed-off-by: Daniel Dao <dqminh89@gmail.com> Co-authored-by: Sandor Szücs <sandor.szuecs@zalando.de> Co-authored-by: Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
48 lines
940 B
Go
48 lines
940 B
Go
package fs2
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/opencontainers/runc/libcontainer/cgroups"
|
|
)
|
|
|
|
func TestStatCPUPSI(t *testing.T) {
|
|
const examplePSIData = `some avg10=1.71 avg60=2.36 avg300=2.57 total=230548833
|
|
full avg10=1.00 avg60=1.01 avg300=1.00 total=157622356`
|
|
|
|
// We're using a fake cgroupfs.
|
|
cgroups.TestMode = true
|
|
|
|
fakeCgroupDir := t.TempDir()
|
|
statPath := filepath.Join(fakeCgroupDir, "cpu.pressure")
|
|
|
|
if err := os.WriteFile(statPath, []byte(examplePSIData), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
st, err := statPSI(fakeCgroupDir, "cpu.pressure")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !reflect.DeepEqual(*st, cgroups.PSIStats{
|
|
Some: cgroups.PSIData{
|
|
Avg10: 1.71,
|
|
Avg60: 2.36,
|
|
Avg300: 2.57,
|
|
Total: 230548833,
|
|
},
|
|
Full: cgroups.PSIData{
|
|
Avg10: 1.00,
|
|
Avg60: 1.01,
|
|
Avg300: 1.00,
|
|
Total: 157622356,
|
|
},
|
|
}) {
|
|
t.Errorf("unexpected PSI result: %+v", st)
|
|
}
|
|
}
|