Author: gnichols Date: 2012-04-20 13:22:45 +0000 (Fri, 20 Apr 2012) New Revision: 1288
Modified: trunk/tests/info/info.py Log: 812437 - getModuleFile may return 'null' \n811247 - kabi-whitelists structure changing makes kabi check fail
Modified: trunk/tests/info/info.py =================================================================== --- trunk/tests/info/info.py 2012-04-20 13:19:08 UTC (rev 1287) +++ trunk/tests/info/info.py 2012-04-20 13:22:45 UTC (rev 1288) @@ -292,6 +292,10 @@ module = line.split()[0] moduleFile = self.getModuleFile(module)
+ if not moduleFile: + success = False + continue + # check that modules come from the kernel RPM. if not moduleFile in kernelRPMModuleList: # RHEL4 does not include kmod @@ -320,6 +324,8 @@ warnVendorList = ["Fedora", "Fedora Project"] try: moduleFile = self.getModuleFile(module) + if not moduleFile: + return False
vendor = Command("rpm -qf %s --qf %%{VENDOR}" % moduleFile).getString() if vendor in goodVendorList: @@ -418,10 +424,16 @@ if os.path.islink(moduleFile): moduleFile = os.readlink(moduleFile) return moduleFile + else: + print "Error: module source version mismatch: " + print " /sys/modules/%s/srcversion: %s" % (module, sysSrcVersion) + print " modinfo -F srcversion: %s" % modInfoSrcVersion + except V7CommandException, e: - print "Error: could no find module file:" + print "Error: could no find module file for %s:" % module print e e.command.printErrors() + return None
@@ -441,13 +453,19 @@ # skip abi checks for rt kernel if self.redHatRelease.getKernelFlavor() == Constants.rt: return True - whitelist = '/usr/src/kernels/%s-%s/kabi_whitelist' % (self.redHatRelease.getKernel(), self.redHatRelease.getArch()) + whitelistLocations = [("/lib/modules/kabi-current/kabi_whitelist_" + self.redHatRelease.getArch()), # RHEL 6.3 + ("/lib/modules/kabi/kabi_whitelist_" + self.redHatRelease.getArch()), # RHEL 6.2 ? + ("/usr/src/kernels/%s-%s/kabi_whitelist" % (self.redHatRelease.getKernel(), self.redHatRelease.getArch())) # ? + ] + + for whitelist in whitelistLocations: + if os.path.exists(whitelist): + break + if not os.path.exists(whitelist): - usrSrcWhitelist = whitelist - whitelist = "/lib/modules/kabi/kabi_whitelist_" + self.redHatRelease.getArch() - if not os.path.exists(whitelist): - print "Error: could not find whitelist file %s or %s" %(usrSrcWhitelist, whitelist) - return False + print "Error: could not find whitelist file in any of the following locations:" + print "\n".join(whitelistLocations) + return False
print "Red Hat Enterprise Linux %u ABI" % self.redHatRelease.getVersion() print "--------------------------------"