@@ -18,7 +18,7 @@ package procfs
1818import "testing"
1919
2020const (
21- cpuinfoArm7 = `
21+ cpuinfoArm7Legacy = `
2222Processor : ARMv7 Processor rev 5 (v7l)
2323processor : 0
2424BogoMIPS : 2400.00
@@ -37,6 +37,65 @@ Hardware : sun8i
3737Revision : 0000
3838Serial : 5400503583203c3c040e`
3939
40+ cpuinfoArm7LegacyV1 = `
41+ Processor : ARMv6-compatible processor rev 5 (v6l)
42+ BogoMIPS : 791.34
43+ Features : swp half thumb fastmult vfp edsp java
44+ CPU implementer : 0x41
45+ CPU architecture: 6TEJ
46+ CPU variant : 0x1
47+ CPU part : 0xb36
48+ CPU revision : 5
49+
50+ Hardware : IMAPX200
51+ Revision : 0000
52+ Serial : 0000000000000000`
53+
54+ cpuinfoArm7 = `
55+ processor : 0
56+ model name : ARMv7 Processor rev 3 (v7l)
57+ BogoMIPS : 108.00
58+ Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
59+ CPU implementer : 0x41
60+ CPU architecture: 7
61+ CPU variant : 0x0
62+ CPU part : 0xd08
63+ CPU revision : 3
64+
65+ processor : 1
66+ model name : ARMv7 Processor rev 3 (v7l)
67+ BogoMIPS : 108.00
68+ Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
69+ CPU implementer : 0x41
70+ CPU architecture: 7
71+ CPU variant : 0x0
72+ CPU part : 0xd08
73+ CPU revision : 3
74+
75+ processor : 2
76+ model name : ARMv7 Processor rev 3 (v7l)
77+ BogoMIPS : 108.00
78+ Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
79+ CPU implementer : 0x41
80+ CPU architecture: 7
81+ CPU variant : 0x0
82+ CPU part : 0xd08
83+ CPU revision : 3
84+
85+ processor : 3
86+ model name : ARMv7 Processor rev 3 (v7l)
87+ BogoMIPS : 108.00
88+ Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
89+ CPU implementer : 0x41
90+ CPU architecture: 7
91+ CPU variant : 0x0
92+ CPU part : 0xd08
93+ CPU revision : 3
94+
95+ Hardware : BCM2835
96+ Revision : c03111
97+ `
98+
4099 cpuinfoS390x = `
41100vendor_id : IBM/S390
42101# processors : 4
@@ -153,22 +212,54 @@ func TestCPUInfoX86(t *testing.T) {
153212 }
154213}
155214
156- func TestCPUInfoParseARM (t * testing.T ) {
157- cpuinfo , err := parseCPUInfoARM ([]byte (cpuinfoArm7 ))
215+ func TestCPUInfoParseARMLegacy (t * testing.T ) {
216+ cpuinfo , err := parseCPUInfoARM ([]byte (cpuinfoArm7Legacy ))
158217 if err != nil || cpuinfo == nil {
159218 t .Fatalf ("unable to parse arm cpu info: %v" , err )
160219 }
161220 if want , have := 2 , len (cpuinfo ); want != have {
162221 t .Errorf ("want number of processors %v, have %v" , want , have )
163222 }
164- if want , have := "ARMv7 Processor rev 5 (v7l)" , cpuinfo [0 ].VendorID ; want != have {
223+ if want , have := "ARMv7 Processor rev 5 (v7l)" , cpuinfo [0 ].ModelName ; want != have {
165224 t .Errorf ("want vendor %v, have %v" , want , have )
166225 }
167226 if want , have := "thumb" , cpuinfo [1 ].Flags [2 ]; want != have {
168227 t .Errorf ("want flag %v, have %v" , want , have )
169228 }
170229}
171230
231+ func TestCPUInfoParseARMLegacyV1 (t * testing.T ) {
232+ cpuinfo , err := parseCPUInfoARM ([]byte (cpuinfoArm7LegacyV1 ))
233+ if err != nil || cpuinfo == nil {
234+ t .Fatalf ("unable to parse arm cpu info: %v" , err )
235+ }
236+ if want , have := 1 , len (cpuinfo ); want != have {
237+ t .Errorf ("want number of processors %v, have %v" , want , have )
238+ }
239+ if want , have := "ARMv6-compatible processor rev 5 (v6l)" , cpuinfo [0 ].ModelName ; want != have {
240+ t .Errorf ("want vendor %v, have %v" , want , have )
241+ }
242+ if want , have := "thumb" , cpuinfo [0 ].Flags [2 ]; want != have {
243+ t .Errorf ("want flag %v, have %v" , want , have )
244+ }
245+ }
246+
247+ func TestCPUInfoParseARM (t * testing.T ) {
248+ cpuinfo , err := parseCPUInfoARM ([]byte (cpuinfoArm7 ))
249+ if err != nil || cpuinfo == nil {
250+ t .Fatalf ("unable to parse arm cpu info: %v" , err )
251+ }
252+ if want , have := 4 , len (cpuinfo ); want != have {
253+ t .Errorf ("want number of processors %v, have %v" , want , have )
254+ }
255+ if want , have := "ARMv7 Processor rev 3 (v7l)" , cpuinfo [0 ].ModelName ; want != have {
256+ t .Errorf ("want vendor %v, have %v" , want , have )
257+ }
258+ if want , have := "thumb" , cpuinfo [1 ].Flags [1 ]; want != have {
259+ t .Errorf ("want flag %v, have %v" , want , have )
260+ }
261+ }
262+
172263func TestCPUInfoParseS390X (t * testing.T ) {
173264 cpuinfo , err := parseCPUInfoS390X ([]byte (cpuinfoS390x ))
174265 if err != nil || cpuinfo == nil {
0 commit comments