blob: 67098502b0357f39497c2280ac00a658c238c5c4 [file] [log] [blame]
package proc
import (
"fmt"
"path/filepath"
"reflect"
"strconv"
"testing"
"android/soong/finder/fs"
)
func TestNewProcStatus(t *testing.T) {
fs := fs.NewMockFs(nil)
pid := 4032827
procDir := filepath.Join("/proc", strconv.Itoa(pid))
if err := fs.MkDirs(procDir); err != nil {
t.Fatalf("failed to create proc pid dir %s: %v", procDir, err)
}
statusFilename := filepath.Join(procDir, "status")
if err := fs.WriteFile(statusFilename, statusData, 0644); err != nil {
t.Fatalf("failed to write proc file %s: %v", statusFilename, err)
}
status, err := NewProcStatus(pid, fs)
if err != nil {
t.Fatalf("got %v, want nil for error", err)
}
fmt.Printf("%d %d\b", status.VmPeak, expectedStatus.VmPeak)
if !reflect.DeepEqual(status, expectedStatus) {
t.Errorf("got %v, expecting %v for ProcStatus", status, expectedStatus)
}
}
var statusData = []byte(`Name: fake_process
Umask: 0022
State: S (sleeping)
Tgid: 4032827
Ngid: 0
Pid: 4032827
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 512
Groups:
NStgid: 4032827
NSpid: 4032827
NSpgid: 4032827
NSsid: 4032827
VmPeak: 733232 kB
VmSize: 733232 kB
VmLck: 132 kB
VmPin: 130 kB
VmHWM: 69156 kB
VmRSS: 69156 kB
RssAnon: 50896 kB
RssFile: 18260 kB
RssShmem: 122 kB
VmData: 112388 kB
VmStk: 132 kB
VmExe: 9304 kB
VmLib: 8 kB
VmPTE: 228 kB
VmSwap: 10 kB
HugetlbPages: 22 kB
CoreDumping: 0
THP_enabled: 1
Threads: 46
SigQ: 2/767780
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: fffffffe3bfa3a00
SigIgn: 0000000000000000
SigCgt: fffffffe7fc1feff
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Speculation_Store_Bypass: thread vulnerable
Cpus_allowed: ff,ffffffff,ffffffff
Cpus_allowed_list: 0-71
Mems_allowed: 00000000,00000003
Mems_allowed_list: 0-1
voluntary_ctxt_switches: 1635
nonvoluntary_ctxt_switches: 32
`)
var expectedStatus = &ProcStatus{
pid: 4032827,
VmPeak: 750829568,
VmSize: 750829568,
VmLck: 135168,
VmPin: 133120,
VmHWM: 70815744,
VmRss: 70815744,
RssAnon: 52117504,
RssShmem: 124928,
VmData: 115085312,
VmStk: 135168,
VmExe: 9527296,
VmLib: 8192,
VmPTE: 233472,
VmSwap: 10240,
HugetlbPages: 22528,
}