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) } }