From 2c1aff8bf09a50189c3d0b2ff86ab057ca009749 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 3 Feb 2017 19:56:11 +0300 Subject: Fix runner output in verbose (-v, -V) modes --- build2/test/script/runner.cxx | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'build2/test/script/runner.cxx') diff --git a/build2/test/script/runner.cxx b/build2/test/script/runner.cxx index 751daec..4047b5a 100644 --- a/build2/test/script/runner.cxx +++ b/build2/test/script/runner.cxx @@ -761,9 +761,6 @@ namespace build2 // const command& c (*bc); - if (verb >= 3) - text << c; - // Register the command explicit cleanups. Verify that the path being // cleaned up is a sub-path of the testscript working directory. Fail // if this is not the case. @@ -1100,10 +1097,24 @@ namespace build2 bool success; + auto process_args = [&c] () -> cstrings + { + cstrings args {c.program.string ().c_str ()}; + + for (const auto& a: c.arguments) + args.push_back (a.c_str ()); + + args.push_back (nullptr); + return args; + }; + if (b != nullptr) { // Execute the builtin. // + if (verb >= 2) + print_process (process_args ()); + try { future f ( @@ -1123,12 +1134,7 @@ namespace build2 { // Execute the process. // - cstrings args {c.program.string ().c_str ()}; - - for (const auto& a: c.arguments) - args.push_back (a.c_str ()); - - args.push_back (nullptr); + cstrings args (process_args ()); try { @@ -1307,6 +1313,9 @@ namespace build2 void default_runner:: run (scope& sp, const command_expr& expr, size_t li, const location& ll) { + if (verb >= 3) + text << expr; + if (!run_expr (sp, expr, li, ll, true)) throw failed (); // Assume diagnostics is already printed. } @@ -1316,6 +1325,9 @@ namespace build2 const command_expr& expr, size_t li, const location& ll) { + if (verb >= 3) + text << "? " << expr; + return run_expr (sp, expr, li, ll, false); } } -- cgit v1.1