aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/test/script/script.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2022-10-14 13:43:32 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2022-10-14 17:30:12 +0300
commit74eea8fe332c05774f108c5094eb335e58f44cfa (patch)
tree84a89e57729fbe5eb358270e40dcc7643ab4a577 /libbuild2/test/script/script.hxx
parent0ce23b6a1e2e0d7c50fbab83f3aef26a1aeb2271 (diff)
Fix printing test id multiple times on test failure
Diffstat (limited to 'libbuild2/test/script/script.hxx')
-rw-r--r--libbuild2/test/script/script.hxx18
1 files changed, 17 insertions, 1 deletions
diff --git a/libbuild2/test/script/script.hxx b/libbuild2/test/script/script.hxx
index 319a9e2..3c2cbc4 100644
--- a/libbuild2/test/script/script.hxx
+++ b/libbuild2/test/script/script.hxx
@@ -96,6 +96,22 @@ namespace build2
scope_state state = scope_state::unknown;
+ // The command expression execution nesting level. Can be maintained
+ // by the runner to, for example, only perform some housekeeping on
+ // the topmost level (add the test id to the diagnostics, etc).
+ //
+ // Note that the command expression execution can be nested, so that
+ // the outer expression execution is not completed before all the
+ // inner expressions are executed. As for example in:
+ //
+ // echo 'a b' | for x
+ // echo 'c d' | for y
+ // test $x $y
+ // end
+ // end
+ //
+ size_t exec_level = 0;
+
// Test program paths.
//
// Currently always contains a single element (see test_program() for
@@ -105,7 +121,7 @@ namespace build2
//
small_vector<const path*, 1> test_programs;
- void
+ virtual void
set_variable (string name,
names&&,
const string& attrs,