r588 - trunk/tests/core
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-16 16:45:06 +0000 (Fri, 16 Jul 2010)
New Revision: 588
Modified:
trunk/tests/core/CORE2
Log:
568467 - FEAT: v7 needs a cpu clocks test
Modified: trunk/tests/core/CORE2
===================================================================
--- trunk/tests/core/CORE2 2010-07-16 16:44:57 UTC (rev 587)
+++ trunk/tests/core/CORE2 2010-07-16 16:45:06 UTC (rev 588)
@@ -41,20 +41,7 @@
echo ""
fi
-# Run clock test, to catch machines with weird clocks.
-echo "Checking clock jitter ..."
-nice -n -20 ./clocktest || exit 1
-
-# run stress for 10m.
-stress --cpu 12 --io 12 --vm 12 --vm-bytes 128M --timeout 10m
-retval=$?
-if [ $retval -ne 0 ]; then
- echo "Error: stress returned failure ($retval)"
- exit $retval
-fi
-echo "Stress test passed"
-
-
exit 0
+
13 years, 10 months
r587 - trunk/tests/core
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-16 16:44:57 +0000 (Fri, 16 Jul 2010)
New Revision: 587
Modified:
trunk/tests/core/core.py
Log:
568467 - FEAT: v7 needs a cpu clocks test
Modified: trunk/tests/core/core.py
===================================================================
--- trunk/tests/core/core.py 2010-07-15 16:50:39 UTC (rev 586)
+++ trunk/tests/core/core.py 2010-07-16 16:44:57 UTC (rev 587)
@@ -14,16 +14,101 @@
#
# Author: Greg Nichols
#
+import sys
from v7.test import Test
from v7.tags import DeviceClass
+from v7.command import Command, V7CommandException
+from v7.redhatrelease import RedHatRelease
class CoreTest(Test):
def __init__(self):
Test.__init__(self, name="core")
self.deviceClass = DeviceClass.processor
+ self.redHatRelease = RedHatRelease()
+
+ def getClockInfo(self):
+ print "Clock Info: ------------------------------------------"
+ clockInfo = Command("dmesg")
+ clockInfo.run()
+ tsc = False
+ clocksource = None
+ for line in clockInfo.output:
+ if "TSC" in line or "clocksource" in line or " tsc " in line:
+ print line
+ if "tsc" in line and "clocksource" in line:
+ tsc = True
+ clocksource = "TSC"
+ elif "clocksource" in line: # clocksource set to some other clock
+ tsc = False
+ clocksource = line.split()[-1]
+
+ print ""
+ if clocksource:
+ print "Clock Source per system log: " + clocksource
+ else:
+ print "Warning: could not determine clocksource"
+
+ sysCurrentClockSource = "/sys/devices/system/clocksource/clocksource*/current_clocksource"
+ sys = Command("cat " + sysCurrentClockSource)
+ clocksource = sys.getString()
+ print "Clock Source in " + sysCurrentClockSource + ": " + clocksource
+ print ""
+ return tsc
+
+ def isIntel(self):
+ try:
+ intel = Command("cat /proc/cpuinfo")
+ vendor = intel.getString(regex="^vendor_id[^:]*:\ *(?P<vendor>[^\ ]*$)", regexGroup="vendor", singleLine=False)
+ print "CPU Vendor: " + vendor
+ sys.stdout.flush()
+ if vendor in ["Intel", "GenuineIntel"]:
+ return True
+ return False
+ except V7CommandException, e:
+
+ return False
+
+
+
+ def run(self):
+ FAIL = 1
+ PASS = 0
+ result = PASS
+ # run the old CORE2 script
+ try:
+ # run script for extra cpu stuff (ia64 and ppc64
+ if self.redHatRelease.getArch() in ["ia64", "ppc64"]:
+ core2 = Command("./CORE2")
+ core2.echo()
+
+ # run clock tests - jitter and direction
+ usingTSC = self.getClockInfo()
+ if self.isIntel() and not usingTSC:
+ print "Error: Intel processor(s) not using TSC"
+ result = FAIL
+
+ print "Running clock tests"
+ sys.stdout.flush()
+ clocktest = Command("./clocktest")
+ clocktest.echo()
+ sys.stdout.flush()
+
+ limit = 10 # min.
+ print "Running stress for %u min." % limit
+ sys.stdout.flush()
+ stress = Command("stress --cpu 12 --io 12 --vm 12 --vm-bytes 128M --timeout %um" % limit)
+ stress.echo()
+ except V7CommandException, e:
+ print "Error:"
+ print e
+ e.command.printErrors()
+ return FAIL
+
+ return result
+
if __name__ == "__main__":
test = CoreTest()
returnValue = test.do(sys.argv)
13 years, 10 months
r586 - trunk/v7
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 16:50:39 +0000 (Thu, 15 Jul 2010)
New Revision: 586
Modified:
trunk/v7/hardwaretest.py
Log:
568518 - FEAT: add a BMC fencing testing
Modified: trunk/v7/hardwaretest.py
===================================================================
--- trunk/v7/hardwaretest.py 2010-07-15 16:50:26 UTC (rev 585)
+++ trunk/v7/hardwaretest.py 2010-07-15 16:50:39 UTC (rev 586)
@@ -417,14 +417,20 @@
subcommand = args[1]
else:
subcommand = "start"
- daemon = V7Daemon(self.environment, self.options)
+ planner = Planner(self.options, virtualization=None)
+ planner.analyse(self.environment.getSourceDirectory())
+ daemon = V7Daemon(self.environment, planner, self.options)
+
# run daemon in foreground
if subcommand == "daemon":
+ if daemon.do("status"):
+ daemon.do("stop") # kill any in the background
+ print "Starting daemon"
+ sys.stdout.flush()
return daemon.run()
# otherwise, do test-specific services
- planner = Planner(self.options, virtualization=None)
- planner.analyse(self.environment.getSourceDirectory())
+
testCount = 0
tests = planner.getServerModeTests();
result = 0
13 years, 10 months
r585 - trunk/v7
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 16:50:26 +0000 (Thu, 15 Jul 2010)
New Revision: 585
Modified:
trunk/v7/daemon.py
Log:
568518 - FEAT: add a BMC fencing testing
Modified: trunk/v7/daemon.py
===================================================================
--- trunk/v7/daemon.py 2010-07-15 16:19:02 UTC (rev 584)
+++ trunk/v7/daemon.py 2010-07-15 16:50:26 UTC (rev 585)
@@ -27,12 +27,11 @@
class V7Daemon(Controller):
- def __init__(self, environment, options):
+ def __init__(self, environment, planner, options):
Controller.__init__(self)
self.options = options
self.environment = environment
- self.planner = Planner(self.options, virtualization=None)
- self.planner.analyse(self.environment.getSourceDirectory())
+ self.planner = planner
def __clearPipes(self):
try:
@@ -170,7 +169,7 @@
return True
print "Starting v7 daemon"
sys.stdout.flush()
- if os.system("v7 server daemon &"):
+ if os.system("v7 server daemon > /dev/null &"):
print "Error: could not start v7 server daemon"
return False
elif subcommand == "stop":
@@ -192,6 +191,7 @@
print "The v7 server daemon is running"
else:
print "The v7 server daemon is NOT running"
+ return False
return True
13 years, 10 months
r584 - trunk
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 16:19:02 +0000 (Thu, 15 Jul 2010)
New Revision: 584
Modified:
trunk/Makefile
Log:
R11
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile 2010-07-15 16:18:30 UTC (rev 583)
+++ trunk/Makefile 2010-07-15 16:19:02 UTC (rev 584)
@@ -14,7 +14,7 @@
# Author: Greg Nichols
V7_VERSION := 1.2
-V7_RELEASE := 10
+V7_RELEASE := 11
V7_VERSION_RELEASE := $(V7_VERSION)-$(V7_RELEASE)
V7_VERSION_PY := v7/version.py
V7_SVN_MODULE := svn+ssh://svn.fedorahosted.org/svn/v7
13 years, 10 months
r583 - trunk/v7
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 16:18:30 +0000 (Thu, 15 Jul 2010)
New Revision: 583
Modified:
trunk/v7/daemon.py
Log:
568518 - FEAT: add a BMC fencing testing
Modified: trunk/v7/daemon.py
===================================================================
--- trunk/v7/daemon.py 2010-07-15 15:24:04 UTC (rev 582)
+++ trunk/v7/daemon.py 2010-07-15 16:18:30 UTC (rev 583)
@@ -109,7 +109,7 @@
def openLogFile(self, args, mode):
if not os.path.exists(self.environment.getLogDirectory()):
- os.mkdir(self.environment.getLogDirectory(), mode=0666)
+ os.mkdir(self.environment.getLogDirectory(), 0666)
logFileName = "v7-daemon-"
for (key, value) in args.items():
if key != "results":
13 years, 10 months
r582 - in tags: . v7-V1-2R10/v7
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 15:24:04 +0000 (Thu, 15 Jul 2010)
New Revision: 582
Added:
tags/v7-V1-2R10/
tags/v7-V1-2R10/v7/version.py
Log:
tag version
Copied: tags/v7-V1-2R10 (from rev 581, trunk)
Copied: tags/v7-V1-2R10/v7/version.py (from rev 335, trunk/v7/version.py)
===================================================================
--- tags/v7-V1-2R10/v7/version.py (rev 0)
+++ tags/v7-V1-2R10/v7/version.py 2010-07-15 15:24:04 UTC (rev 582)
@@ -0,0 +1,5 @@
+
+# v7/version.py is automatically-generated - DO NOT EDIT
+version = '1.2'
+release = '10'
+rhel_version = '5'
13 years, 10 months
r581 - trunk
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 15:22:03 +0000 (Thu, 15 Jul 2010)
New Revision: 581
Modified:
trunk/v7.spec.in
Log:
changelog
Modified: trunk/v7.spec.in
===================================================================
--- trunk/v7.spec.in 2010-07-15 15:19:42 UTC (rev 580)
+++ trunk/v7.spec.in 2010-07-15 15:22:03 UTC (rev 581)
@@ -71,6 +71,10 @@
%changelog
* Mon Jul 12 2010 Greg Nichols <gnichols(a)redhat.com>
+V7 1.2 R10
+
+ 512153 Hardware Certification Test failed with 'Error: kernel is tainted (value = 64)'
+
V7 1.2 R9
599725 - attempts to contact libvirtd during "v7 plan" cause spurious error messages
13 years, 10 months
r580 - trunk/tests/info
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 15:19:42 +0000 (Thu, 15 Jul 2010)
New Revision: 580
Modified:
trunk/tests/info/info.py
Log:
[RHEL5.3 GA] Hardware Certification Test failed with Error: kernel is tainted (value = 64)
Modified: trunk/tests/info/info.py
===================================================================
--- trunk/tests/info/info.py 2010-07-15 15:13:41 UTC (rev 579)
+++ trunk/tests/info/info.py 2010-07-15 15:19:42 UTC (rev 580)
@@ -53,10 +53,12 @@
taintedFile = open("/proc/sys/kernel/tainted", "r")
tainted = int(taintedFile.readline())
if tainted != 0:
- print "Error: kernel is tainted (value = %u)" % tainted
+ print "Warning: kernel is tainted (value = %u)" % tainted
if tainted & 1:
print "Please remove the non-GPL modules."
- success = False
+ success = False
+ if tainted & 64:
+ print "Unsigned modules:\n %s" % Command("cat /proc/modules|grep '(U)'").getString()
taintedFile.close()
except:
print "Error: could not determine if kernel is tainted"
@@ -123,7 +125,7 @@
kernelRPMModuleList = list()
pipe = os.popen("rpm -ql %s | tr _ - " % self.redHatRelease.getKernelRPMName())
while True:
- line = pipe.readline()
+ line = pipe.readline().strip()
if line:
kernelRPMModuleList.append(line)
else:
@@ -139,22 +141,22 @@
# check that modules come from the kernel RPM.
found = False
- for kernelModule in kernelRPMModuleList:
- kernelModule = kernelModule.split('/')[-1].strip()
-
- if module in kernelModule.replace('-', '_'):
- found = True
- break
+ if self.getModuleFile(module) in kernelRPMModuleList:
+ found = True
+ break
# module is NOT from the kernel RPM.
if not found:
+ # RHEL4 does not include kmod
if "Red Hat" in self.redHatRelease.getProduct() and self.redHatRelease.getVersion() == 4:
print "Error: Non-Red Hat kernel module %s" % module
+ success = False
+ # RH kmods are allowed
+ elif self.checkModuleVenderAndBuildHost(module) and Command("rpm -Vf %s" % moduleFileName):
+ print "kmod package: %s" % Command("rpm -qf %s" % moduleFileName).getString()
+ # Check non-RH modules ABI
elif not self.abiCheck(module):
print "Error: Non-Red Hat kernel module %s fails ABI Whitelist check." % module
success = False
- else:
- # BZ 237542 - verify unknown drivers packaged by UDM
- success = success and self.checkModuleVenderAndBuildHost(module)
return success
@@ -163,10 +165,9 @@
goodVendorList = ["Red Hat", "Red Hat, Inc."]
warnVendorList = ["Fedora", "Fedora Project"]
try:
- moduleFile = Command("modinfo -F filename %s" % module).getString()
- rpmInfo = Command("rpm -qif %s" % moduleFile)
- vendor = rpmInfo.getString(regex="Vendor:.*", singleLine=False).split(":")[1].strip()
+ moduleFile = self.getModuleFile(module)
+ vendor = Command("rpm -qf %s --qf %%{BUILDHOST}" % moduleFile).getString()
if vendor in goodVendorList:
pass
elif vendor in warnVendorList:
@@ -175,7 +176,7 @@
print "Error: Non-Red Hat driver vendor %s for module %s" % (vendor, module)
result = False
- buildhost = rpmInfo.getString(regex="Build Host:.*", singleLine=False).split(":")[1].strip()
+ buildhost = Command("rpm -qf %s --qf %%{BUILDHOST}" % moduleFile).getString()
if "redhat.com" not in buildhost:
print "Error: Driver module %s was built on %s and not built at Red Hat." % (module, buildhost)
result = False
@@ -251,16 +252,10 @@
return self.readSymbols(symbols)
def getModuleFile(self, module):
- modinfo = os.popen("modinfo %s" % module)
- while True:
- line = modinfo.readline()
- if not line:
- break;
- tokens = string.split(line, ":")
- if tokens[0] == "filename":
- modinfo.close()
- return tokens[-1].strip()
- modinfo.close()
+ modInfoSrcVersion = Command("modinfo -F srcversion %s" % module).getString()
+ sysSrcVersion = open("/sys/module/%s/srcversion" % module).readline().strip()
+ if sysSrcVersion == modInfoSrcVersion:
+ return Command("modinfo -F filename %s" % module).getString()
return None
13 years, 10 months
r579 - trunk
by gnichols@fedoraproject.org
Author: gnichols
Date: 2010-07-15 15:13:41 +0000 (Thu, 15 Jul 2010)
New Revision: 579
Modified:
trunk/Makefile
Log:
R10
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile 2010-07-15 15:12:47 UTC (rev 578)
+++ trunk/Makefile 2010-07-15 15:13:41 UTC (rev 579)
@@ -14,7 +14,7 @@
# Author: Greg Nichols
V7_VERSION := 1.2
-V7_RELEASE := 9
+V7_RELEASE := 10
V7_VERSION_RELEASE := $(V7_VERSION)-$(V7_RELEASE)
V7_VERSION_PY := v7/version.py
V7_SVN_MODULE := svn+ssh://svn.fedorahosted.org/svn/v7
13 years, 10 months