aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Yue Gan <yueg@google.com>2016-04-05 09:00:22 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-04-05 14:09:07 +0000
commita6ae3e7a43d32c13081886ffa64b5d14157f4910 (patch)
tree0e97efc27924b470f7915acb574c76acdb979bc7 /src/test/java/com/google/devtools/build/lib
parenteea74e902818b5808834061d61a3183d87346a83 (diff)
Add SMT detection for mac. Fixes #963.
-- Change-Id: Ib83af0d0a04dc6b173bef1df28d17abc7a3c824d Reviewed-on: https://bazel-review.googlesource.com/#/c/3120/ MOS_MIGRATED_REVID=119027507
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/LocalHostCapacityTest.java392
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerLinuxTest.java340
2 files changed, 340 insertions, 392 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/actions/LocalHostCapacityTest.java b/src/test/java/com/google/devtools/build/lib/actions/LocalHostCapacityTest.java
deleted file mode 100644
index e1f17429f9..0000000000
--- a/src/test/java/com/google/devtools/build/lib/actions/LocalHostCapacityTest.java
+++ /dev/null
@@ -1,392 +0,0 @@
-// Copyright 2015 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.actions;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-
-import com.google.devtools.build.lib.util.StringUtilities;
-import com.google.devtools.build.lib.vfs.util.FsApparatus;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class LocalHostCapacityTest {
-
- private FsApparatus scratch = FsApparatus.newNative();
-
- @Test
- public void testNonHyperthreadedMachine() throws Exception {
- String cpuinfoContent = StringUtilities.joinLines(
- "processor\t: 0",
- "vendor_id\t: GenuineIntel",
- "cpu family\t: 15",
- "model\t\t: 4",
- "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
- "stepping\t: 10",
- "cpu MHz\t\t: 3400.000",
- "cache size\t: 2048 KB",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 5",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca "
- + "cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
- + "syscall nx lm constant_tsc up pni monitor ds_cpl est cid cx16 "
- + "xtpr lahf_lm",
- "bogomips\t: 6803.83",
- "clflush size\t: 64",
- "cache_alignment\t: 128",
- "address sizes\t: 36 bits physical, 48 bits virtual",
- "power management:"
- );
- String cpuinfoFile =
- scratch.file("test_cpuinfo_nonht", cpuinfoContent).getPathString();
- String meminfoContent = StringUtilities.joinLines(
- "MemTotal: 3091732 kB",
- "MemFree: 2167344 kB",
- "Buffers: 60644 kB",
- "Cached: 509940 kB",
- "SwapCached: 0 kB",
- "Active: 636892 kB",
- "Inactive: 212760 kB",
- "HighTotal: 0 kB",
- "HighFree: 0 kB",
- "LowTotal: 3091732 kB",
- "LowFree: 2167344 kB",
- "SwapTotal: 9124880 kB",
- "SwapFree: 9124880 kB",
- "Dirty: 0 kB",
- "Writeback: 0 kB",
- "AnonPages: 279028 kB",
- "Mapped: 54404 kB",
- "Slab: 42820 kB",
- "PageTables: 5184 kB",
- "NFS_Unstable: 0 kB",
- "Bounce: 0 kB",
- "CommitLimit: 10670744 kB",
- "Committed_AS: 665840 kB",
- "VmallocTotal: 34359738367 kB",
- "VmallocUsed: 300484 kB",
- "VmallocChunk: 34359437307 kB",
- "HugePages_Total: 0",
- "HugePages_Free: 0",
- "HugePages_Rsvd: 0",
- "Hugepagesize: 2048 kB"
- );
- String stat1Content = StringUtilities.joinLines(
- "cpu 29793342 260290 3479274 636259369 6683218 656426 714057 0",
- "cpu0 29793342 260290 3479274 636259369 6683218 656426 714057 0",
- "intr 2870488853 2486517107 3 0 0 2 0 5 0 0 0 0 0 3 0 74363716 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 52483586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 973315 0 0 0 0 0 0 0 46 " +
- "0 0 0 0 0 0 0 98792358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114339590 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43019122 0 0 0 0 0",
- "ctxt 15053799843",
- "btime 1199289688",
- "processes 25799993",
- "procs_running 1",
- "procs_blocked 0"
- );
- String stat2Content = StringUtilities.joinLines(
- "cpu 29794509 260290 3479474 636287862 6683283 656450 714087 0 0",
- "cpu0 29794509 260290 3479474 636287862 6683283 656450 714087 0 0",
- "intr 2870488853 2486517107 3 0 0 2 0 5 0 0 0 0 0 3 0 74363716 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 52483586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 973315 0 0 0 0 0 0 0 46 " +
- "0 0 0 0 0 0 0 98792358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114339590 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " +
- "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43019122 0 0 0 0 0",
- "ctxt 15053799843",
- "btime 1199289688",
- "processes 25799993",
- "procs_running 1",
- "procs_blocked 0"
- );
- String meminfoFile =
- scratch.file("test_meminfo_nonht", meminfoContent).getPathString();
- assertEquals(1, LocalHostCapacity.getLogicalCpuCount(cpuinfoContent));
- assertEquals(1, LocalHostCapacity.getPhysicalCpuCount(cpuinfoContent, 1));
- assertEquals(1, LocalHostCapacity.getCoresPerCpu(cpuinfoContent));
- ResourceSet capacity =
- LocalHostCapacity.getLocalHostCapacity(cpuinfoFile, meminfoFile);
- assertEquals(1.0, capacity.getCpuUsage(), 0.01);
- assertEquals(3091.732, capacity.getMemoryMb(), 0.1); // +/- 0.1MB
- LocalHostCapacity.setLocalHostCapacity(capacity);
- assertSame(capacity, LocalHostCapacity.getLocalHostCapacity());
- }
-
- @Test
- public void testHyperthreadedMachine() throws Exception {
- String cpuinfoContent = StringUtilities.joinLines(
- "processor\t: 0",
- "vendor_id\t: GenuineIntel",
- "cpu family\t: 15",
- "model\t\t: 4",
- "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
- "stepping\t: 1",
- "cpu MHz\t\t: 3400.245",
- "cache size\t: 1024 KB",
- "physical id\t: 0",
- "siblings\t: 2",
- "core id\t\t: 0",
- "cpu cores\t: 1",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 5",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge "
- + "mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
- + "syscall lm constant_tsc pni monitor ds_cpl cid cx16 xtpr",
- "bogomips\t: 6806.31",
- "clflush size\t: 64",
- "cache_alignment\t: 128",
- "address sizes\t: 36 bits physical, 48 bits virtual",
- "power management:",
- "",
- "processor\t: 1",
- "vendor_id\t: GenuineIntel",
- "cpu family\t: 15",
- "model\t\t: 4",
- "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
- "stepping\t: 1",
- "cpu MHz\t\t: 3400.245",
- "cache size\t: 1024 KB",
- "physical id\t: 0",
- "siblings\t: 2",
- "core id\t\t: 0",
- "cpu cores\t: 1",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 5",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge "
- + "mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
- + "syscall lm constant_tsc pni monitor ds_cpl cid cx16 xtpr",
- "bogomips\t: 6800.76",
- "clflush size\t: 64",
- "cache_alignment\t: 128",
- "address sizes\t: 36 bits physical, 48 bits virtual",
- "power management:",
- ""
- );
- String cpuinfoFile =
- scratch.file("test_cpuinfo_ht", cpuinfoContent).getPathString();
- String meminfoContent = StringUtilities.joinLines(
- "MemTotal: 3092004 kB",
- "MemFree: 26124 kB",
- "Buffers: 3836 kB",
- "Cached: 52400 kB",
- "SwapCached: 68204 kB",
- "Active: 2281464 kB",
- "Inactive: 260908 kB",
- "HighTotal: 0 kB",
- "HighFree: 0 kB",
- "LowTotal: 3092004 kB",
- "LowFree: 26124 kB",
- "SwapTotal: 9124880 kB",
- "SwapFree: 8264920 kB",
- "Dirty: 616 kB",
- "Writeback: 0 kB",
- "AnonPages: 2466336 kB",
- "Mapped: 37576 kB",
- "Slab: 483004 kB",
- "PageTables: 11912 kB",
- "NFS_Unstable: 0 kB",
- "Bounce: 0 kB",
- "CommitLimit: 10670880 kB",
- "Committed_AS: 3627984 kB",
- "VmallocTotal: 34359738367 kB",
- "VmallocUsed: 300460 kB",
- "VmallocChunk: 34359437307 kB",
- "HugePages_Total: 0",
- "HugePages_Free: 0",
- "HugePages_Rsvd: 0",
- "Hugepagesize: 2048 kB"
- );
- String meminfoFile =
- scratch.file("test_meminfo_ht", meminfoContent).getPathString();
- assertEquals(2, LocalHostCapacity.getLogicalCpuCount(cpuinfoContent));
- assertEquals(1, LocalHostCapacity.getPhysicalCpuCount(cpuinfoContent, 2));
- assertEquals(1, LocalHostCapacity.getCoresPerCpu(cpuinfoContent));
- ResourceSet capacity =
- LocalHostCapacity.getLocalHostCapacity(cpuinfoFile, meminfoFile);
- assertEquals(1.2, capacity.getCpuUsage(), .0001);
- assertEquals(3092.004, capacity.getMemoryMb(), 0.1); // +/- 0.1MB
- }
-
- @Test
- public void testAMDMachine() throws Exception {
- String cpuinfoContent = StringUtilities.joinLines(
- "processor\t: 0",
- "vendor_id\t: AuthenticAMD",
- "cpu family\t: 15",
- "model\t\t: 65",
- "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
- "stepping\t: 2",
- "cpu MHz\t\t: 2200.000",
- "cache size\t: 1024 KB",
- "physical id\t: 0",
- "siblings\t: 2",
- "core id\t\t: 0",
- "cpu cores\t: 2",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 1",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
- + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
- + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
- + "cmp_legacy svm cr8_legacy",
- "bogomips\t: 4425.84",
- "TLB size\t: 1024 4K pages",
- "clflush size\t: 64",
- "cache_alignment\t: 64",
- "address sizes\t: 40 bits physical, 48 bits virtual",
- "power management: ts fid vid ttp tm stc",
- "",
- "processor\t: 1",
- "vendor_id\t: AuthenticAMD",
- "cpu family\t: 15",
- "model\t\t: 65",
- "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
- "stepping\t: 2",
- "cpu MHz\t\t: 2200.000",
- "cache size\t: 1024 KB",
- "physical id\t: 0",
- "siblings\t: 2",
- "core id\t\t: 1",
- "cpu cores\t: 2",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 1",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
- + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
- + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
- + "cmp_legacy svm cr8_legacy",
- "bogomips\t: 4460.61",
- "TLB size\t: 1024 4K pages",
- "clflush size\t: 64",
- "cache_alignment\t: 64",
- "address sizes\t: 40 bits physical, 48 bits virtual",
- "power management: ts fid vid ttp tm stc",
- "",
- "processor\t: 2",
- "vendor_id\t: AuthenticAMD",
- "cpu family\t: 15",
- "model\t\t: 65",
- "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
- "stepping\t: 2",
- "cpu MHz\t\t: 2200.000",
- "cache size\t: 1024 KB",
- "physical id\t: 1",
- "siblings\t: 2",
- "core id\t\t: 0",
- "cpu cores\t: 2",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 1",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
- + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
- + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
- + "cmp_legacy svm cr8_legacy",
- "bogomips\t: 4420.45",
- "TLB size\t: 1024 4K pages",
- "clflush size\t: 64",
- "cache_alignment\t: 64",
- "address sizes\t: 40 bits physical, 48 bits virtual",
- "power management: ts fid vid ttp tm stc",
- "",
- "processor\t: 3",
- "vendor_id\t: AuthenticAMD",
- "cpu family\t: 15",
- "model\t\t: 65",
- "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
- "stepping\t: 2",
- "cpu MHz\t\t: 2200.000",
- "cache size\t: 1024 KB",
- "physical id\t: 1",
- "siblings\t: 2",
- "core id\t\t: 1",
- "cpu cores\t: 2",
- "fpu\t\t: yes",
- "fpu_exception\t: yes",
- "cpuid level\t: 1",
- "wp\t\t: yes",
- "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
- + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
- + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
- + "cmp_legacy svm cr8_legacy",
- "bogomips\t: 4460.39",
- "TLB size\t: 1024 4K pages",
- "clflush size\t: 64",
- "cache_alignment\t: 64",
- "address sizes\t: 40 bits physical, 48 bits virtual",
- "power management: ts fid vid ttp tm stc",
- ""
- );
- String cpuinfoFile =
- scratch.file("test_cpuinfo_amd", cpuinfoContent).getPathString();
- String meminfoContent = StringUtilities.joinLines(
- "MemTotal: 8223956 kB",
- "MemFree: 3670396 kB",
- "Buffers: 374068 kB",
- "Cached: 3366980 kB",
- "SwapCached: 0 kB",
- "Active: 3275860 kB",
- "Inactive: 737816 kB",
- "HighTotal: 0 kB",
- "HighFree: 0 kB",
- "LowTotal: 8223956 kB",
- "LowFree: 3670396 kB",
- "SwapTotal: 6024332 kB",
- "SwapFree: 6024332 kB",
- "Dirty: 84 kB",
- "Writeback: 0 kB",
- "AnonPages: 272308 kB",
- "Mapped: 62604 kB",
- "Slab: 506140 kB",
- "PageTables: 4608 kB",
- "NFS_Unstable: 0 kB",
- "Bounce: 0 kB",
- "CommitLimit: 10136308 kB",
- "Committed_AS: 600672 kB",
- "VmallocTotal: 34359738367 kB",
- "VmallocUsed: 299068 kB",
- "VmallocChunk: 34359438843 kB",
- "HugePages_Total: 0",
- "HugePages_Free: 0",
- "HugePages_Rsvd: 0",
- "Hugepagesize: 2048 kB");
- String meminfoFile =
- scratch.file("test_meminfo_amd", meminfoContent).getPathString();
- assertEquals(4, LocalHostCapacity.getLogicalCpuCount(cpuinfoContent));
- assertEquals(2, LocalHostCapacity.getPhysicalCpuCount(cpuinfoContent, 4));
- assertEquals(2, LocalHostCapacity.getCoresPerCpu(cpuinfoContent));
- ResourceSet capacity =
- LocalHostCapacity.getLocalHostCapacity(cpuinfoFile, meminfoFile);
- assertEquals(capacity.getCpuUsage(), 4.0, 0.01);
- assertEquals(8223.956, capacity.getMemoryMb(), 0.1); // +/- 0.1MB
- }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerLinuxTest.java b/src/test/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerLinuxTest.java
new file mode 100644
index 0000000000..3cd5ded358
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerLinuxTest.java
@@ -0,0 +1,340 @@
+// Copyright 2015 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.actions;
+
+import static org.junit.Assert.assertEquals;
+
+import com.google.devtools.build.lib.util.StringUtilities;
+import com.google.devtools.build.lib.vfs.util.FsApparatus;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Test for LocalHostResourceManagerLinux.
+ */
+@RunWith(JUnit4.class)
+public class LocalHostResourceManagerLinuxTest {
+
+ private final FsApparatus scratch = FsApparatus.newNative();
+
+ @Test
+ public void testNonHyperthreadedMachine() throws Exception {
+ String cpuinfoContent =
+ StringUtilities.joinLines(
+ "processor\t: 0",
+ "vendor_id\t: GenuineIntel",
+ "cpu family\t: 15",
+ "model\t\t: 4",
+ "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
+ "stepping\t: 10",
+ "cpu MHz\t\t: 3400.000",
+ "cache size\t: 2048 KB",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 5",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca "
+ + "cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
+ + "syscall nx lm constant_tsc up pni monitor ds_cpl est cid cx16 "
+ + "xtpr lahf_lm",
+ "bogomips\t: 6803.83",
+ "clflush size\t: 64",
+ "cache_alignment\t: 128",
+ "address sizes\t: 36 bits physical, 48 bits virtual",
+ "power management:");
+ String meminfoContent =
+ StringUtilities.joinLines(
+ "MemTotal: 3091732 kB",
+ "MemFree: 2167344 kB",
+ "Buffers: 60644 kB",
+ "Cached: 509940 kB",
+ "SwapCached: 0 kB",
+ "Active: 636892 kB",
+ "Inactive: 212760 kB",
+ "HighTotal: 0 kB",
+ "HighFree: 0 kB",
+ "LowTotal: 3091732 kB",
+ "LowFree: 2167344 kB",
+ "SwapTotal: 9124880 kB",
+ "SwapFree: 9124880 kB",
+ "Dirty: 0 kB",
+ "Writeback: 0 kB",
+ "AnonPages: 279028 kB",
+ "Mapped: 54404 kB",
+ "Slab: 42820 kB",
+ "PageTables: 5184 kB",
+ "NFS_Unstable: 0 kB",
+ "Bounce: 0 kB",
+ "CommitLimit: 10670744 kB",
+ "Committed_AS: 665840 kB",
+ "VmallocTotal: 34359738367 kB",
+ "VmallocUsed: 300484 kB",
+ "VmallocChunk: 34359437307 kB",
+ "HugePages_Total: 0",
+ "HugePages_Free: 0",
+ "HugePages_Rsvd: 0",
+ "Hugepagesize: 2048 kB");
+ String meminfoFile = scratch.file("test_meminfo_nonht", meminfoContent).getPathString();
+ assertEquals(1, LocalHostResourceManagerLinux.getLogicalCpuCountHelper(cpuinfoContent));
+ assertEquals(1, LocalHostResourceManagerLinux.getPhysicalCpuCountHelper(1, cpuinfoContent));
+ // +/- 0.1MB
+ assertEquals(3091.732, LocalHostResourceManagerLinux.getMemoryInMbHelper(meminfoFile), 0.1);
+ }
+
+ @Test
+ public void testHyperthreadedMachine() throws Exception {
+ String cpuinfoContent =
+ StringUtilities.joinLines(
+ "processor\t: 0",
+ "vendor_id\t: GenuineIntel",
+ "cpu family\t: 15",
+ "model\t\t: 4",
+ "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
+ "stepping\t: 1",
+ "cpu MHz\t\t: 3400.245",
+ "cache size\t: 1024 KB",
+ "physical id\t: 0",
+ "siblings\t: 2",
+ "core id\t\t: 0",
+ "cpu cores\t: 1",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 5",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge "
+ + "mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
+ + "syscall lm constant_tsc pni monitor ds_cpl cid cx16 xtpr",
+ "bogomips\t: 6806.31",
+ "clflush size\t: 64",
+ "cache_alignment\t: 128",
+ "address sizes\t: 36 bits physical, 48 bits virtual",
+ "power management:",
+ "",
+ "processor\t: 1",
+ "vendor_id\t: GenuineIntel",
+ "cpu family\t: 15",
+ "model\t\t: 4",
+ "model name\t: Intel(R) Pentium(R) 4 CPU 3.40GHz",
+ "stepping\t: 1",
+ "cpu MHz\t\t: 3400.245",
+ "cache size\t: 1024 KB",
+ "physical id\t: 0",
+ "siblings\t: 2",
+ "core id\t\t: 0",
+ "cpu cores\t: 1",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 5",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge "
+ + "mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm "
+ + "syscall lm constant_tsc pni monitor ds_cpl cid cx16 xtpr",
+ "bogomips\t: 6800.76",
+ "clflush size\t: 64",
+ "cache_alignment\t: 128",
+ "address sizes\t: 36 bits physical, 48 bits virtual",
+ "power management:",
+ "");
+ String meminfoContent =
+ StringUtilities.joinLines(
+ "MemTotal: 3092004 kB",
+ "MemFree: 26124 kB",
+ "Buffers: 3836 kB",
+ "Cached: 52400 kB",
+ "SwapCached: 68204 kB",
+ "Active: 2281464 kB",
+ "Inactive: 260908 kB",
+ "HighTotal: 0 kB",
+ "HighFree: 0 kB",
+ "LowTotal: 3092004 kB",
+ "LowFree: 26124 kB",
+ "SwapTotal: 9124880 kB",
+ "SwapFree: 8264920 kB",
+ "Dirty: 616 kB",
+ "Writeback: 0 kB",
+ "AnonPages: 2466336 kB",
+ "Mapped: 37576 kB",
+ "Slab: 483004 kB",
+ "PageTables: 11912 kB",
+ "NFS_Unstable: 0 kB",
+ "Bounce: 0 kB",
+ "CommitLimit: 10670880 kB",
+ "Committed_AS: 3627984 kB",
+ "VmallocTotal: 34359738367 kB",
+ "VmallocUsed: 300460 kB",
+ "VmallocChunk: 34359437307 kB",
+ "HugePages_Total: 0",
+ "HugePages_Free: 0",
+ "HugePages_Rsvd: 0",
+ "Hugepagesize: 2048 kB");
+ String meminfoFile = scratch.file("test_meminfo_ht", meminfoContent).getPathString();
+ assertEquals(2, LocalHostResourceManagerLinux.getLogicalCpuCountHelper(cpuinfoContent));
+ assertEquals(1, LocalHostResourceManagerLinux.getPhysicalCpuCountHelper(2, cpuinfoContent));
+ // +/- 0.1MB
+ assertEquals(3092.004, LocalHostResourceManagerLinux.getMemoryInMbHelper(meminfoFile), 0.1);
+ }
+
+ @Test
+ public void testAMDMachine() throws Exception {
+ String cpuinfoContent =
+ StringUtilities.joinLines(
+ "processor\t: 0",
+ "vendor_id\t: AuthenticAMD",
+ "cpu family\t: 15",
+ "model\t\t: 65",
+ "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
+ "stepping\t: 2",
+ "cpu MHz\t\t: 2200.000",
+ "cache size\t: 1024 KB",
+ "physical id\t: 0",
+ "siblings\t: 2",
+ "core id\t\t: 0",
+ "cpu cores\t: 2",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 1",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
+ + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
+ + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
+ + "cmp_legacy svm cr8_legacy",
+ "bogomips\t: 4425.84",
+ "TLB size\t: 1024 4K pages",
+ "clflush size\t: 64",
+ "cache_alignment\t: 64",
+ "address sizes\t: 40 bits physical, 48 bits virtual",
+ "power management: ts fid vid ttp tm stc",
+ "",
+ "processor\t: 1",
+ "vendor_id\t: AuthenticAMD",
+ "cpu family\t: 15",
+ "model\t\t: 65",
+ "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
+ "stepping\t: 2",
+ "cpu MHz\t\t: 2200.000",
+ "cache size\t: 1024 KB",
+ "physical id\t: 0",
+ "siblings\t: 2",
+ "core id\t\t: 1",
+ "cpu cores\t: 2",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 1",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
+ + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
+ + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
+ + "cmp_legacy svm cr8_legacy",
+ "bogomips\t: 4460.61",
+ "TLB size\t: 1024 4K pages",
+ "clflush size\t: 64",
+ "cache_alignment\t: 64",
+ "address sizes\t: 40 bits physical, 48 bits virtual",
+ "power management: ts fid vid ttp tm stc",
+ "",
+ "processor\t: 2",
+ "vendor_id\t: AuthenticAMD",
+ "cpu family\t: 15",
+ "model\t\t: 65",
+ "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
+ "stepping\t: 2",
+ "cpu MHz\t\t: 2200.000",
+ "cache size\t: 1024 KB",
+ "physical id\t: 1",
+ "siblings\t: 2",
+ "core id\t\t: 0",
+ "cpu cores\t: 2",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 1",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
+ + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
+ + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
+ + "cmp_legacy svm cr8_legacy",
+ "bogomips\t: 4420.45",
+ "TLB size\t: 1024 4K pages",
+ "clflush size\t: 64",
+ "cache_alignment\t: 64",
+ "address sizes\t: 40 bits physical, 48 bits virtual",
+ "power management: ts fid vid ttp tm stc",
+ "",
+ "processor\t: 3",
+ "vendor_id\t: AuthenticAMD",
+ "cpu family\t: 15",
+ "model\t\t: 65",
+ "model name\t: Dual-Core AMD Opteron(tm) Processor 8214 HE",
+ "stepping\t: 2",
+ "cpu MHz\t\t: 2200.000",
+ "cache size\t: 1024 KB",
+ "physical id\t: 1",
+ "siblings\t: 2",
+ "core id\t\t: 1",
+ "cpu cores\t: 2",
+ "fpu\t\t: yes",
+ "fpu_exception\t: yes",
+ "cpuid level\t: 1",
+ "wp\t\t: yes",
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr "
+ + "pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall "
+ + "nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm "
+ + "cmp_legacy svm cr8_legacy",
+ "bogomips\t: 4460.39",
+ "TLB size\t: 1024 4K pages",
+ "clflush size\t: 64",
+ "cache_alignment\t: 64",
+ "address sizes\t: 40 bits physical, 48 bits virtual",
+ "power management: ts fid vid ttp tm stc",
+ "");
+ String meminfoContent =
+ StringUtilities.joinLines(
+ "MemTotal: 8223956 kB",
+ "MemFree: 3670396 kB",
+ "Buffers: 374068 kB",
+ "Cached: 3366980 kB",
+ "SwapCached: 0 kB",
+ "Active: 3275860 kB",
+ "Inactive: 737816 kB",
+ "HighTotal: 0 kB",
+ "HighFree: 0 kB",
+ "LowTotal: 8223956 kB",
+ "LowFree: 3670396 kB",
+ "SwapTotal: 6024332 kB",
+ "SwapFree: 6024332 kB",
+ "Dirty: 84 kB",
+ "Writeback: 0 kB",
+ "AnonPages: 272308 kB",
+ "Mapped: 62604 kB",
+ "Slab: 506140 kB",
+ "PageTables: 4608 kB",
+ "NFS_Unstable: 0 kB",
+ "Bounce: 0 kB",
+ "CommitLimit: 10136308 kB",
+ "Committed_AS: 600672 kB",
+ "VmallocTotal: 34359738367 kB",
+ "VmallocUsed: 299068 kB",
+ "VmallocChunk: 34359438843 kB",
+ "HugePages_Total: 0",
+ "HugePages_Free: 0",
+ "HugePages_Rsvd: 0",
+ "Hugepagesize: 2048 kB");
+ String meminfoFile = scratch.file("test_meminfo_amd", meminfoContent).getPathString();
+ assertEquals(4, LocalHostResourceManagerLinux.getLogicalCpuCountHelper(cpuinfoContent));
+ assertEquals(4, LocalHostResourceManagerLinux.getPhysicalCpuCountHelper(4, cpuinfoContent));
+ // +/- 0.1MB
+ assertEquals(8223.956, LocalHostResourceManagerLinux.getMemoryInMbHelper(meminfoFile), 0.1);
+ }
+}