aboutsummaryrefslogtreecommitdiff
path: root/tests/recipe/cxx/testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/recipe/cxx/testscript')
-rw-r--r--tests/recipe/cxx/testscript39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/recipe/cxx/testscript b/tests/recipe/cxx/testscript
index 323e049..9a87c24 100644
--- a/tests/recipe/cxx/testscript
+++ b/tests/recipe/cxx/testscript
@@ -165,6 +165,45 @@ if (!$static && $test.target == $build.host)
$* clean 2>-
}
+ : rule
+ :
+ {
+ cat <<EOI >=buildfile;
+ alias{far}: alias{bar}
+ alias{bar}:
+
+ alias{~'/f(.+)/'}: alias{~'/b\1/'}
+ {{ c++ 1 --
+
+ #include <iostream>
+
+ --
+
+ recipe
+ apply (action, target&) const override
+ {
+ return [this] (action a, const target& t)
+ {
+ return perform_update (a, t);
+ };
+ }
+
+ target_state
+ perform_update (action, const target& t) const
+ {
+ const auto& mr (t.data<regex_match_results> ());
+ text << pattern->rule_name << ": " << mr.str (1);
+ return target_state::changed;
+ }
+ }}
+ EOI
+
+ $* 2>>~%EOE%
+ %^(c\+\+|ld).*%+
+ <ad hoc pattern rule #1>: ar
+ EOE
+ }
+
# Clean recipe builds if the testscript is enabled (see above for details).
#
-$* clean 2>-