shirou_gopsutil/cpu_test.go

90 lines
1.8 KiB
Go
Raw Normal View History

package gopsutil
2014-04-18 15:34:47 +08:00
import (
2014-05-12 10:51:08 +08:00
"fmt"
2014-11-02 11:05:52 +08:00
"runtime"
2014-04-18 15:34:47 +08:00
"testing"
2014-11-02 11:05:52 +08:00
"time"
2014-04-18 15:34:47 +08:00
)
func TestCpu_times(t *testing.T) {
v, err := CPUTimes(false)
2014-04-18 15:34:47 +08:00
if err != nil {
t.Errorf("error %v", err)
}
if len(v) == 0 {
t.Error("could not get CPUs ", err)
2014-04-18 15:34:47 +08:00
}
empty := CPUTimesStat{}
2014-04-18 15:34:47 +08:00
for _, vv := range v {
2014-05-12 10:51:08 +08:00
if vv == empty {
2014-04-18 15:34:47 +08:00
t.Errorf("could not get CPU User: %v", vv)
}
}
}
func TestCpu_counts(t *testing.T) {
v, err := CPUCounts(true)
2014-04-18 15:34:47 +08:00
if err != nil {
t.Errorf("error %v", err)
}
if v == 0 {
t.Errorf("could not get CPU counts: %v", v)
}
}
2014-05-12 10:51:08 +08:00
func TestCPUTimeStat_String(t *testing.T) {
v := CPUTimesStat{
2014-05-12 10:51:08 +08:00
CPU: "cpu0",
User: 100.1,
System: 200.1,
Idle: 300.1,
}
e := `{"cpu":"cpu0","user":100.1,"system":200.1,"idle":300.1,"nice":0,"iowait":0,"irq":0,"softirq":0,"steal":0,"guest":0,"guest_nice":0,"stolen":0}`
if e != fmt.Sprintf("%v", v) {
t.Errorf("CPUTimesStat string is invalid: %v", v)
}
}
2014-05-16 17:12:18 +08:00
func TestCpuInfo(t *testing.T) {
v, err := CPUInfo()
2014-05-16 17:12:18 +08:00
if err != nil {
t.Errorf("error %v", err)
}
for _, vv := range v {
2014-05-16 17:39:17 +08:00
if vv.ModelName == "" {
2014-05-16 17:12:18 +08:00
t.Errorf("could not get CPU Info: %v", vv)
}
}
}
2014-11-02 11:05:52 +08:00
func testCPUPercent(t *testing.T, percpu bool) {
v, err := CPUPercent(time.Millisecond, percpu)
if err != nil {
t.Errorf("error %v", err)
}
numcpu := runtime.NumCPU()
if (percpu && len(v) != numcpu) || (!percpu && len(v) != 1) {
t.Fatalf("wrong number of entries from CPUPercent: %v", v)
}
for i := 0; i < 1000; i++ {
v, err := CPUPercent(0, percpu)
if err != nil {
t.Errorf("error %v", err)
}
for _, percent := range v {
if percent < 0.0 || percent > 100.0*float32(numcpu) {
t.Fatalf("CPUPercent value is invalid: %f", percent)
}
}
}
}
func TestCPUPercent(t *testing.T) {
testCPUPercent(t, false)
}
func TestCPUPercentPerCpu(t *testing.T) {
testCPUPercent(t, true)
}