diff options
Diffstat (limited to 'tests/recipe/cxx/testscript')
-rw-r--r-- | tests/recipe/cxx/testscript | 39 |
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>- |