]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
CA-188288 Tweaks to guest memory checks
authorAlex Brett <alex.brett@citrix.com>
Tue, 10 Nov 2015 12:45:18 +0000 (12:45 +0000)
committerAlex Brett <alex.brett@citrix.com>
Tue, 10 Nov 2015 12:45:18 +0000 (12:45 +0000)
exec/testcases/xenserver/tc/smoketest.py
exec/xenrt/lib/opsys/linux.py

index a3464a2d7f49622d5b9f3e01b4c4928baa44d3c7..075f1a0cb5e0bfda93dc4e21bc245b4e6d4d5b3e 100755 (executable)
@@ -138,14 +138,19 @@ class _TCSmokeTest(xenrt.TestCase):
             self.guest.shutdown(force=True)
 
     def checkGuestMemory(self, expected):
-        """Validate the in-guest memory is what we expect (within 2%)"""
+        """Validate the in-guest memory is what we expect (within 4%)"""
         if expected is None:
             return
 
         guestMemory = self.guest.getGuestMemory()
+        # Take into account any kdump kernel
+        kdumpSize = self.guest.os.getKdumpSize()
+        if kdumpSize:
+            xenrt.TEC().logverbose("Taking into account %uMB of crash kernel" % (kdumpSize / xenrt.MEGA))
+            guestMemory += (kdumpSize / xenrt.MEGA)
         difference = abs(expected - guestMemory)
         diffpct = (float(difference) / float(expected)) * 100
-        if diffpct > 3:
+        if diffpct > 4:
             raise xenrt.XRTFailure("Guest reports %uMB memory, expecting %uMB" % (guestMemory, expected))
 
 
index ccd53e33a0ebee96d6da45dcd02b64aa939fbd42..d8ad73b742393ebf48289b94767af793466ff50d 100644 (file)
@@ -184,3 +184,9 @@ class LinuxOS(OS):
             raise OSNotDetected("OS appears not to have SSH: %s" % str(e))
         else:
             detectionState.password = obj.password
+
+    def getKdumpSize(self):
+        """Returns the size (in bytes) of any crashdump kernel present on the OS"""
+        size = int(self.execSSH("[ -e /sys/kernel/kexec_crash_size ] && cat /sys/kernel/kexec_crash_size || echo 0").strip())
+        return size or None
+