From cbc2dd8437f156729d52ace653ec55e42025665c Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Thu, 2 Jun 2016 17:43:32 -0400 Subject: [PATCH] nitunit: check docunits in order, even if compiled independently Signed-off-by: Jean Privat --- src/testing/testing_doc.nit | 63 ++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 18 deletions(-) diff --git a/src/testing/testing_doc.nit b/src/testing/testing_doc.nit index 723e717..872bff2 100644 --- a/src/testing/testing_doc.nit +++ b/src/testing/testing_doc.nit @@ -96,25 +96,37 @@ class NitUnitExecutor return end + # Try to group each nitunit into a single source file to fasten the compilation var simple_du = new Array[DocUnit] show_status for du in docunits do # Skip existing errors if du.error != null then - mark_done(du) continue end var ast = toolcontext.parse_something(du.block) if ast isa AExpr then simple_du.add du + end + end + test_simple_docunits(simple_du) + + # Now test them in order + for du in docunits do + if du.error != null then + # Nothing to execute. Conclude + else if du.test_file != null then + # Already compiled. Execute it. + execute_simple_docunit(du) else + # Need to try to compile it, then execute it test_single_docunit(du) end + mark_done(du) end - test_simple_docunits(simple_du) - + # Final status show_status print "" @@ -164,28 +176,35 @@ class NitUnitExecutor if res != 0 then # Compilation error. - # Fall-back to individual modes: - for du in dus do - test_single_docunit(du) - end + # They will be executed independently return end + # Compilation was a success. + # Store what need to be executed for each one. i = 0 for du in dus do i += 1 - toolcontext.info("Execute doc-unit {du.full_name} in {file} {i}", 1) - var res2 = toolcontext.safe_exec("{file.to_program_name}.bin {i} >'{file}.out1' 2>&1 '{file}.out1' 2>&1