Skip to content

Commit 7624313

Browse files
author
Daniel Marjamäki
committed
extracttests.py: added option to output test files
1 parent be0acad commit 7624313

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

tools/extracttests.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,18 +126,21 @@ def writeHtmlFile(nodes, functionName, filename, errorsOnly):
126126

127127
if len(sys.argv) <= 1 or '--help' in sys.argv:
128128
print 'Extract test cases from test file'
129-
print 'Syntax: extracttests.py [--html=folder] [--xml] path/testfile.cpp'
129+
print 'Syntax: extracttests.py [--html=folder] [--xml] [--code=folder] path/testfile.cpp'
130130
sys.exit(0)
131131

132132
# parse command line
133133
xml = False
134134
filename = None
135135
htmldir = None
136+
codedir = None
136137
for arg in sys.argv[1:]:
137138
if arg == '--xml':
138139
xml = True
139140
elif arg.startswith('--html='):
140141
htmldir = arg[7:]
142+
elif arg.startswith('--code='):
143+
codedir = arg[7:]
141144
elif arg.endswith('.cpp'):
142145
filename = arg
143146
else:
@@ -224,6 +227,36 @@ def writeHtmlFile(nodes, functionName, filename, errorsOnly):
224227
htmldir + 'all-' + functionName + '.htm',
225228
False)
226229

230+
elif codedir:
231+
testnum = 0
232+
233+
if not codedir.endswith('/'):
234+
codedir = codedir + '/'
235+
errors = open(codedir+'errors.txt', 'w')
236+
237+
for node in e.nodes:
238+
testnum = testnum + 1
239+
240+
functionName = node['functionName']
241+
code = node['code']
242+
expected = node['expected']
243+
244+
filename = str(testnum) + '-'
245+
filename += functionName + '.cpp'
246+
247+
# source code
248+
fout = open(codedir+filename,'w')
249+
fout.write(code)
250+
fout.close()
251+
252+
# suppression
253+
if expected.startswith('[test.cpp:'):
254+
expected='['+filename+expected[10:]
255+
elif expected.startswith('[test.c:'):
256+
expected='['+filename+expected[8:]
257+
if expected != '':
258+
errors.write(expected+'\n')
259+
errors.close()
227260
else:
228261
for node in e.nodes:
229262
print node['functionName']

0 commit comments

Comments
 (0)