Add unit test for GetLinuxNodeInfo
authorMichele Tartara <mtartara@google.com>
Thu, 22 Aug 2013 08:53:07 +0000 (08:53 +0000)
committerMichele Tartara <mtartara@google.com>
Thu, 22 Aug 2013 15:18:00 +0000 (15:18 +0000)
The function was not unit tested previously.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

Makefile.am
test/data/proc_cpuinfo.txt [new file with mode: 0644]
test/data/proc_meminfo.txt [new file with mode: 0644]
test/py/ganeti.hypervisor_unittest.py

index 531197c..7aef305 100644 (file)
@@ -1144,6 +1144,8 @@ TEST_FILES = \
        test/data/proc_drbd83_sync.txt \
        test/data/proc_drbd83_sync_want.txt \
        test/data/proc_drbd83_sync_krnl2.6.39.txt \
+       test/data/proc_meminfo.txt \
+       test/data/proc_cpuinfo.txt \
        test/data/qa-minimal-nodes-instances-only.json \
        test/data/sys_drbd_usermode_helper.txt \
        test/data/vgreduce-removemissing-2.02.02.txt \
diff --git a/test/data/proc_cpuinfo.txt b/test/data/proc_cpuinfo.txt
new file mode 100644 (file)
index 0000000..4637a5a
--- /dev/null
@@ -0,0 +1,104 @@
+processor      : 0
+vendor_id      : GenuineIntel
+cpu family     : 6
+model          : 58
+model name     : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
+stepping       : 9
+microcode      : 0x13
+cpu MHz                : 1200.000
+cache size     : 3072 KB
+physical id    : 0
+siblings       : 4
+core id                : 0
+cpu cores      : 2
+apicid         : 0
+initial apicid : 0
+fpu            : yes
+fpu_exception  : yes
+cpuid level    : 13
+wp             : yes
+flags          : 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 pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
+bogomips       : 5188.22
+clflush size   : 64
+cache_alignment        : 64
+address sizes  : 36 bits physical, 48 bits virtual
+power management:
+
+processor      : 1
+vendor_id      : GenuineIntel
+cpu family     : 6
+model          : 58
+model name     : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
+stepping       : 9
+microcode      : 0x13
+cpu MHz                : 1200.000
+cache size     : 3072 KB
+physical id    : 0
+siblings       : 4
+core id                : 0
+cpu cores      : 2
+apicid         : 1
+initial apicid : 1
+fpu            : yes
+fpu_exception  : yes
+cpuid level    : 13
+wp             : yes
+flags          : 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 pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
+bogomips       : 5188.22
+clflush size   : 64
+cache_alignment        : 64
+address sizes  : 36 bits physical, 48 bits virtual
+power management:
+
+processor      : 2
+vendor_id      : GenuineIntel
+cpu family     : 6
+model          : 58
+model name     : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
+stepping       : 9
+microcode      : 0x13
+cpu MHz                : 1200.000
+cache size     : 3072 KB
+physical id    : 0
+siblings       : 4
+core id                : 1
+cpu cores      : 2
+apicid         : 2
+initial apicid : 2
+fpu            : yes
+fpu_exception  : yes
+cpuid level    : 13
+wp             : yes
+flags          : 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 pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
+bogomips       : 5188.22
+clflush size   : 64
+cache_alignment        : 64
+address sizes  : 36 bits physical, 48 bits virtual
+power management:
+
+processor      : 3
+vendor_id      : GenuineIntel
+cpu family     : 6
+model          : 58
+model name     : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
+stepping       : 9
+microcode      : 0x13
+cpu MHz                : 1200.000
+cache size     : 3072 KB
+physical id    : 0
+siblings       : 4
+core id                : 1
+cpu cores      : 2
+apicid         : 3
+initial apicid : 3
+fpu            : yes
+fpu_exception  : yes
+cpuid level    : 13
+wp             : yes
+flags          : 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 pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
+bogomips       : 5188.22
+clflush size   : 64
+cache_alignment        : 64
+address sizes  : 36 bits physical, 48 bits virtual
+power management:
+
diff --git a/test/data/proc_meminfo.txt b/test/data/proc_meminfo.txt
new file mode 100644 (file)
index 0000000..c3a80fb
--- /dev/null
@@ -0,0 +1,42 @@
+MemTotal:        7870584 kB
+MemFree:         1549012 kB
+Buffers:          227328 kB
+Cached:          4647780 kB
+SwapCached:         2988 kB
+Active:          2787880 kB
+Inactive:        3160328 kB
+Active(anon):    1951852 kB
+Inactive(anon):  2007648 kB
+Active(file):     836028 kB
+Inactive(file):  1152680 kB
+Unevictable:          36 kB
+Mlocked:              32 kB
+SwapTotal:       8077308 kB
+SwapFree:        8029968 kB
+Dirty:                84 kB
+Writeback:             0 kB
+AnonPages:       1070164 kB
+Mapped:           194876 kB
+Shmem:           2886396 kB
+Slab:             226092 kB
+SReclaimable:     169140 kB
+SUnreclaim:        56952 kB
+KernelStack:        4232 kB
+PageTables:        40184 kB
+NFS_Unstable:          0 kB
+Bounce:                0 kB
+WritebackTmp:          0 kB
+CommitLimit:    12012600 kB
+Committed_AS:    7618508 kB
+VmallocTotal:   34359738367 kB
+VmallocUsed:      374800 kB
+VmallocChunk:   34359352560 kB
+HardwareCorrupted:     0 kB
+AnonHugePages:         0 kB
+HugePages_Total:       0
+HugePages_Free:        0
+HugePages_Rsvd:        0
+HugePages_Surp:        0
+Hugepagesize:       2048 kB
+DirectMap4k:       96448 kB
+DirectMap2M:     7983104 kB
index 1d3e524..73bf571 100755 (executable)
@@ -57,6 +57,18 @@ class TestBase(unittest.TestCase):
     self.assertEqual(fn(["a"]), "a")
     self.assertEqual(fn(["a", "b"]), "a; b")
 
+  def testGetLinuxNodeInfo(self):
+    meminfo = testutils.TestDataFilename("proc_meminfo.txt")
+    cpuinfo = testutils.TestDataFilename("proc_cpuinfo.txt")
+    result = hv_base.BaseHypervisor.GetLinuxNodeInfo(meminfo, cpuinfo)
+
+    self.assertEqual(result["memory_total"], 7686)
+    self.assertEqual(result["memory_free"], 6272)
+    self.assertEqual(result["memory_dom0"], 2722)
+    self.assertEqual(result["cpu_total"], 4)
+    self.assertEqual(result["cpu_nodes"], 1)
+    self.assertEqual(result["cpu_sockets"], 1)
+
 
 if __name__ == "__main__":
   testutils.GanetiTestProgram()