sanitycheck: export list of tests as CSV
Export tests to a file with Section, subsection and identifier as
columns making it easy to import testcases into test management system.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
diff --git a/scripts/sanitycheck b/scripts/sanitycheck
index dab6a58..214127c 100755
--- a/scripts/sanitycheck
+++ b/scripts/sanitycheck
@@ -2404,6 +2404,10 @@
parser.add_argument("--list-tests", action="store_true",
help="list all tests.")
+ parser.add_argument("--export-tests", action="store",
+ metavar="FILENAME",
+ help="Export tests case meta-data to a file in CSV format.")
+
parser.add_argument("--detailed-report",
action="store",
metavar="FILENAME",
@@ -2721,6 +2725,34 @@
return
+
+ def export_tests(filename, tests):
+ with open(filename, "wt") as csvfile:
+ fieldnames = ['section', 'subsection', 'title', 'reference']
+ cw = csv.DictWriter(csvfile, fieldnames, lineterminator=os.linesep)
+ for test in tests:
+ data = test.split(".")
+ subsec = " ".join(data[1].split("_")).title()
+ rowdict = {
+ "section": data[0].capitalize(),
+ "subsection": subsec,
+ "title": test,
+ "reference": test
+ }
+ cw.writerow(rowdict)
+
+ if options.export_tests:
+ cnt = 0
+ unq = []
+ for n,tc in ts.testcases.items():
+ for c in tc.cases:
+ unq.append(c)
+
+ tests = sorted(set(unq))
+ export_tests(options.export_tests, tests)
+ return
+
+
if options.list_tests:
cnt = 0
unq = []