113 lines
2.5 KiB
Go
113 lines
2.5 KiB
Go
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,
|
|
}
|