[t] Plumage gets to be the first kid on the block to use the Tapir test harness
[parrot-plumage:parrot-plumage.git] / t / 02-glue.t
1 #! parrot-nqp
2
3 MAIN();
4
5 sub MAIN () {
6     # Load testing tools
7     pir::load_language('parrot');
8     pir::compreg__PS('parrot').import('Test::More');
9
10     # Load library to be tested
11     pir::load_bytecode('src/lib/Glue.pbc');
12
13     # Run all tests for this library
14     run_tests();
15 }
16
17 sub run_tests () {
18     plan(4);
19
20     test_subst();
21 }
22
23 sub test_subst() {
24     my $string := 'chewbacca';
25     my $subst  := subst($string, rx('a'), 'x');
26     is($subst,  'chewbxccx', 'subst works with plain string replacement');
27     is($string, 'chewbacca', 'plain string subst edits a clone');
28
29     my $text  := 'wookie';
30     my $fixed := subst($text, rx('w|k'), replacement);
31     is($fixed, 'wwookkie', 'subst works with code replacement');
32     is($text,  'wookie',   'code replacement subst edits a clone');
33 }
34
35 sub replacement($match) {
36     my $orig := ~$match;
37
38     return $orig ~ $orig;
39 }