10 def __init__(self, atype):
12 self.values = dircache.listdir('by-%s'%atype)
15 if self.type == "kern": return "kernel"
16 elif self.type == "clck": return "CPU clock"
17 elif self.type == "test": return "test"
18 else: raise Exception, "Unknown type"
21 return iter(self.values)
23 def __getitem__(self, key):
24 return self.values[key]
26 def getLabel(self, v):
27 if self.type == "clck": return v+" MHz"
28 elif self.type == "test": return "<a href='%s.sh.html'>%s</a>"%(v, v)
34 yield self.getLabel(v)
36 kernels = Axis('kern')
41 def __init__(self, values, x, y):
48 yield Page(self.values.type, str(self.values), v, self.x, self.y)
51 def __init__(self, prefix, name, value, xvals, yvals):
58 def generate(self, pagesets):
59 html = open("%s-%s.html"%(self.prefix, self.value), "w")
60 print >> html, """<html>
62 <title>CAN driver benchmark for %s %s</title>
65 table { border-collapse: collapse; }
66 td { border: 1px solid lightgray; padding: 4px;}
70 <h1>CAN driver benchmark for %s %s</h1>""" % (self.name, self.value, self.name, self.value)
72 print >>html, "View by %s: " % str(ps.values)
74 print >>html, "<a href='%s-%s.html'>%s</a> | "%(ps.values.type, v, v)
76 print >>html, "<table><thead><tr><td> </td>"
77 for x in self.xvals.labels():
78 print >>html, "<td>%s</td>" % x
79 print >>html, "</tr></thead>"
81 print >>html, "<tr><td>%s</td>" % self.yvals.getLabel(y)
85 d="by-%s/%s/%s/%s/" % (self.prefix, self.value, y, x)
88 for img in dircache.listdir(dthumb):
89 print >>html, "<a href='%s/%s'><img src='%s/thumb/%s'></a>" % (d, img, d, img)
91 print "warning: no images in %s?"%dthumb
100 pagesets = [ PageSet(kernels, clocks, tests),
101 PageSet(tests, clocks, kernels),
102 PageSet(clocks, kernels, tests)]
105 for p in ps.getPages():
109 os.remove("index.html")
112 os.symlink("%s-%s.html"%(kernels.type, kernels[0]), "index.html")
114 os.system("source-highlight -d --output-dir=. ../*.sh")