1
2
3
4
5
6
7
8
9
10
11
12
13
14 package procfs
15
16 import (
17 "strings"
18 "testing"
19 )
20
21 func TestBuddyInfo(t *testing.T) {
22 buddyInfo, err := getProcFixtures(t).BuddyInfo()
23 if err != nil {
24 t.Fatal(err)
25 }
26
27 if want, got := "DMA", buddyInfo[0].Zone; want != got {
28 t.Errorf("want Node 0, Zone %s, got %s", want, got)
29 }
30
31 if want, got := "Normal", buddyInfo[2].Zone; want != got {
32 t.Errorf("want Node 0, Zone %s, got %s", want, got)
33 }
34
35 if want, got := 4381.0, buddyInfo[2].Sizes[0]; want != got {
36 t.Errorf("want Node 0, Zone Normal %f, got %f", want, got)
37 }
38
39 if want, got := 572.0, buddyInfo[1].Sizes[1]; want != got {
40 t.Errorf("want Node 0, Zone DMA32 %f, got %f", want, got)
41 }
42 }
43
44 func TestParseBuddyInfoShort(t *testing.T) {
45
46 testdata := `Node 0, zone
47 Node 0, zone
48 Node 0, zone
49 `
50 reader := strings.NewReader(testdata)
51 _, err := parseBuddyInfo(reader)
52 if err == nil {
53 t.Fatalf("expected error, but none occurred")
54 }
55 if want, got := "Error Parsing File: Invalid number of fields, found: [Node 0, zone]", err.Error(); want != got {
56 t.Fatalf("Error Parsing File: Invalid number of fields, found: [Node %q, %q]", want, got)
57 }
58 }
59
60 func TestParseBuddyInfoSizeMismatch(t *testing.T) {
61
62 testdata := `Node 0, zone DMA 1 0 1 0 2 1 1 0 1 1 3
63 Node 0, zone DMA32 759 572 791 475 194 45 12 0 0 0 0 0
64 Node 0, zone Normal 4381 1093 185 1530 567 102 4 0 0 0
65 `
66 reader := strings.NewReader(testdata)
67 _, err := parseBuddyInfo(reader)
68 if err == nil {
69 t.Fatalf("expected error, but none occurred")
70 }
71 if want, got := "Error Parsing File: mismatch in number of buddyinfo buckets, previous count 11, new count 12", err.Error(); !strings.HasPrefix(got, want) {
72 t.Fatalf("Error Parsing File: mismatch in number of buddyinfo buckets, previous count %q, new count %q", want, got)
73 }
74 }
75
View as plain text