mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
75 lines
2.6 KiB
Python
Executable File
75 lines
2.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
# usage: ./munge.py ORIG/*.csv
|
|
# munge CSV files into a format that asciidocFX understands
|
|
|
|
import csv, os, sys
|
|
|
|
snames = ["ntfs", "winfsp-t0", "winfsp-t1", "winfsp-tinf", "dokany"]
|
|
file_tnames = [
|
|
"file_create_test",
|
|
"file_open_test",
|
|
"file_overwrite_test",
|
|
"file_list_test",
|
|
"file_delete_test"]
|
|
#"file_mkdir_test",
|
|
#"file_rmdir_test"]
|
|
rdwr_tnames = [
|
|
"rdwr_cc_read_page_test",
|
|
"rdwr_cc_write_page_test",
|
|
"rdwr_nc_read_page_test",
|
|
"rdwr_nc_write_page_test",
|
|
"mmap_read_test",
|
|
"mmap_write_test"]
|
|
tnames = file_tnames + rdwr_tnames
|
|
aggregate = min
|
|
|
|
tests = {}
|
|
for arg in sys.argv[1:]:
|
|
name = os.path.splitext(os.path.basename(arg))[0]
|
|
if name[-1].isdigit() and name[-2] == '-':
|
|
name = name[:-2]
|
|
with open(arg, "r") as fin:
|
|
for row in csv.reader(fin):
|
|
tests.\
|
|
setdefault(row[0], {}).\
|
|
setdefault(name, {}).\
|
|
setdefault(int(row[1]), []).\
|
|
append(float(row[2]))
|
|
|
|
if False:
|
|
for tname in (tnames if tnames else sorted(tests.keys())):
|
|
print "%s:" % tname
|
|
test = tests[tname]
|
|
for sname in (snames if snames else sorted(test.keys())):
|
|
if sname not in test:
|
|
continue
|
|
print " %s:" % sname
|
|
series = test[sname]
|
|
for param in sorted(series.keys()):
|
|
print " %s: %s -> %.2f" % (param, series[param], aggregate(series[param]))
|
|
else:
|
|
for tname in (tnames if tnames else sorted(tests.keys())):
|
|
with open(tname + ".csv", "w") as fout:
|
|
test = tests[tname]
|
|
for sname in (snames if snames else sorted(test.keys())):
|
|
if sname not in test:
|
|
continue
|
|
fout.write("//%s\r\n" % sname)
|
|
series = test[sname]
|
|
for param in sorted(series.keys()):
|
|
fout.write("%s,%.2f\r\n" % (param, aggregate(series[param])))
|
|
def master_write(fname, tnames):
|
|
with open(fname + ".csv", "w") as fout:
|
|
for sname in snames:
|
|
fout.write("//%s\r\n" % sname)
|
|
for tname in (tnames if tnames else sorted(tests.keys())):
|
|
test = tests[tname]
|
|
if sname not in test:
|
|
continue
|
|
series = test[sname]
|
|
param = max(series.keys())
|
|
fout.write("%s,%.2f\r\n" % (tname, aggregate(series[param])))
|
|
master_write("file_tests", file_tnames)
|
|
master_write("rdwr_tests", rdwr_tnames)
|