mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-04 18:51:17 +00:00
194 lines
4.6 KiB
Go
194 lines
4.6 KiB
Go
package linux
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadProcessStat(t *testing.T) {
|
|
|
|
stat, err := ReadProcessStat("proc/3323/stat")
|
|
|
|
if err != nil {
|
|
t.Fatal("process stat read fail", err)
|
|
}
|
|
|
|
expected := &ProcessStat{
|
|
Pid: 3323,
|
|
Comm: "(proftpd)",
|
|
State: "S",
|
|
Ppid: 1,
|
|
Pgrp: 3323,
|
|
Session: 3323,
|
|
TtyNr: 0,
|
|
Tpgid: -1,
|
|
Flags: 4202816,
|
|
Minflt: 1311,
|
|
Cminflt: 57367,
|
|
Majflt: 0,
|
|
Cmajflt: 1,
|
|
Utime: 23,
|
|
Stime: 58,
|
|
Cutime: 24,
|
|
Cstime: 49,
|
|
Priority: 20,
|
|
Nice: 0,
|
|
NumThreads: 1,
|
|
Itrealvalue: 0,
|
|
Starttime: 2789,
|
|
Vsize: 16601088,
|
|
Rss: 522,
|
|
Rsslim: 4294967295,
|
|
Startcode: 134512640,
|
|
Endcode: 135222176,
|
|
Startstack: 3217552592,
|
|
Kstkesp: 3217551836,
|
|
Kstkeip: 4118799382,
|
|
Signal: 0,
|
|
Blocked: 0,
|
|
Sigignore: 272633856,
|
|
Sigcatch: 8514799,
|
|
Wchan: 0,
|
|
Nswap: 0,
|
|
Cnswap: 0,
|
|
ExitSignal: 17,
|
|
Processor: 7,
|
|
RtPriority: 0,
|
|
Policy: 0,
|
|
DelayacctBlkioTicks: 1,
|
|
GuestTime: 0,
|
|
CguestTime: 0,
|
|
}
|
|
|
|
if !reflect.DeepEqual(stat, expected) {
|
|
t.Errorf("not equal to expected %+v", expected)
|
|
}
|
|
|
|
t.Logf("%+v", stat)
|
|
}
|
|
|
|
func TestReadProcessStatWithSpace(t *testing.T) {
|
|
|
|
stat, err := ReadProcessStat("proc/884/stat")
|
|
|
|
if err != nil {
|
|
t.Fatal("process stat read fail", err)
|
|
}
|
|
|
|
expected := &ProcessStat{
|
|
Pid: 884,
|
|
Comm: "(rs:main Q:Reg)",
|
|
State: "S",
|
|
Ppid: 1,
|
|
Pgrp: 873,
|
|
Session: 873,
|
|
TtyNr: 0,
|
|
Tpgid: -1,
|
|
Flags: 4202816,
|
|
Minflt: 561,
|
|
Cminflt: 0,
|
|
Majflt: 0,
|
|
Cmajflt: 0,
|
|
Utime: 68,
|
|
Stime: 132,
|
|
Cutime: 0,
|
|
Cstime: 0,
|
|
Priority: 20,
|
|
Nice: 0,
|
|
NumThreads: 4,
|
|
Itrealvalue: 0,
|
|
Starttime: 2161,
|
|
Vsize: 255451136,
|
|
Rss: 409,
|
|
Rsslim: 18446744073709551615,
|
|
Startcode: 1,
|
|
Endcode: 1,
|
|
Startstack: 0,
|
|
Kstkesp: 0,
|
|
Kstkeip: 0,
|
|
Signal: 0,
|
|
Blocked: 2146172671,
|
|
Sigignore: 16781830,
|
|
Sigcatch: 1133601,
|
|
Wchan: 18446744073709551615,
|
|
Nswap: 0,
|
|
Cnswap: 0,
|
|
ExitSignal: -1,
|
|
Processor: 1,
|
|
RtPriority: 0,
|
|
Policy: 0,
|
|
DelayacctBlkioTicks: 34,
|
|
GuestTime: 0,
|
|
CguestTime: 0,
|
|
}
|
|
|
|
if !reflect.DeepEqual(stat, expected) {
|
|
t.Errorf("not equal to expected %+v", expected)
|
|
}
|
|
|
|
t.Logf("%+v", stat)
|
|
}
|
|
|
|
func TestReadProcessStatWithDoubleParentheses(t *testing.T) {
|
|
|
|
stat, err := ReadProcessStat("proc/4854/stat")
|
|
|
|
if err != nil {
|
|
t.Fatal("process stat read fail", err)
|
|
}
|
|
|
|
expected := &ProcessStat{
|
|
Pid: 4854,
|
|
Comm: "((sd-pam))",
|
|
State: "S",
|
|
Ppid: 4853,
|
|
Pgrp: 4853,
|
|
Session: 4853,
|
|
TtyNr: 0,
|
|
Tpgid: -1,
|
|
Flags: 1077944640,
|
|
Minflt: 21,
|
|
Cminflt: 0,
|
|
Majflt: 0,
|
|
Cmajflt: 0,
|
|
Utime: 0,
|
|
Stime: 0,
|
|
Cutime: 0,
|
|
Cstime: 0,
|
|
Priority: 20,
|
|
Nice: 0,
|
|
NumThreads: 1,
|
|
Itrealvalue: 0,
|
|
Starttime: 4912,
|
|
Vsize: 83931136,
|
|
Rss: 405,
|
|
Rsslim: 18446744073709551615,
|
|
Startcode: 1,
|
|
Endcode: 1,
|
|
Startstack: 0,
|
|
Kstkesp: 0,
|
|
Kstkeip: 0,
|
|
Signal: 0,
|
|
Blocked: 0,
|
|
Sigignore: 4096,
|
|
Sigcatch: 0,
|
|
Wchan: 18446744073709551615,
|
|
Nswap: 0,
|
|
Cnswap: 0,
|
|
ExitSignal: 17,
|
|
Processor: 7,
|
|
RtPriority: 0,
|
|
Policy: 0,
|
|
DelayacctBlkioTicks: 0,
|
|
GuestTime: 0,
|
|
CguestTime: 0,
|
|
}
|
|
|
|
if !reflect.DeepEqual(stat, expected) {
|
|
t.Errorf("not equal to expected %+v", expected)
|
|
}
|
|
|
|
t.Logf("%+v", stat)
|
|
|
|
}
|