Commit 7fb5b5f2 authored by Andrey Kamaev's avatar Andrey Kamaev

Improved sorting in performance reports

parent 40d82c07
...@@ -32,6 +32,9 @@ def keyselector(a): ...@@ -32,6 +32,9 @@ def keyselector(a):
return ((channels-1) & 511) + (depth << 9) return ((channels-1) & 511) + (depth << 9)
return a return a
convert = lambda text: int(text) if text.isdigit() else text
alphanum_keyselector = lambda key: [ convert(c) for c in re.split('([0-9]+)', keyselector(key)) ]
def getValueParams(test): def getValueParams(test):
param = test.get("value_param") param = test.get("value_param")
if not param: if not param:
...@@ -174,7 +177,7 @@ if __name__ == "__main__": ...@@ -174,7 +177,7 @@ if __name__ == "__main__":
exit(1) exit(1)
for i in range(argsnum): for i in range(argsnum):
arglists[i] = sorted([str(key) for key in arglists[i].iterkeys()], key=keyselector) arglists[i] = sorted([str(key) for key in arglists[i].iterkeys()], key=alphanum_keyselector)
if options.generateHtml and options.format != "moinwiki": if options.generateHtml and options.format != "moinwiki":
htmlPrintHeader(sys.stdout, "Report %s for %s" % (args[0], sname)) htmlPrintHeader(sys.stdout, "Report %s for %s" % (args[0], sname))
...@@ -229,4 +232,4 @@ if __name__ == "__main__": ...@@ -229,4 +232,4 @@ if __name__ == "__main__":
break break
if options.generateHtml and options.format != "moinwiki": if options.generateHtml and options.format != "moinwiki":
htmlPrintFooter(sys.stdout) htmlPrintFooter(sys.stdout)
\ No newline at end of file
...@@ -2,6 +2,9 @@ import testlog_parser, sys, os, xml, glob, re ...@@ -2,6 +2,9 @@ import testlog_parser, sys, os, xml, glob, re
from table_formatter import * from table_formatter import *
from optparse import OptionParser from optparse import OptionParser
convert = lambda text: int(text) if text.isdigit() else text
alphanum_keyselector = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
def getSetName(tset, idx, columns, short = True): def getSetName(tset, idx, columns, short = True):
if columns and len(columns) >= idx: if columns and len(columns) >= idx:
prefix = columns[idx] prefix = columns[idx]
...@@ -121,7 +124,7 @@ if __name__ == "__main__": ...@@ -121,7 +124,7 @@ if __name__ == "__main__":
# rows # rows
needNewRow = True needNewRow = True
for name in sorted(test_cases.iterkeys()): for name in sorted(test_cases.iterkeys(), key=alphanum_keyselector):
cases = test_cases[name] cases = test_cases[name]
if needNewRow: if needNewRow:
tbl.newRow() tbl.newRow()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment