summaryrefslogtreecommitdiffstats
path: root/build2/test
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-02-16 16:24:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-02-16 16:40:45 +0200
commit6293ede7a742866a713050737cc2b43d51161b6f (patch)
treef259845f47c2e03432bdd98b4b665e1a3de85d55 /build2/test
parentad9cb7fec5cc74697322620909e0ff1ba9ecb61b (diff)
downloadbuild2-6293ede7a742866a713050737cc2b43d51161b6f.tar.gz
build2-6293ede7a742866a713050737cc2b43d51161b6f.tar.xz
build2-6293ede7a742866a713050737cc2b43d51161b6f.zip
Add support for detecting dependency cycles
Diffstat (limited to 'build2/test')
-rw-r--r--build2/test/rule.cxx12
-rw-r--r--build2/test/script/parser.cxx12
2 files changed, 12 insertions, 12 deletions
diff --git a/build2/test/rule.cxx b/build2/test/rule.cxx
index b21f0c30..4225d245 100644
--- a/build2/test/rule.cxx
+++ b/build2/test/rule.cxx
@@ -498,20 +498,20 @@ namespace build2
if (!sched.async (target::count_busy (),
t[a].task_count,
- [this] (scope_state& r,
+ [this] (const diag_frame* ds,
+ scope_state& r,
const target& t,
const testscript& ts,
- const dir_path& wd,
- const diag_frame* ds)
+ const dir_path& wd)
{
- diag_frame df (ds);
+ diag_frame::stack_guard dsg (ds);
r = perform_script_impl (t, ts, wd, *this);
},
+ diag_frame::stack,
ref (r),
cref (t),
cref (ts),
- cref (wd),
- diag_frame::stack))
+ cref (wd)))
{
// Executed synchronously. If failed and we were not asked to keep
// going, bail out.
diff --git a/build2/test/script/parser.cxx b/build2/test/script/parser.cxx
index 69fe9793..d3cab0af 100644
--- a/build2/test/script/parser.cxx
+++ b/build2/test/script/parser.cxx
@@ -3018,18 +3018,18 @@ namespace build2
//
const diag_frame* df (diag_frame::stack); // UBSan workaround.
if (!sched.async (task_count,
- [] (scope& s,
+ [] (const diag_frame* ds,
+ scope& s,
script& scr,
- runner& r,
- const diag_frame* ds)
+ runner& r)
{
- diag_frame df (ds);
+ diag_frame::stack_guard dsg (ds);
execute_impl (s, scr, r);
},
+ df,
ref (*chain),
ref (*script_),
- ref (*runner_),
- df))
+ ref (*runner_)))
{
// Bail out if the scope has failed and we weren't instructed
// to keep going.