From 4e25bba0f22a675ba1950e2e41fe22dfd60073c9 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sat, 4 Dec 2010 00:34:37 +0100 Subject: [PATCH] Fix makefile and directory where the tests are run --- gw-tests/Makefile | 2 +- gw-tests/genhtml/genhtml.py | 235 ++++++++++++++++++------------------ gw-tests/lib.sh | 1 + 3 files changed, 119 insertions(+), 119 deletions(-) diff --git a/gw-tests/Makefile b/gw-tests/Makefile index d496337..9819160 100644 --- a/gw-tests/Makefile +++ b/gw-tests/Makefile @@ -16,4 +16,4 @@ plot: .PHONY: html html: - ./genhtml.py results + ./genhtml/genhtml.py results diff --git a/gw-tests/genhtml/genhtml.py b/gw-tests/genhtml/genhtml.py index 90c4e5f..08a6dac 100755 --- a/gw-tests/genhtml/genhtml.py +++ b/gw-tests/genhtml/genhtml.py @@ -7,150 +7,150 @@ import urllib class DimValue: def __init__(self, dim, value): - self.dim = dim - self.value = value + self.dim = dim + self.value = value def __repr__(self): - return repr(self.value) + return repr(self.value) def htmlLabel(self): - return self.dim.htmlLabel(self.value) + return self.dim.htmlLabel(self.value) class Dimension(dict): def __init__(self, atype, name=None): - self.type = atype - if (name): - self.name = name - else: - self.name = atype + self.type = atype + if (name): + self.name = name + else: + self.name = atype def __iter__(self): - keys = self.keys() - keys.sort() - for k in keys: - yield self[k] + keys = self.keys() + keys.sort() + for k in keys: + yield self[k] def addValue(self, *values): - for value in values: - if value not in self: - self[value] = DimValue(self, value) + for value in values: + if value not in self: + self[value] = DimValue(self, value) def htmlLabel(self, v): - return v + return v class DimensionKern(Dimension): def __init__(self): - Dimension.__init__(self, 'kern', 'Kernel') + Dimension.__init__(self, 'kern', 'Kernel') def htmlLabel(self, v): - i=v.find(":") - if i>0: kver=v[:i] - else: kver=v - return v+"
config"%(urllib.quote(kver)) + i=v.find(":") + if i>0: kver=v[:i] + else: kver=v + return v+"
config"%(urllib.quote(kver)) def versions(self): - for v in self.values: - i=v.find(":") - if i>0: kver=v[:i] - else: kver=v - yield kver - + for v in self.values: + i=v.find(":") + if i>0: kver=v[:i] + else: kver=v + yield kver + class DimensionTest(Dimension): def __init__(self): - Dimension.__init__(self, 'test', 'Test') + Dimension.__init__(self, 'test', 'Test') def htmlLabel(self, v): - return v+"
source"%(urllib.quote(v)) + return v+"
source"%(urllib.quote(v)) class Test: @classmethod def isOnPath(cls, path): - f = os.path.join(path, 'plot.gp') - return os.path.isfile(f) + f = os.path.join(path, 'plot.gp') + return os.path.isfile(f) def __init__(self, path): - self.path = path + self.path = path def printThumbLink(self, file): - for img in dircache.listdir(self.path+'/thumb'): - print >>file, "" % \ - (urllib.quote(self.path), img, urllib.quote(self.path), img) + for img in dircache.listdir(self.path+'/thumb'): + print >>file, "" % \ + (urllib.quote(self.path), img, urllib.quote(self.path), img) def iterDimValues(dimensions): idx = [0 for i in xrange(len(dimensions))] done=False while not done: - values=[] - for i in xrange(len(dimensions)): - values.append(dimensions[i].values()[idx[i]]) - yield values - done=True - for i in xrange(len(dimensions)): - idx[i] += 1 - if idx[i] < len(dimensions[i]): - done=False - break - idx[i] = 0 + values=[] + for i in xrange(len(dimensions)): + values.append(dimensions[i].values()[idx[i]]) + yield values + done=True + for i in xrange(len(dimensions)): + idx[i] += 1 + if idx[i] < len(dimensions[i]): + done=False + break + idx[i] = 0 class Tests(dict): """Represents all tests organized along several dimensions""" def __init__(self, rootpath, *dimensions): - dict.__init__(self) - self.dimensions = dimensions - if (rootpath): - self.populate(rootpath) + dict.__init__(self) + self.dimensions = dimensions + if (rootpath): + self.populate(rootpath) def getTest(self, key): - realkey=[] - for d in self.dimensions: - for i in key: - if i.dim == d: - realkey.append(i.value) - if len(realkey) != len(self.dimensions): - raise KeyError("The coordinates in key do not match dimensions") - return self[tuple(realkey)] - + realkey=[] + for d in self.dimensions: + for i in key: + if i.dim == d: + realkey.append(i.value) + if len(realkey) != len(self.dimensions): + raise KeyError("The coordinates in key do not match dimensions") + return self[tuple(realkey)] + def addTest(self, test, coordinates): - if len(coordinates) != len(self.dimensions): - raise KeyError("The number coordinates do not match the number of dimensions") - self[tuple(coordinates)] = test - for i in xrange(len(coordinates)): - self.dimensions[i].addValue(coordinates[i]) + if len(coordinates) != len(self.dimensions): + raise KeyError("The number coordinates do not match the number of dimensions") + self[tuple(coordinates)] = test + for i in xrange(len(coordinates)): + self.dimensions[i].addValue(coordinates[i]) def populate(self, rootpath): - for root, dirs, files in os.walk(rootpath): - if (root.find(rootpath) == 0): - coordinates = root[len(rootpath):] - else: - coordinates = rootpath - if Test.isOnPath(root): - self.addTest(Test(root), coordinates.split("/")) + for root, dirs, files in os.walk(rootpath): + if (root.find(rootpath) == 0): + coordinates = root[len(rootpath):] + else: + coordinates = rootpath + if Test.isOnPath(root): + self.addTest(Test(root), coordinates.split("/")) def iterDimensionPairs(self): - for i in xrange(len(self.dimensions)): - for j in xrange(i+1, len(self.dimensions)): - yield (self.dimensions[i], self.dimensions[j]) - yield (self.dimensions[j], self.dimensions[i]) + for i in xrange(len(self.dimensions)): + for j in xrange(i+1, len(self.dimensions)): + yield (self.dimensions[i], self.dimensions[j]) + yield (self.dimensions[j], self.dimensions[i]) def iterRemainingDimensions(self, dimensionPair): - for d in self.dimensions: - if d not in dimensionPair: - yield d + for d in self.dimensions: + if d not in dimensionPair: + yield d def generateHtml(self): - for pair in self.iterDimensionPairs(): - remdims = [d for d in self.iterRemainingDimensions(pair)] - for vals in iterDimValues(remdims): - page = Page(pair, remdims, vals, self) - page.generate() - try: - os.remove("index.html") - except OSError: pass - os.symlink(page.getName(), "index.html") - - os.system("source-highlight -d --output-dir=. ../*.sh") + for pair in self.iterDimensionPairs(): + remdims = [d for d in self.iterRemainingDimensions(pair)] + for vals in iterDimValues(remdims): + page = Page(pair, remdims, vals, self) + page.generate() + try: + os.remove("index.html") + except OSError: pass + os.symlink(page.getName(), "index.html") + + os.system("source-highlight -d --output-dir=. ../*.sh") class Page: def __init__(self, dimPair, dimOther, valsOther, tests): - self.dimy, self.dimx = dimPair - self.dimOther = dimOther - self.valsOther = valsOther - self.tests = tests + self.dimy, self.dimx = dimPair + self.dimOther = dimOther + self.valsOther = valsOther + self.tests = tests def getName(self): - return "%s-vs-%s-%s.html"%(self.dimy.type, self.dimx.type, "-".join([v.value for v in self.valsOther])) + return "%s-vs-%s-%s.html"%(self.dimy.type, self.dimx.type, "-".join([v.value for v in self.valsOther])) def generate(self): - html = open(self.getName(), "w") - title = "CAN gateway timing analysis" + ", ".join([v.dim.name+" "+v.value for v in self.valsOther]) - print >> html, """ - + html = open(self.getName(), "w") + title = "CAN gateway timing analysis" + ", ".join([v.dim.name+" "+v.value for v in self.valsOther]) + print >> html, """ + %s