@@ -201,6 +201,22 @@ def _exec_file_and_args(self, lang: Language) -> Tuple[str, List[str]]:
201
201
else :
202
202
raise NotImplementedError ()
203
203
204
+ def _clean_up (self , lang : Language ):
205
+ if lang == CPP :
206
+ os .remove (os .path .join (self .temp_dir , "a.out" ))
207
+ elif lang == JAVA :
208
+ return
209
+ elif lang == RUST :
210
+ os .remove (os .path .join (self .temp_dir , "main" ))
211
+ elif lang == PYTHON :
212
+ return
213
+ elif lang == NIM :
214
+ os .remove (os .path .join (self .temp_dir , "main" ))
215
+ elif lang == DLANG :
216
+ os .remove (os .path .join (self .temp_dir , "main" ))
217
+ else :
218
+ raise NotImplementedError ()
219
+
204
220
def _compile_and_run (self , lang , format , template_file , expected_generated_code_file , input_file ):
205
221
code_file = os .path .join (self .temp_dir , lang .source_code_name ("main" ))
206
222
exec_file , exec_args = self ._exec_file_and_args (lang )
@@ -215,16 +231,22 @@ def _compile_and_run(self, lang, format, template_file, expected_generated_code_
215
231
constants = ProblemConstantSet (123 , "yes" , "NO" ),
216
232
config = cfg
217
233
)
218
-
219
234
code = lang .default_code_generator (args )
220
235
# to remove version strings from test resources
221
236
code = re .sub (r'Generated by \d+.\d+.\d+' , 'Generated by x.y.z' , code )
222
237
self .compare_two_texts_ignoring_trailing_spaces (
223
238
load_text_file (expected_generated_code_file ), code )
224
239
create_code (code , code_file )
225
- print (run_command (compile_cmd , self .temp_dir ))
226
- exec_result = run_program (
227
- exec_file , input_file , 2 , exec_args , self .temp_dir )
240
+ try :
241
+ print ("Executing:" , compile_cmd )
242
+ print (run_command (compile_cmd , self .temp_dir ))
243
+
244
+ print ("Run program:" , [exec_file ] + exec_args )
245
+ exec_result = run_program (
246
+ exec_file , input_file , 2 , exec_args , self .temp_dir )
247
+ finally :
248
+ self ._clean_up (lang )
249
+
228
250
print ("== stdout ==" )
229
251
print (exec_result .output )
230
252
print ("== stderr ==" )
@@ -255,10 +277,6 @@ def verify(self,
255
277
self .assertEqual (
256
278
load_intermediate_types (py_test_name ),
257
279
str (response .types ))
258
- if lang == NIM :
259
- cfg = CodeStyleConfig (indent_width = 2 )
260
- else :
261
- cfg = CodeStyleConfig ()
262
280
263
281
self .assertEqual (
264
282
load_generated_code (py_test_name , lang ),
@@ -267,7 +285,7 @@ def verify(self,
267
285
self .get_template (lang , template_type ),
268
286
response .original_result .format ,
269
287
constants ,
270
- cfg )
288
+ CodeStyleConfig ( lang = lang . name ) )
271
289
))
272
290
273
291
def get_template (self , lang : Language , template_type : str ) -> str :
0 commit comments