mirror of
https://github.com/shirou/gopsutil.git
synced 2025-05-10 19:29:14 +08:00

This change changes and documents the (previously undocumented) behavior of Used to "RAM used by programs". We also remove the undocumented and unused Shared field of that struct. So with this change in place, the VirtualMemoryStruct contains: * three human-consumable fields for Total, Used and Available memory * one human-consumable UsedPercentage field * a number of kernel specific fields
73 lines
1.6 KiB
Go
73 lines
1.6 KiB
Go
package mem
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestVirtual_memory(t *testing.T) {
|
|
v, err := VirtualMemory()
|
|
if err != nil {
|
|
t.Errorf("error %v", err)
|
|
}
|
|
empty := &VirtualMemoryStat{}
|
|
if v == empty {
|
|
t.Errorf("error %v", v)
|
|
}
|
|
|
|
assert.True(t, v.Total > 0)
|
|
assert.True(t, v.Available > 0)
|
|
assert.True(t, v.Used > 0)
|
|
|
|
assert.Equal(t, v.Total, v.Available+v.Used,
|
|
"Total should be computable from available + used: %v", v)
|
|
|
|
assert.True(t, v.Free > 0)
|
|
assert.True(t, v.Available > v.Free,
|
|
"Free should be a subset of Available: %v", v)
|
|
|
|
assert.InDelta(t, v.UsedPercent,
|
|
100*float64(v.Used)/float64(v.Total), 0.1,
|
|
"UsedPercent should be how many percent of Total is Used: %v", v)
|
|
}
|
|
|
|
func TestSwap_memory(t *testing.T) {
|
|
v, err := SwapMemory()
|
|
if err != nil {
|
|
t.Errorf("error %v", err)
|
|
}
|
|
empty := &SwapMemoryStat{}
|
|
if v == empty {
|
|
t.Errorf("error %v", v)
|
|
}
|
|
}
|
|
|
|
func TestVirtualMemoryStat_String(t *testing.T) {
|
|
v := VirtualMemoryStat{
|
|
Total: 10,
|
|
Available: 20,
|
|
Used: 30,
|
|
UsedPercent: 30.1,
|
|
Free: 40,
|
|
}
|
|
e := `{"total":10,"available":20,"used":30,"used_percent":30.1,"free":40,"active":0,"inactive":0,"wired":0,"buffers":0,"cached":0}`
|
|
if e != fmt.Sprintf("%v", v) {
|
|
t.Errorf("VirtualMemoryStat string is invalid: %v", v)
|
|
}
|
|
}
|
|
|
|
func TestSwapMemoryStat_String(t *testing.T) {
|
|
v := SwapMemoryStat{
|
|
Total: 10,
|
|
Used: 30,
|
|
Free: 40,
|
|
UsedPercent: 30.1,
|
|
}
|
|
e := `{"total":10,"used":30,"free":40,"used_percent":30.1,"sin":0,"sout":0}`
|
|
if e != fmt.Sprintf("%v", v) {
|
|
t.Errorf("SwapMemoryStat string is invalid: %v", v)
|
|
}
|
|
}
|