2014-05-23 10:31:47 +09:00
|
|
|
package gopsutil
|
2014-04-23 12:26:21 +09:00
|
|
|
|
|
|
|
import (
|
2014-04-25 16:38:23 +09:00
|
|
|
"os"
|
2014-04-24 01:07:15 +09:00
|
|
|
"runtime"
|
2014-04-23 12:26:21 +09:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2014-08-15 20:05:26 +02:00
|
|
|
func testGetProcess() Process {
|
2014-05-01 18:27:43 +09:00
|
|
|
checkPid := os.Getpid()
|
|
|
|
if runtime.GOOS == "windows" {
|
|
|
|
checkPid = 7960
|
|
|
|
}
|
2014-05-23 10:31:47 +09:00
|
|
|
ret, _ := NewProcess(int32(checkPid))
|
2014-05-01 18:27:43 +09:00
|
|
|
return *ret
|
|
|
|
}
|
|
|
|
|
2014-04-23 13:24:07 +09:00
|
|
|
func Test_Pids(t *testing.T) {
|
2014-05-23 10:31:47 +09:00
|
|
|
ret, err := Pids()
|
2014-04-23 12:26:21 +09:00
|
|
|
if err != nil {
|
|
|
|
t.Errorf("error %v", err)
|
|
|
|
}
|
2014-04-23 13:24:07 +09:00
|
|
|
if len(ret) == 0 {
|
|
|
|
t.Errorf("could not get pids %v", ret)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_Pid_exists(t *testing.T) {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid := 1
|
2014-04-24 01:07:15 +09:00
|
|
|
if runtime.GOOS == "windows" {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid = 0
|
2014-04-24 01:07:15 +09:00
|
|
|
}
|
|
|
|
|
2014-05-23 10:31:47 +09:00
|
|
|
ret, err := PidExists(int32(checkPid))
|
2014-04-23 13:24:07 +09:00
|
|
|
if err != nil {
|
|
|
|
t.Errorf("error %v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if ret == false {
|
|
|
|
t.Errorf("could not get init process %v", ret)
|
|
|
|
}
|
2014-04-23 17:57:47 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
func Test_NewProcess(t *testing.T) {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid := 1
|
2014-04-24 01:07:15 +09:00
|
|
|
if runtime.GOOS == "windows" {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid = 0
|
2014-04-24 01:07:15 +09:00
|
|
|
}
|
|
|
|
|
2014-05-23 10:31:47 +09:00
|
|
|
ret, err := NewProcess(int32(checkPid))
|
2014-04-23 17:57:47 +09:00
|
|
|
if err != nil {
|
|
|
|
t.Errorf("error %v", err)
|
|
|
|
}
|
2014-05-23 10:31:47 +09:00
|
|
|
empty := &Process{}
|
2014-05-12 11:51:08 +09:00
|
|
|
if runtime.GOOS != "windows" { // Windows pid is 0
|
|
|
|
if empty == ret {
|
|
|
|
t.Errorf("error %v", ret)
|
|
|
|
}
|
|
|
|
}
|
2014-04-23 13:24:07 +09:00
|
|
|
|
2014-04-23 12:26:21 +09:00
|
|
|
}
|
2014-04-25 16:29:15 +09:00
|
|
|
|
|
|
|
func Test_Process_memory_maps(t *testing.T) {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid := os.Getpid()
|
2014-04-25 16:29:15 +09:00
|
|
|
if runtime.GOOS == "windows" {
|
2014-04-30 16:16:07 +09:00
|
|
|
checkPid = 0
|
2014-04-25 16:29:15 +09:00
|
|
|
}
|
2014-05-23 10:31:47 +09:00
|
|
|
ret, err := NewProcess(int32(checkPid))
|
2014-04-25 16:29:15 +09:00
|
|
|
|
2014-04-30 15:32:05 +09:00
|
|
|
mmaps, err := ret.MemoryMaps(false)
|
2014-04-25 16:29:15 +09:00
|
|
|
if err != nil {
|
|
|
|
t.Errorf("memory map get error %v", err)
|
|
|
|
}
|
2014-05-23 10:31:47 +09:00
|
|
|
empty := MemoryMapsStat{}
|
2014-04-25 16:29:15 +09:00
|
|
|
for _, m := range *mmaps {
|
2014-05-12 11:51:08 +09:00
|
|
|
if m == empty {
|
|
|
|
t.Errorf("memory map get error %v", m)
|
|
|
|
}
|
2014-04-25 16:29:15 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2014-04-26 15:45:32 +09:00
|
|
|
|
|
|
|
func Test_Process_Ppid(t *testing.T) {
|
2014-08-15 20:05:26 +02:00
|
|
|
p := testGetProcess()
|
2014-04-26 15:45:32 +09:00
|
|
|
|
2014-05-01 18:27:43 +09:00
|
|
|
v, err := p.Ppid()
|
2014-04-26 15:45:32 +09:00
|
|
|
if err != nil {
|
2014-04-28 22:34:08 +09:00
|
|
|
t.Errorf("geting ppid error %v", err)
|
2014-04-26 15:45:32 +09:00
|
|
|
}
|
|
|
|
if v == 0 {
|
2014-04-28 22:34:08 +09:00
|
|
|
t.Errorf("return value is 0 %v", v)
|
2014-04-26 15:45:32 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2014-05-01 18:27:43 +09:00
|
|
|
|
|
|
|
func Test_Process_IOCounters(t *testing.T) {
|
2014-08-15 20:05:26 +02:00
|
|
|
p := testGetProcess()
|
2014-05-01 18:27:43 +09:00
|
|
|
|
|
|
|
v, err := p.IOCounters()
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("geting ppid error %v", err)
|
2014-05-01 18:46:40 +09:00
|
|
|
return
|
2014-05-01 18:27:43 +09:00
|
|
|
}
|
2014-05-23 10:31:47 +09:00
|
|
|
empty := &IOCountersStat{}
|
2014-05-12 11:51:08 +09:00
|
|
|
if v == empty {
|
|
|
|
t.Errorf("error %v", v)
|
2014-05-01 18:27:43 +09:00
|
|
|
}
|
|
|
|
}
|
2014-05-01 19:10:15 +09:00
|
|
|
|
|
|
|
func Test_Process_NumCtx(t *testing.T) {
|
2014-08-15 20:05:26 +02:00
|
|
|
p := testGetProcess()
|
2014-05-01 19:10:15 +09:00
|
|
|
|
|
|
|
_, err := p.NumCtxSwitches()
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("geting numctx error %v", err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|