-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmeminfo_test.go
61 lines (49 loc) · 1.96 KB
/
meminfo_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package proc
import (
"fmt"
"reflect"
"testing"
)
func TestMemInfo(t *testing.T) {
{
var expected = MemInfo{1011048, 92096, 0, 44304, 681228, 4, 494100, 306804, 71424, 9576, 422676, 297228, 0, 0, 524284, 524280, 28, 0, 75444, 26384, 5624, 60884, 45068, 15816, 1112, 2936, 0, 0, 0, 1029808, 528152, 34359738367, 10504, 34359725792, 0, 0, 0, 0, 0, 0, 2048, 1056768, 0, 0}
read, err := ReadMemInfo("proc/meminfo_1")
if err != nil {
t.Fatal("meminfo read fail")
}
t.Logf("%+v", read)
if err := compareExpectedReadFieldsMemInfo(&expected, read); err != nil {
t.Error(err.Error())
}
if !reflect.DeepEqual(*read, expected) {
t.Error("not equal to expected")
}
}
{
var expected = MemInfo{132003228, 126199196, 130327756, 819908, 2910788, 0, 3043760, 1027084, 340788, 1056, 2702972, 1026028, 0, 0, 3903484, 3903484, 8, 0, 342276, 72380, 1704, 899472, 737432, 162040, 7328, 7120, 0, 0, 0, 69905096, 1024672, 34359738367, 495100, 34290957508, 0, 172032, 0, 0, 0, 0, 2048, 143652, 14501888, 121634816}
read, err := ReadMemInfo("proc/meminfo_2")
if err != nil {
t.Fatal("meminfo read fail")
}
t.Logf("%+v", read)
if err := compareExpectedReadFieldsMemInfo(&expected, read); err != nil {
t.Error(err.Error())
}
if !reflect.DeepEqual(*read, expected) {
t.Error("not equal to expected")
}
}
}
//This is a helper function which makes it easier to track down errors in expected versus read values.
func compareExpectedReadFieldsMemInfo(expected *MemInfo, read *MemInfo) error {
elemExpected := reflect.ValueOf(*expected)
typeOfElemExpected := elemExpected.Type()
elemRead := reflect.ValueOf(*read)
for i := 0; i < elemExpected.NumField(); i++ {
fieldName := typeOfElemExpected.Field(i).Name
if elemExpected.Field(i).Uint() != elemRead.Field(i).Uint() {
return fmt.Errorf("Read value not equal to expected value for field %s. Got %d and expected %d.", fieldName, elemRead.Field(i).Uint(), elemExpected.Field(i).Uint())
}
}
return nil
}