@@ -126,18 +126,21 @@ def writeHtmlFile(nodes, functionName, filename, errorsOnly):
126126
127127if 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
133133xml = False
134134filename = None
135135htmldir = None
136+ codedir = None
136137for 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