X-Git-Url: http://rtime.felk.cvut.cz/gitweb/can-benchmark.git/blobdiff_plain/25a87df81e3eb9b6e0bff19a2197165b3c3ceb2a..606fa78f2b870a5a55e2763d398d70298d2f7d21:/gw-tests/genhtml/genhtml.py diff --git a/gw-tests/genhtml/genhtml.py b/gw-tests/genhtml/genhtml.py index 1ba9f7f..76eee7b 100755 --- a/gw-tests/genhtml/genhtml.py +++ b/gw-tests/genhtml/genhtml.py @@ -9,10 +9,11 @@ class DimValue: def __init__(self, dim, value): self.dim = dim self.value = value + self.dim.addValue(self) def __str__(self): return self.dim.val2str(self.value) def __repr__(self): - return "DimValue("+str(self.dim.__class__.__name__) + ", "+repr(self.value)+")" + return "DimValue(%s, %s)" % (repr(self.dim), repr(self.value)) def htmlTableHeading(self): return self.dim.htmlTableHeading(self.value) @@ -22,7 +23,9 @@ class DimValues(list): if self[i].dim == val.dim: self[i] = val def __add__(self, val): - return DimValues(self).append(val) + ret = DimValues(self) + ret.append(val) + return ret def __sub__(self, dim): result = DimValues(self) for v in self: @@ -50,7 +53,11 @@ class Dimension(dict): def addValue(self, *values): for value in values: if value not in self: - self[value] = DimValue(self, value) + if isinstance(value, DimValue): + self[value.value] = value + else: + raise Exception("Unsupported usage of addValue") + #self[value] = DimValue(self, value) self.sortedKeys = self.keys() self.sortedKeys.sort() def val2str(self, v): @@ -188,7 +195,7 @@ class Tests(dict): raise KeyError("The number coordinates do not match the number of dimensions: " + str(coordinates)) self[tuple(coordinates)] = test for i in xrange(len(coordinates)): - self.space[i].addValue(coordinates[i]) + DimValue(self.space[i], coordinates[i]) def populate(self, rootpath): for root, dirs, files in os.walk(rootpath): @@ -202,7 +209,7 @@ class Tests(dict): for pair in self.space.iterDimensionPairs(): remDims = Space(*tuple([d for d in self.space.iterRemainingDimensions(pair)])) for vals in remDims.iterValues(): - page = Page(pair, remDims, vals, self) + page = Page(pair, vals, self) page.generate() try: os.remove("index.html") @@ -212,15 +219,14 @@ class Tests(dict): #os.system("source-highlight -d --output-dir=. ../*.sh") class Page: - def __init__(self, dimPair, dimOther, valsOther, tests): + def __init__(self, dimPair, valsOther, tests): self.dimy, self.dimx = dimPair - self.dimOther = dimOther - self.valsOther = valsOther + self.dimOther = [v.dim for v in valsOther] + self.valsOther = tests.space.reorder(valsOther) self.tests = tests - def getName(self, dimy=None, dimx=None, valsOther=None): - return "%s-vs-%s-for-%s.html"%(dimx or self.dimy.type, - dimy or self.dimx.type, - "-".join([v.value for v in valsOther or self.valsOther])) + def getName(self): + return "%s-vs-%s-for-%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" @@ -242,9 +248,9 @@ th, td { border: 1px solid lightgray; padding: 4px;} for d in self.dimOther: print >>html, "%s: " % d print >>html, "X axis, " % \ - self.getName(dimx=d, - valsOther=self.valsOther - d + self.dimx.getValue(0)) - print >>html, "Y axis;  " % self.getName(dimy=d) + Page((self.dimy, d), self.valsOther - d + self.dimx.getValue(0), self.tests).getName() + print >>html, "Y axis;  " % \ + Page((d, self.dimx), self.valsOther - d + self.dimy.getValue(0), self.tests).getName() links = [] for v in d.values(): if v in self.valsOther: @@ -252,7 +258,7 @@ th, td { border: 1px solid lightgray; padding: 4px;} else: vv = DimValues(self.valsOther) vv.replace(v) - links.append("%s"%(urllib.quote(self.getName(valsOther=vv)), str(v))) + links.append("%s"%(urllib.quote(Page((self.dimy, self.dimx), vv, self.tests).getName()), str(v))) print >>html, " | ".join(links) print >>html, "
" try: