summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Cavalca <dcavalca@fb.com>2017-06-06 16:04:52 -0700
committerDavide Cavalca <dcavalca@fb.com>2017-06-06 20:00:10 -0700
commit16937d01624ba6190fcbc9ad39b5b439d8bb5941 (patch)
tree2b278e5d19be3c299f68b750138bb3199f4e94c6
parent63056754808a718e82cdc88684c27a6280aa9349 (diff)
downloadohai-16937d01624ba6190fcbc9ad39b5b439d8bb5941.tar.gz
cpu: add support for arm64 cpuinfo fields
Signed-off-by: Davide Cavalca <dcavalca@fb.com>
-rw-r--r--lib/ohai/plugins/linux/cpu.rb4
-rw-r--r--spec/unit/plugins/linux/cpu_spec.rb47
2 files changed, 51 insertions, 0 deletions
diff --git a/lib/ohai/plugins/linux/cpu.rb b/lib/ohai/plugins/linux/cpu.rb
index 287e8def..0d6df732 100644
--- a/lib/ohai/plugins/linux/cpu.rb
+++ b/lib/ohai/plugins/linux/cpu.rb
@@ -59,6 +59,10 @@ Ohai.plugin(:CPU) do
cpuinfo[current_cpu]["cache_size"] = $1
when /flags\s+:\s(.+)/
cpuinfo[current_cpu]["flags"] = $1.split(" ")
+ when /BogoMIPS\s+:\s(.+)/
+ cpuinfo[current_cpu]["bogomips"] = $1
+ when /Features\s+:\s(.+)/
+ cpuinfo[current_cpu]["features"] = $1.split(" ")
when /bogomips per cpu:\s(.+)/
cpuinfo["bogomips_per_cpu"] = $1
when /features\s+:\s(.+)/
diff --git a/spec/unit/plugins/linux/cpu_spec.rb b/spec/unit/plugins/linux/cpu_spec.rb
index e801d42a..ccaa802d 100644
--- a/spec/unit/plugins/linux/cpu_spec.rb
+++ b/spec/unit/plugins/linux/cpu_spec.rb
@@ -60,6 +60,22 @@ shared_examples "S390 processor info" do |cpu_no, version, identification, machi
end
end
+shared_examples "arm64 processor info" do |cpu_no, bogomips, features|
+ describe "arm64 processor" do
+ it "has bogomips for cpu #{cpu_no}" do
+ plugin.run
+ expect(plugin[:cpu]["#{cpu_no}"]).to have_key("bogomips")
+ expect(plugin[:cpu]["#{cpu_no}"]["bogomips"]).to eql(bogomips)
+ end
+
+ it "has features for cpu #{cpu_no}" do
+ plugin.run
+ expect(plugin[:cpu]["#{cpu_no}"]).to have_key("features")
+ expect(plugin[:cpu]["#{cpu_no}"]["features"]).to eql(features)
+ end
+ end
+end
+
describe Ohai::System, "General Linux cpu plugin" do
let(:plugin) { get_plugin("linux/cpu") }
@@ -355,3 +371,34 @@ describe Ohai::System, "S390 linux cpu plugin" do
it_behaves_like "S390 processor info", 0, "EE", "06E276", "2717"
it_behaves_like "S390 processor info", 1, "FF", "06E278", "2818"
end
+
+describe Ohai::System, "arm64 linux cpu plugin" do
+ let(:plugin) { get_plugin("linux/cpu") }
+
+ before(:each) do
+ allow(plugin).to receive(:collect_os).and_return(:linux)
+
+ @double_file = double("/proc/cpuinfo")
+ allow(@double_file).to receive(:each).
+ and_yield("processor : 0").
+ and_yield("BogoMIPS : 40.00").
+ and_yield("Features : fp asimd evtstrm aes pmull sha1 sha2 crc32").
+ and_yield("").
+ and_yield("processor : 1").
+ and_yield("BogoMIPS : 40.00").
+ and_yield("Features : fp asimd evtstrm aes pmull sha1 sha2 crc32").
+ and_yield("")
+ allow(File).to receive(:open).with("/proc/cpuinfo").and_return(@double_file)
+ end
+
+ it_behaves_like "Common cpu info", 2, 0
+
+ it "has a cpu 1" do
+ plugin.run
+ expect(plugin[:cpu]).to have_key("1")
+ end
+
+ features = %w{fp asimd evtstrm aes pmull sha1 sha2 crc32}
+ it_behaves_like "arm64 processor info", 0, "40.00", features
+ it_behaves_like "arm64 processor info", 1, "40.00", features
+end