From 4da38e50a096e9aa19a75149bcc9dbb6e1de901e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 6 Mar 2017 10:29:00 +0200 Subject: Iterate over group members in test rule only if resolvable --- build2/test/rule.cxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'build2/test') diff --git a/build2/test/rule.cxx b/build2/test/rule.cxx index 9861baf..0a346d8 100644 --- a/build2/test/rule.cxx +++ b/build2/test/rule.cxx @@ -63,7 +63,15 @@ namespace build2 // If we have any prerequisites of the test{} type, then this is the // testscript case. // - for (prerequisite_member p: group_prerequisite_members (a, t)) + // If we can, go inside see-through groups. Normally groups won't be + // resolvable for this action but then normally they won't contain any + // testscripts either. In other words, if there is a group that + // contains testscripts as members then it will need to arrange for + // the members to be resolvable (e.g., by registering an appropriate + // rule for the test operation). + // + for (prerequisite_member p: + group_prerequisite_members (a, t, members_mode::maybe)) { if (p.is_a ()) { @@ -215,7 +223,8 @@ namespace build2 // Collect all the testscript targets in prerequisite_targets. // - for (prerequisite_member p: group_prerequisite_members (a, t)) + for (prerequisite_member p: + group_prerequisite_members (a, t, members_mode::maybe)) { if (p.is_a ()) t.prerequisite_targets.push_back (&p.search ()); -- cgit v1.1