From: Michal Sojka Date: Thu, 2 Dec 2010 15:38:43 +0000 (+0100) Subject: Working version of genhtml X-Git-Tag: fix-allnoconfig~273^2~1 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/can-benchmark.git/commitdiff_plain/021af783fe6308935144830af5f51842352bf395 Working version of genhtml --- diff --git a/gw-tests/genhtml/Makefile b/gw-tests/genhtml/Makefile index 6801004..17e0f2b 100644 --- a/gw-tests/genhtml/Makefile +++ b/gw-tests/genhtml/Makefile @@ -1,2 +1,2 @@ test: - ./wvtestrun ./wvtest.py genhtml.py + ./wvtestrun ./wvtest.py genhtml-test.py diff --git a/gw-tests/genhtml/genhtml-test.py b/gw-tests/genhtml/genhtml-test.py new file mode 100644 index 0000000..7d77fba --- /dev/null +++ b/gw-tests/genhtml/genhtml-test.py @@ -0,0 +1,66 @@ +from wvtest import * +from genhtml import * + +@wvtest +def Dimension_and_DimValue(): + d = Dimension('kern', 'Kernel') + d.addValue('2.6.31') + d.addValue('2.6.30') + l=[] + for v in d: + WVPASSEQ(v.__class__, DimValue) + l.append(v.value) + lsorted = ['2.6.30', '2.6.31'] + WVPASSEQ(l, lsorted) + WVPASSEQ(v.htmlLabel(), '2.6.31') + WVPASSEQ(d['2.6.31'].value, '2.6.31') + +@wvtest +def Two_Dimensions_in_Tests(): + t = Tests(None, DimensionTest(), DimensionKern()) + WVPASSEQ([(a.__class__.__name__, b.__class__.__name__) for a, b in t.iterDimensionPairs()], + [('DimensionTest', 'DimensionKern'), ('DimensionKern', 'DimensionTest')]) +@wvtest +def Three_Dimensions_in_Tests(): + dt = DimensionTest() + dk = DimensionKern() + dd = Dimension('tmp', "Tmp") + t = Tests(None, dt, dk, dd) + pairs = [(a.__class__.__name__, b.__class__.__name__) for a, b in t.iterDimensionPairs()] + WVPASSEQ(pairs[0], ('DimensionTest', 'DimensionKern')) + WVPASSEQ(pairs[1], ('DimensionKern', 'DimensionTest')) + WVPASSEQ(pairs[2], ('DimensionTest', 'Dimension')) + WVPASSEQ(pairs[3], ('Dimension', 'DimensionTest')) + WVPASSEQ(pairs[4], ('DimensionKern', 'Dimension')) + WVPASSEQ(pairs[5], ('Dimension', 'DimensionKern')) + WVPASSEQ(len(pairs), 6) + WVEXCEPT(KeyError, t.addTest, None, [1, 2]) + WVEXCEPT(KeyError, t.addTest, None, [1, 2, 3, 4]) + + class MyTest(Test): + pass + + t.addTest(MyTest, [1, 'a', 'A']); + + WVPASSEQ(dt.keys(), [1]) + WVPASSEQ(dk.keys(), ['a']) + WVPASSEQ(dd.keys(), ['A']) + + v1 = dt[1] + v2 = dk['a'] + v3 = dd['A'] + + WVPASSEQ(t.getTest((v1, v2, v3)), MyTest) + WVPASSEQ(t.getTest((v1, v3, v2)), MyTest) + WVPASSEQ(t.getTest((v3, v2, v1)), MyTest) + WVEXCEPT(KeyError, t.getTest, (v1, v1, v1)) + WVEXCEPT(KeyError, t.getTest, (v1, v2)) + WVEXCEPT(TypeError, t.getTest, v1) + + WVPASSEQ([d.__class__.__name__ for d in t.iterRemainingDimensions([dt])], ['DimensionKern', 'Dimension']) + WVPASSEQ([d.__class__.__name__ for d in t.iterRemainingDimensions([dt, dd])], ['DimensionKern']) + + WVPASSEQ(str([v for v in iterDimValues([dt, dk])]), str([[1,'a']])) + dt.addValue(2) + dk.addValue('b') + WVPASSEQ(str([v for v in iterDimValues([dt, dk])]), str([[1, 'a'], [2, 'a'], [1, 'b'], [2, 'b']])) diff --git a/gw-tests/genhtml/genhtml.py b/gw-tests/genhtml/genhtml.py old mode 100644 new mode 100755 index 3a90ab5..90c4e5f --- a/gw-tests/genhtml/genhtml.py +++ b/gw-tests/genhtml/genhtml.py @@ -1,15 +1,10 @@ #!/usr/bin/env python - +# -*- coding: utf-8 -*- import os; import dircache; import sys; import urllib -if __name__ == "__main__": - os.chdir(sys.argv[1]) -else: - from wvtest import * - class DimValue: def __init__(self, dim, value): self.dim = dim @@ -40,21 +35,6 @@ class Dimension(dict): def htmlLabel(self, v): return v -@wvtest -def Dimension_and_DimValue(): - d = Dimension('kern', 'Kernel') - d.addValue('2.6.31') - d.addValue('2.6.30') - l=[] - for v in d: - WVPASSEQ(v.__class__, DimValue) - l.append(v.value) - lsorted = ['2.6.30', '2.6.31'] - WVPASSEQ(l, lsorted) - WVPASSEQ(v.htmlLabel(), '2.6.31') - WVPASSEQ(d['2.6.31'].value, '2.6.31') - - class DimensionKern(Dimension): def __init__(self): Dimension.__init__(self, 'kern', 'Kernel') @@ -83,6 +63,10 @@ class Test: return os.path.isfile(f) def __init__(self, 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) def iterDimValues(dimensions): idx = [0 for i in xrange(len(dimensions))] @@ -143,16 +127,31 @@ class Tests(dict): yield d def generateHtml(self): for pair in self.iterDimensionPairs(): - remdims = self.iterRemainingDimensions(pair) + remdims = [d for d in self.iterRemainingDimensions(pair)] for vals in iterDimValues(remdims): - self.generatePage(pair, remdims, vals) - - def generatePage(self, dimpair, dimother, valsother): - dimy, dimx = dimpair - html = open("%s-vs-%s-%s.html"%(dimy.type, dimx.type, "-".join([v.value for v in valsother])), "w") - title = "CAN gateway benchmark for " + ", ".join([v.dim.name+" "+v.value for v in valsother]) + 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 + def getName(self): + 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, """ - + + %s