PATH=C:\MinGW-32\bin;C:\cygwin\bin;C:\cpanfly-5.22-32\var\megalib\bin;C:\Perl-5.22-32\site\bin;C:\Perl-5.22-32\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\cpanfly-5.22-32\var\megalib\bin;C:\Perl-5.22-64\site\bin;C:\Perl-5.22-64\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\cpanfly-5.22-32\var\megalib\bin;C:\Perl-5.22-64\site\bin;C:\Perl-5.22-64\bin;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\mysql-5.5.45-x64\bin;C:\mysql-5.5.45-x64\bin;=C:\mysql-5.5.45-win32\bin Start 2015-08-20T18:56:29 ActivePerl-2200 CPAN-2.00 PATH=C:\MinGW-32\bin;C:\cygwin\bin;C:\CPANFL~1.22-\var\megalib\bin;C:\PERL-5~1.22-\site\bin;C:\PERL-5~1.22-\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\CPANFL~1.22-\var\megalib\bin;C:\PERL-5~2.22-\site\bin;C:\PERL-5~2.22-\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\CPANFL~1.22-\var\megalib\bin;C:\PERL-5~2.22-\site\bin;C:\PERL-5~2.22-\bin;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WINDOW~1\v1.0\ Reading 'C:\cpanfly-5.22-32\var\cpan\Metadata' Database was generated on Thu, 20 Aug 2015 05:53:26 GMT Running make for D/DA/DACAV/App-PFT-v0.03.2.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/D/DA/DACAV/App-PFT-v0.03.2.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/D/DA/DACAV/CHECKSUMS Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\D\DA\DACAV\App-PFT-v0.03.2.tar.gz ok App-PFT-v0.03.2/ App-PFT-v0.03.2/Changes App-PFT-v0.03.2/lib/ App-PFT-v0.03.2/lib/App/ App-PFT-v0.03.2/lib/App/PFT.pm App-PFT-v0.03.2/lib/App/PFT/ App-PFT-v0.03.2/lib/App/PFT/Struct/ App-PFT-v0.03.2/lib/App/PFT/Struct/Conf.pm App-PFT-v0.03.2/lib/App/PFT/Struct/Tree.pm App-PFT-v0.03.2/lib/App/PFT/Util.pm App-PFT-v0.03.2/lib/App/PFT/Cmd/ App-PFT-v0.03.2/lib/App/PFT/Cmd/Init.pm App-PFT-v0.03.2/lib/App/PFT/Output/ App-PFT-v0.03.2/lib/App/PFT/Output/HTML.pm App-PFT-v0.03.2/lib/App/PFT/Content/ App-PFT-v0.03.2/lib/App/PFT/Content/Entry.pm App-PFT-v0.03.2/lib/App/PFT/Content/Page.pm App-PFT-v0.03.2/lib/App/PFT/Content/Virtual.pm App-PFT-v0.03.2/lib/App/PFT/Content/Text.pm App-PFT-v0.03.2/lib/App/PFT/Content/Base.pm App-PFT-v0.03.2/lib/App/PFT/Content/Blob.pm App-PFT-v0.03.2/lib/App/PFT/Content/Tag.pm App-PFT-v0.03.2/lib/App/PFT/Content/TagPage.pm App-PFT-v0.03.2/lib/App/PFT/Content/Month.pm App-PFT-v0.03.2/lib/App/PFT/Content/File.pm App-PFT-v0.03.2/lib/App/PFT/Content/Linked.pm App-PFT-v0.03.2/lib/App/PFT/Content/MonthPage.pm App-PFT-v0.03.2/lib/App/PFT/Data/ App-PFT-v0.03.2/lib/App/PFT/Data/Date.pm App-PFT-v0.03.2/lib/App/PFT/Data/Header.pm App-PFT-v0.03.2/lib/App/PFT/Lookups/ App-PFT-v0.03.2/lib/App/PFT/Lookups/Web.pm App-PFT-v0.03.2/META.yml App-PFT-v0.03.2/Makefile.PL App-PFT-v0.03.2/README.md App-PFT-v0.03.2/bin/ App-PFT-v0.03.2/bin/pft-month App-PFT-v0.03.2/bin/pft-clean App-PFT-v0.03.2/bin/pft-blog App-PFT-v0.03.2/bin/pft App-PFT-v0.03.2/bin/pft-page App-PFT-v0.03.2/bin/pft-init App-PFT-v0.03.2/bin/pft-make App-PFT-v0.03.2/bin/pft-pub App-PFT-v0.03.2/bin/pft-tag App-PFT-v0.03.2/README App-PFT-v0.03.2/MANIFEST App-PFT-v0.03.2/ignore.txt App-PFT-v0.03.2/META.json App-PFT-v0.03.2/COPYING App-PFT-v0.03.2/t/ App-PFT-v0.03.2/t/check-lookup.t App-PFT-v0.03.2/t/pod.t App-PFT-v0.03.2/t/check-build.t App-PFT-v0.03.2/t/manifest.t App-PFT-v0.03.2/t/00-load.t App-PFT-v0.03.2/t/check-tree.t App-PFT-v0.03.2/t/pod-coverage.t CPAN.pm: Building D/DA/DACAV/App-PFT-v0.03.2.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Warning: prerequisite Template::Alloy 0 not found. Warning: prerequisite Text::MultiMarkdown 0 not found. Warning: prerequisite YAML::Tiny 0 not found. Warning: prerequisite namespace::autoclean 0 not found. Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for App::PFT Writing MYMETA.yml and MYMETA.json ---- Unsatisfied dependencies detected during ---- ---- DACAV/App-PFT-v0.03.2.tar.gz ---- Template::Alloy [requires] Text::MultiMarkdown [requires] YAML::Tiny [requires] namespace::autoclean [requires] Running make test Delayed until after prerequisites Running test for module 'Template::Alloy' Running make for R/RH/RHANDOM/Template-Alloy-1.020.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/R/RH/RHANDOM/Template-Alloy-1.020.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/R/RH/RHANDOM/CHECKSUMS Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\R\RH\RHANDOM\Template-Alloy-1.020.tar.gz ok Template-Alloy-1.020/ Template-Alloy-1.020/Changes Template-Alloy-1.020/META.yml Template-Alloy-1.020/lib/ Template-Alloy-1.020/lib/Template/ Template-Alloy-1.020/lib/Template/Alloy/ Template-Alloy-1.020/lib/Template/Alloy/Tmpl.pm Template-Alloy-1.020/lib/Template/Alloy/Velocity.pm Template-Alloy-1.020/lib/Template/Alloy/Exception.pm Template-Alloy-1.020/lib/Template/Alloy/Compile.pm Template-Alloy-1.020/lib/Template/Alloy/HTE.pm Template-Alloy-1.020/lib/Template/Alloy/Operator.pm Template-Alloy-1.020/lib/Template/Alloy/Iterator.pm Template-Alloy-1.020/lib/Template/Alloy/Play.pm Template-Alloy-1.020/lib/Template/Alloy/Stream.pm Template-Alloy-1.020/lib/Template/Alloy/VMethod.pm Template-Alloy-1.020/lib/Template/Alloy/Parse.pm Template-Alloy-1.020/lib/Template/Alloy/Context.pm Template-Alloy-1.020/lib/Template/Alloy/TT.pm Template-Alloy-1.020/lib/Template/Alloy.pm Template-Alloy-1.020/lib/Template/Alloy.pod Template-Alloy-1.020/META.json Template-Alloy-1.020/samples/ Template-Alloy-1.020/samples/dprof_template.d Template-Alloy-1.020/samples/memory_template.pl Template-Alloy-1.020/samples/benchmark/ Template-Alloy-1.020/samples/benchmark/bench_method_calling.pl Template-Alloy-1.020/samples/benchmark/bench_optree.pl Template-Alloy-1.020/samples/benchmark/bench_operator_storage.pl Template-Alloy-1.020/samples/benchmark/bench_template_tag_parser.pl Template-Alloy-1.020/samples/benchmark/bench_various_templaters.pl Template-Alloy-1.020/samples/benchmark/bench_template.pl Template-Alloy-1.020/README Template-Alloy-1.020/t/ Template-Alloy-1.020/t/25_text_tmp.t Template-Alloy-1.020/t/01_coverage.t Template-Alloy-1.020/t/00_use.t Template-Alloy-1.020/t/15_tt_view.t Template-Alloy-1.020/t/02_cache.t Template-Alloy-1.020/t/11_tt_input_output.t Template-Alloy-1.020/t/05_tt_base.t Template-Alloy-1.020/t/30_velocity.t Template-Alloy-1.020/t/20_html_template.t Template-Alloy-1.020/t/10_tt_includes.t Template-Alloy-1.020/MANIFEST.SKIP Template-Alloy-1.020/Makefile.PL Template-Alloy-1.020/MANIFEST CPAN.pm: Building R/RH/RHANDOM/Template-Alloy-1.020.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Template::Alloy Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/Template/Alloy/Iterator.pm blib\lib\Template\Alloy\Iterator.pm cp lib/Template/Alloy/Compile.pm blib\lib\Template\Alloy\Compile.pm cp lib/Template/Alloy/TT.pm blib\lib\Template\Alloy\TT.pm cp lib/Template/Alloy/Exception.pm blib\lib\Template\Alloy\Exception.pm cp lib/Template/Alloy/Tmpl.pm blib\lib\Template\Alloy\Tmpl.pm cp lib/Template/Alloy/Context.pm blib\lib\Template\Alloy\Context.pm cp lib/Template/Alloy/Velocity.pm blib\lib\Template\Alloy\Velocity.pm cp lib/Template/Alloy/Play.pm blib\lib\Template\Alloy\Play.pm cp lib/Template/Alloy/Operator.pm blib\lib\Template\Alloy\Operator.pm cp lib/Template/Alloy/HTE.pm blib\lib\Template\Alloy\HTE.pm cp lib/Template/Alloy/VMethod.pm blib\lib\Template\Alloy\VMethod.pm cp lib/Template/Alloy.pod blib\lib\Template\Alloy.pod cp lib/Template/Alloy/Stream.pm blib\lib\Template\Alloy\Stream.pm cp lib/Template/Alloy.pm blib\lib\Template\Alloy.pm cp lib/Template/Alloy/Parse.pm blib\lib\Template\Alloy\Parse.pm RHANDOM/Template-Alloy-1.020.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00_use.t .............. 1..43 ok 1 - use Template::Alloy; ok 2 - Parse role isn't loaded yet ok 3 - But it can parse anyway ok 4 - Parse role is now loaded ok 5 - Can't import invalid method ok 6 - Play role isn't loaded yet ok 7 - It can be imported () ok 8 - Play role is now loaded ok 9 - Compile role isn't loaded yet ok 10 - It can be imported () ok 11 - Compile role is now loaded ok 12 - It can be imported twice () ok 13 - Velocity role isn't loaded yet ok 14 - It can be imported () ok 15 - Velocity role is now loaded ok 16 - Tmpl role isn't loaded yet ok 17 - It can be imported () ok 18 - Tmpl role is now loaded ok 19 - Text::Tmpl isn't loaded ok 20 - It can be imported () ok 21 - Text::Tmpl is now loaded ok 22 - Text::Tmpl is a Template::Alloy ok 23 - It can be imported twice ok 24 - HTML::Template isn't loaded ok 25 - It can't be imported because another non-Alloy package already is using it ok 26 - HTML::Template is not a Template::Alloy ok 27 - HTML::Template::Expr isn't loaded ok 28 - It can be imported () ok 29 - HTML::Template::Expr is now loaded ok 30 - HTML::Template::Expr is a Template::Alloy ok 31 - It can be imported twice ok 32 - TT role isn't loaded yet ok 33 - It can be imported via all () ok 34 - TT role is now loaded ok 35 - It can be imported twice () ok 36 - Template isn't loaded ok 37 - It can be imported () ok 38 - Template is now loaded ok 39 - Template is a Template::Alloy ok 40 - It can be imported twice ok 41 - Got an error on invalid methods (Can't locate object method "flabbergast" via package at t/00_use.t line 82. # ) ok 42 - Got an error on invalid methods (autoload error - Invalid method Template::Alloy::) ok 43 - Got an error on invalid methods (autoload error - Invalid method Template::Alloy::foo&bar) ok t/01_coverage.t ......... 1..31 ok 1 - use Template::Alloy; ok 2 - Initialize with hashref and get hashref based object ok 3 - Initialize with hash and get hashref based object ok 4 - Got an error for process_simple ok 5 - Got an error for process_simple ok 6 - Got an error for process_simple ok 7 - Ran process_simple without error ok 8 - Ran process_simple and threw error ok 9 - And got error ok 10 - Got right output ok 11 - Ran process_simple and stopped ok 12 - And got no error ok 13 - Got right output ok 14 - Ran _process ok 15 - And got error ok 16 - Got right output ok 17 - Ran _process and got error ok 18 - Ran _process ok 19 - And got error ok 20 - Got right output ok 21 - Ran _process (file error - foobar: not found) ok 22 - Ran _process (process error - No _perl and no _tree found) ok 23 - Ran _process ok 24 - Can't load_template without a file ok 25 - load_template assumes we know what we are doing if we pass a hash ok 26 - Can load a string block ok 27 - Can load a code block ok 28 - Can load a previously loaded template ok 29 - Can't load a poorly formed block ok 30 - Can't load a string block with parse errors ok 31 - Can't load a ref block ok t/02_cache.t ............ 1..205 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ok 3 - Got a test dir up and running ok 4 - Line 137: Found bar.tt in t/02_cache.t.test_dir ok 5 - Line 138: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 6 - Line 139: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 7 - Line 140: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 8 - Line 141: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 9 - Line 142: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 10 - Not in GLOBAL_CACHE ### COMPILE_PERL => 0 ################################################ ok 11 - Line 152 "bar.tt" => "BlueBAR" ok 12 - Line 154: Found bar.tt in t/02_cache.t.test_dir ok 13 - Line 155: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 14 - Line 156: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 15 - Line 157: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 16 - Line 158: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 17 - Line 159: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 18 - Not in GLOBAL_CACHE ok 19 - Line 167 "bar.tt" => "BlueBAR" ok 20 - Line 169: Found bar.tt in t/02_cache.t.test_dir ok 21 - Line 170: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 22 - Line 171: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 23 - Line 172: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 24 - Line 173: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 25 - Line 174: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 26 - Is in GLOBAL_CACHE ok 27 - Line 183 "bar.tt" => "BlueBAR" ok 28 - Is in CACHE ok 29 - Line 190 "bar.tt" => "BlueBAR" ok 30 - Line 192: Found bar.tt in t/02_cache.t.test_dir ok 31 - Line 193: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 32 - Line 194: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 33 - Line 195: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 34 - Line 196: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 35 - Line 197: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 36 - Line 204 "bar.tt" => "BlueBAR" ok 37 - Line 206: Found bar.tt in t/02_cache.t.test_dir ok 38 - Line 207: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 39 - Line 208: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 40 - Line 209: Found t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 41 - Line 210: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 42 - Line 211: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 43 - Line 218 "bar.tt" => "BlueBAR" ok 44 - Line 220: Found bar.tt in t/02_cache.t.test_dir ok 45 - Line 221: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 46 - Line 222: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 47 - Line 223: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 48 - Line 224: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 49 - Line 225: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 50 - Is in GLOBAL_CACHE ok 51 - Line 233 "bar.tt" => "BlueBAR" ok 52 - Line 235: Found bar.tt in t/02_cache.t.test_dir ok 53 - Line 236: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 54 - Line 237: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 55 - Line 238: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 56 - Line 239: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 57 - Line 240: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 58 - Is in GLOBAL_CACHE ok 59 - Doesn't Have perl ok 60 - Line 256 "bar.tt" => "füBAR ¥" ok 61 - Line 258: Found bar.tt in t/02_cache.t.test_dir ok 62 - Line 259: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 63 - Line 260: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 64 - Line 261: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 65 - Line 264 "bar.tt" => "füBAR ¥" ok 66 - lives ok ### COMPILE_PERL => 1 ################################################ ok 67 - Line 279 "bar.tt" => "BlueBAR" ok 68 - Line 281: Found bar.tt in t/02_cache.t.test_dir ok 69 - Line 282: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 70 - Line 283: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 71 - Line 284: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 72 - Line 285: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 73 - Line 286: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 74 - Not in GLOBAL_CACHE ok 75 - Line 294 "bar.tt" => "BlueBAR" ok 76 - Line 296: Found bar.tt in t/02_cache.t.test_dir ok 77 - Line 297: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 78 - Line 298: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 79 - Line 299: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 80 - Line 300: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 81 - Line 301: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 82 - Is in GLOBAL_CACHE ok 83 - Line 309 "bar.tt" => "BlueBAR" ok 84 - Line 311: Found bar.tt in t/02_cache.t.test_dir ok 85 - Line 312: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 86 - Line 313: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 87 - Line 314: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 88 - Line 315: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 89 - Line 316: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 90 - Line 323 "bar.tt" => "BlueBAR" ok 91 - Line 325: Found bar.tt in t/02_cache.t.test_dir ok 92 - Line 326: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 93 - Line 327: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 94 - Line 328: Found t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 95 - Line 329: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 96 - Line 330: Found t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 97 - Line 337 "bar.tt" => "BlueBAR" ok 98 - Line 339: Found bar.tt in t/02_cache.t.test_dir ok 99 - Line 340: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 100 - Line 341: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 101 - Line 342: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 102 - Line 343: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 103 - Line 344: Found t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 104 - Is in GLOBAL_CACHE ok 105 - Line 352 "bar.tt" => "BlueBAR" ok 106 - Line 354: Found bar.tt in t/02_cache.t.test_dir ok 107 - Line 355: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 108 - Line 356: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 109 - Line 357: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 110 - Line 358: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 111 - Line 359: Found t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 112 - Is in GLOBAL_CACHE ok 113 - Has perl ok 114 - Line 375 "bar.tt" => "füBAR ¥" ok 115 - Line 377: Found bar.tt in t/02_cache.t.test_dir ok 116 - Line 378: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 117 - Line 379: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 118 - Line 380: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 119 - Line 383 "bar.tt" => "füBAR ¥" ### COMPILE_PERL => 2 ################################################ ok 120 - Line 391 "bar.tt" => "BlueBAR" ok 121 - Line 393: Found bar.tt in t/02_cache.t.test_dir ok 122 - Line 394: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 123 - Line 395: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 124 - Line 396: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 125 - Is in GLOBAL_CACHE ok 126 - Doesn't Have perl ok 127 - Line 401 "bar.tt" => "BlueBAR" ok 128 - Line 403: Found bar.tt in t/02_cache.t.test_dir ok 129 - Line 404: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 130 - Line 405: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 131 - Line 406: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 132 - Is in GLOBAL_CACHE ok 133 - Has perl ### STRING_REF ####################################################### ok 134 - Line 419 "[% blue %]BAR" => "BlueBAR" ok 135 - Line 421: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 136 - Line 422: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 137 - Line 423: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 138 - Line 424: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 139 - Not in GLOBAL_CACHE ok 140 - Line 432 "[% blue %]BAR" => "BlueBAR" ok 141 - Line 434: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 142 - Line 435: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 143 - Line 436: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 144 - Line 437: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 145 - Is in GLOBAL_CACHE ok 146 - Doesn't Have perl ok 147 - Line 446 "[% blue %]BAR" => "BlueBAR" ok 148 - Line 448: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 149 - Line 449: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 150 - Line 450: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 151 - Line 451: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 152 - Not in GLOBAL_CACHE ok 153 - Line 459 "[% blue %]BAR" => "BlueBAR" ok 154 - Line 461: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 155 - Line 462: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 156 - Line 463: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 157 - Line 464: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 158 - Not in GLOBAL_CACHE ok 159 - Line 472 "[% blue %]BAR" => "BlueBAR" ok 160 - Line 474: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 161 - Line 475: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 162 - Line 476: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 163 - Line 477: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 164 - Not in GLOBAL_CACHE ok 165 - Line 485 "[% blue %]BAR" => "BlueBAR" ok 166 - Line 487: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 167 - Line 488: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 168 - Line 489: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 169 - Line 490: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 170 - Is in GLOBAL_CACHE ok 171 - Has perl ok 172 - Line 499 "[% blue %]BAR" => "BlueBAR" ok 173 - Line 501: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 174 - Line 502: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 175 - Line 503: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 176 - Line 504: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 177 - Is in GLOBAL_CACHE ok 178 - Doesn't Have perl ok 179 - Line 509 "[% blue %]BAR" => "BlueBAR" ok 180 - Line 511: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 181 - Line 512: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 182 - Line 513: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 183 - Line 514: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 184 - Is in GLOBAL_CACHE ok 185 - Now has perl ok 186 - Line 523 "[% blue %]BAR" => "BlueBAR" ok 187 - Line 525: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 188 - Line 526: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 189 - Line 527: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir2 ok 190 - Line 528: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir2 ok 191 - Line 535 "[% blue %]BAR" => "BlueBAR" ok 192 - Line 537: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 193 - Line 538: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 194 - Line 539: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.sto in t/02_cache.t.test_dir ok 195 - Line 540: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.pl in t/02_cache.t.test_dir ok 196 - Line 547 "[% blue %]BAR" => "BlueBAR" ok 197 - Line 549: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 198 - Line 550: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 199 - Line 551: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir2 ok 200 - Line 552: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir2 ok 201 - Line 559 "[% blue %]BAR" => "BlueBAR" ok 202 - Line 561: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 203 - Line 562: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 204 - Line 563: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.sto in t/02_cache.t.test_dir ok 205 - Line 564: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.pl in t/02_cache.t.test_dir ### DONE ############################################################# ok # testing stderr ... ok # testing stderr ... ok # testing stderr ... ok t/05_tt_base.t .......... 1..3263 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### GET ############################################# engine_option (normal) ok 3 - Line 156 "[% foo %]" => "" ok 4 - Line 157 "[% foo %]" => "7" ok 5 - Line 158 "[% foo %]" => "7" ok 6 - Line 159 "[% foo %]" => "7" ok 7 - Line 160 "[% foo %]" => "Stash" ok 8 - Line 161 "[% foo %]" => "V" ok 9 - Line 162 "[% bar %]" => "" ok 10 - Line 163 "[% foo %]" => "Stash" ok 11 - Line 164 "[% bar %]" => "" ok 12 - Line 165 "[% foo %]" => "Stash" ok 13 - Line 166 "[% foo %]" => "Stash" ok 14 - Line 167 "[% foo %][% foo %][% foo %]" => "777" ok 15 - Line 168 "[% foo() %]" => "7" ok 16 - Line 169 "[% foo.bar %]" => "" ok 17 - Line 170 "[% foo.bar %]" => "" ok 18 - Line 171 "[% foo.bar %]" => "7" ok 19 - Line 172 "[% foo().bar %]" => "7" ok 20 - Line 173 "[% foo.0 %]" => "7" ok 21 - Line 174 "[% foo.10 %]" => "" ok 22 - Line 175 "[% foo %]" => "7" ok 23 - Line 176 "[% foo(7) %]" => "7" ok 24 - Line 177 "[% foo.length %]" => "1" ok 25 - Line 178 "[% foo.0 %]" => "7" ok 26 - Line 179 "[% foo(bar) %]" => "7" ok 27 - Line 180 "[% foo(bar.baz) %]" => "7" ok 28 - Line 181 "[% foo.seven %]" => "7" ok 29 - Line 182 "[% foo.seven() %]" => "7" ok 30 - Line 183 "[% foo.seven.length %]" => "1" ok 31 - Line 184 "[% foo.echo(7) %]" => "7" ok 32 - Line 185 "[% foo.many.0 %]" => "1" ok 33 - Line 186 "[% foo.many.10 %]" => "" ok 34 - Line 187 "[% foo.nomethod %]" => "" ok 35 - Line 188 "[% foo.nomethod.0 %]" => "" ok 36 - Line 190 "[% GET foo %]" => "" ok 37 - Line 191 "[% GET foo %]" => "7" ok 38 - Line 192 "[% GET foo.bar %]" => "" ok 39 - Line 193 "[% GET foo.bar %]" => "" ok 40 - Line 194 "[% GET foo.bar %]" => "7" ok 41 - Line 195 "[% GET foo.0 %]" => "7" ok 42 - Line 196 "[% GET foo %]" => "7" ok 43 - Line 197 "[% GET foo(7) %]" => "7" ok 44 - Line 199 "[% $name %]" => "" ok 45 - Line 200 "[% $name %]" => "7" ok 46 - Line 201 "[% $name.bar %]" => "" ok 47 - Line 202 "[% $name.bar %]" => "" ok 48 - Line 203 "[% $name.bar %]" => "7" ok 49 - Line 204 "[% $name().bar %]" => "7" ok 50 - Line 205 "[% $name.0 %]" => "7" ok 51 - Line 206 "[% $name %]" => "7" ok 52 - Line 207 "[% $name(7) %]" => "7" ok 53 - Line 209 "[% GET $name %]" => "" ok 54 - Line 210 "[% GET $name %]" => "7" ok 55 - Line 211 "[% GET $name.bar %]" => "" ok 56 - Line 212 "[% GET $name.bar %]" => "" ok 57 - Line 213 "[% GET $name.bar %]" => "7" ok 58 - Line 214 "[% GET $name.0 %]" => "7" ok 59 - Line 215 "[% GET $name %]" => "7" ok 60 - Line 216 "[% GET $name(7) %]" => "7" ok 61 - Line 218 "[% $name %]" => "" ok 62 - Line 219 "[% GET $name %]" => "" ok 63 - Line 221 "[% ${name} %]" => "" ok 64 - Line 222 "[% ${name} %]" => "7" ok 65 - Line 223 "[% ${name}.bar %]" => "" ok 66 - Line 224 "[% ${name}.bar %]" => "" ok 67 - Line 225 "[% ${name}.bar %]" => "7" ok 68 - Line 226 "[% ${name}().bar %]" => "7" ok 69 - Line 227 "[% ${name}.0 %]" => "7" ok 70 - Line 228 "[% ${name} %]" => "7" ok 71 - Line 229 "[% ${name}(7) %]" => "7" ok 72 - Line 231 "[% GET ${name} %]" => "" ok 73 - Line 232 "[% GET ${name} %]" => "7" ok 74 - Line 233 "[% GET ${name}.bar %]" => "" ok 75 - Line 234 "[% GET ${name}.bar %]" => "" ok 76 - Line 235 "[% GET ${name}.bar %]" => "7" ok 77 - Line 236 "[% GET ${name}.0 %]" => "7" ok 78 - Line 237 "[% GET ${name} %]" => "7" ok 79 - Line 238 "[% GET ${name}(7) %]" => "7" ok 80 - Line 240 "[% ${name} %]" => "" ok 81 - Line 241 "[% GET ${name} %]" => "" ok 82 - Line 242 "[% GET ${'foo'} %]" => "bar" ok 83 - Line 244 "[% foo.$name %]" => "" ok 84 - Line 245 "[% foo.$name %]" => "7" ok 85 - Line 246 "[% foo.$name.baz %]" => "" ok 86 - Line 248 "[% "hi" %]" => "hi" ok 87 - Line 249 "[% "hi %]" => "" ok 88 - Line 250 "[% 'hi' %]" => "hi" ok 89 - Line 251 "[% 'hi %]" => "" ok 90 - Line 252 "[% "$foo" %]" => "7" ok 91 - Line 253 "[% "hi $foo" %]" => "hi 7" ok 92 - Line 254 "[% "hi ${foo}" %]" => "hi 7" ok 93 - Line 255 "[% 'hi $foo' %]" => "hi $foo" ok 94 - Line 256 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 95 - Line 257 "[% 7 %]" => "7" ok 96 - Line 258 "[% -7 %]" => "-7" ok 97 - Line 260 "[% "hi ${foo.seven}" %]" => "hi 7" ok 98 - Line 261 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 99 - Line 263 "[% _foo %]2" => "2" ok 100 - Line 264 "[% $bar %]2" => "2" ok 101 - Line 265 "[% __foo %]2" => "2" ok 102 - Line 267 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 103 - Line 268 "[% [0..10].-1 %]" => "10" ok 104 - Line 269 "[% [0..10].${ 2.3 } %]" => "2" ok 105 - Line 271 "[% (1 + 2)() %]" => "" ok 106 - Line 272 "[% (1 + 2) %]" => "3" ok 107 - Line 273 "[% (a) %]" => "2" ok 108 - Line 274 "[% ('foo') %]" => "foo" ok 109 - Line 275 "[% (a(2)) %]" => "2" ok 110 - Line 278 "[% JS 3 %]" => "3" ok 111 - Line 279 "[% JS 3 %]" => "43" ok 112 - Line 280 "[% JS; 3; END %]" => "" ### SET ############################################# engine_option (normal) ok 113 - Line 285 "[% SET foo bar %][% foo %]" => "" ok 114 - Line 286 "[% SET foo = 1 %][% foo %]" => "1" ok 115 - Line 287 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 116 - Line 288 "[% SET foo bar = 1 %][% foo %]" => "" ok 117 - Line 289 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 118 - Line 290 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 119 - Line 292 "[% SET foo = [] %][% foo.0 %]" => "" ok 120 - Line 293 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 121 - Line 294 "[% SET foo = {} %][% foo.0 %]" => "" ok 122 - Line 295 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 123 - Line 296 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 124 - Line 298 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 125 - Line 299 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 126 - Line 300 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 127 - Line 301 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 128 - Line 302 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 129 - Line 303 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 130 - Line 304 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 131 - Line 305 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 132 - Line 307 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 133 - Line 308 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 134 - Line 310 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 135 - Line 311 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 136 - Line 313 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 137 - Line 315 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 138 - Line 316 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 139 - Line 317 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 140 - Line 318 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 141 - Line 320 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 142 - Line 321 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 143 - Line 322 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 144 - Line 323 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 145 - Line 324 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 146 - Line 325 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 147 - Line 326 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 148 - Line 327 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 149 - Line 328 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 150 - Line 329 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 151 - Line 331 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 152 - Line 332 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 153 - Line 333 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 154 - Line 334 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 155 - Line 335 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 156 - Line 336 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 157 - Line 337 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 158 - Line 338 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 159 - Line 339 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 160 - Line 341 "[% foo = 1 %][% foo %]" => "1" ok 161 - Line 342 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 162 - Line 343 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 163 - Line 345 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 164 - Line 346 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 165 - Line 348 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 166 - Line 350 "[% _foo = 1 %][% _foo %]2" => "2" ok 167 - Line 351 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (normal) ok 168 - Line 356 "[% foo; %]" => "1" ok 169 - Line 357 "[% GET foo; %]" => "1" ok 170 - Line 358 "[% GET foo; GET foo %]" => "11" ok 171 - Line 359 "[% GET foo GET foo %]" => "11" ok 172 - Line 360 "[% GET foo GET foo %]" => "" ok 173 - Line 362 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 174 - Line 363 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 175 - Line 364 "[% a = 1 a = a + 2 a %]" => "3" ok 176 - Line 366 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 177 - Line 367 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 178 - Line 368 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (normal) ok 179 - Line 374 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 180 - Line 375 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 181 - Line 376 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 182 - Line 379 "[% foo %]" => "hi" ok 183 - Line 380 "[% GET foo %]" => "hi" ok 184 - Line 381 "[% CALL foo %]" => "" ok 185 - CALL method actually called var ### scalar vmethods ################################# engine_option (normal) ok 186 - Line 388 "[% n.0 %]" => "7" ok 187 - Line 389 "[% n.abs %]" => "7" ok 188 - Line 390 "[% n.abs %]" => "7" ok 189 - Line 391 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 190 - Line 392 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 191 - Line 393 "[% n.chunk(3).join %]" => "abc def g" ok 192 - Line 394 "[% n.chunk(-3).join %]" => "a bcd efg" ok 193 - Line 395 "[% n|collapse %]" => "a b" ok 194 - Line 396 "[% n.cos.substr(0,5) %]" => "1" ok 195 - Line 397 "[% n.cos.substr(0,5) %]" => "0.707" ok 196 - Line 398 "[% n.defined %]" => "1" ok 197 - Line 399 "[% n.defined %]" => "" ok 198 - Line 400 "[% n.defined %]" => "1" ok 199 - Line 401 "[% n.dquote %]" => "(\n|\\|\")" ok 200 - Line 402 "[% n.exp.substr(0,5) %]" => "2.718" ok 201 - Line 403 "[% n.exp.log.substr(0,5) %]" => "8" ok 202 - Line 404 "[% n.fmt %]" => "7" ok 203 - Line 405 "[% n.fmt('%02d') %]" => "07" ok 204 - Line 406 "[% n.fmt('%0*d', 3) %]" => "007" ok 205 - Line 407 "[% n.fmt('(%s)') %]" => "(a # b)" ok 206 - Line 408 "[% n|format('%02d') %]" => "07" ok 207 - Line 409 "[% n|format('%0*d', 3) %]" => "007" ok 208 - Line 410 "[% n|format('(%s)') %]" => "(a) # (b)" ok 209 - Line 411 "[% n.hash.items.1 %]" => "b" ok 210 - Line 412 "[% n.hex %]" => "255" ok 211 - Line 413 "[% n|html %]" => "&<>"'" ok 212 - Line 414 "[% n|html_entity %]" => "&" ok 213 - Line 415 "[% n|xml %]" => "&<>"'" ok 214 - Line 416 "[% n|indent %]" => " a # b" ok 215 - Line 417 "[% n|indent(2) %]" => " a # b" ok 216 - Line 418 "[% n|indent('wow ') %]" => "wow a # wow b" ok 217 - Line 419 "[% n.int %]" => "123" ok 218 - Line 420 "[% n.int %]" => "123" ok 219 - Line 421 "[% n.int %]" => "0" ok 220 - Line 422 "[% n.item %]" => "7" ok 221 - Line 423 "[% n.lc %]" => "abc" ok 222 - Line 424 "[% n|lcfirst %]" => "fOO" ok 223 - Line 425 "[% n.length %]" => "3" ok 224 - Line 426 "[% n.list.0 %]" => "abc" ok 225 - Line 427 "[% n.log.substr(0,5) %]" => "4.605" ok 226 - Line 428 "[% n|lower %]" => "abc" ok 227 - Line 429 "[% n.match('foo').join %]" => "" ok 228 - Line 430 "[% n.match('foo').join %]" => "1" ok 229 - Line 431 "[% n.match('foo',1).join %]" => "foo" ok 230 - Line 432 "[% n.match('(foo)').join %]" => "foo" ok 231 - Line 433 "[% n.match('(foo)').join %]" => "foo" ok 232 - Line 434 "[% n.match('(foo)',1).join %]" => "foo foo" ok 233 - Line 435 "[% n.null %]" => "" ok 234 - Line 436 "[% n.oct %]" => "255" ok 235 - Line 437 "[% n.rand %]" => "1.95047302186322" ok 236 - Line 438 "[% n.rand %]" => "0.490925404566468" ok 237 - Line 439 "[% n.remove('bc') %]" => "a" ok 238 - Line 440 "[% n.remove('bc') %]" => "aa" ok 239 - Line 441 "[% n.repeat %]" => "1" ok 240 - Line 442 "[% n.repeat(0) %]" => "" ok 241 - Line 443 "[% n.repeat(1) %]" => "1" ok 242 - Line 444 "[% n.repeat(2) %]" => "11" ok 243 - Line 445 "[% n.repeat(2,'|') %]" => "1|1" ok 244 - Line 446 "[% n.replace('foo', 'bar') %]" => "barbar" ok 245 - Line 447 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 246 - Line 448 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 247 - Line 449 "[% n.search('foo') %]" => "" ok 248 - Line 450 "[% n.search('foo') %]" => "1" ok 249 - Line 451 "[% n.sin.substr(0,5) %]" => "0" ok 250 - Line 452 "[% n.sin.substr(0,5) %]" => "1" ok 251 - Line 453 "[% n.size %]" => "1" ok 252 - Line 454 "[% n.split.join('|') %]" => "abc" ok 253 - Line 455 "[% n.split.join('|') %]" => "a|b|c" ok 254 - Line 456 "[% n.split.join('|') %]" => "a|b|c" ok 255 - Line 457 "[% n.split(u,2).join('|') %]" => "a|b c" ok 256 - Line 459 "[% n.split('/').join('|') %]" => "a|b|c" ok 257 - Line 460 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 258 - Line 461 "[% n.sprintf(7) %]" => "7" ok 259 - Line 462 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 260 - Line 463 "[% n.sqrt %]" => "3" ok 261 - Line 464 "[% n.squote %]" => "( # |\\|\')" ok 262 - Line 465 "[% n.srand; 12 %]" => "12" ok 263 - Line 466 "[% n.stderr %]" => "" ok 264 - Line 467 "[% n|trim %]" => "a b" ok 265 - Line 468 "[% n.uc %]" => "FOO" ok 266 - Line 469 "[% n|ucfirst %]" => "Foo" ok 267 - Line 470 "[% n|upper %]" => "FOO" ok 268 - Line 471 "[% n|uri %]" => "a%20b" ok 269 - Line 473 "[% n.fmt('%c') %]" => "B" ok 270 - Line 474 "[% n.fmt('%3X') %]" => " C" ok 271 - Line 475 "[% n.fmt('%-3X') %]" => "C " ok 272 - Line 476 "[% n.fmt('%03X') %]" => "00C" ok 273 - Line 477 "[% n.fmt('%03X') %]" => "00C" ok 274 - Line 478 "[% n.fmt('%\#03X') %]" => "0XC" ok 275 - Line 479 "[% n.fmt('%\#07X') %]" => "0X0000C" ok 276 - Line 481 "[% n.fmt('%o') %]" => "10" ok 277 - Line 482 "[% n.fmt('%\#o') %]" => "010" ok 278 - Line 483 "[% n.fmt('%\#o') %]" => "0" ok 279 - Line 485 "[% n.fmt('%02d') %]" => "07" ok 280 - Line 486 "[% n.fmt('%04.2d') %]" => " 07" ok 281 - Line 487 "[% n.fmt('%+04.2d') %]" => " +07" ok 282 - Line 488 "[% n.fmt('% 04.2d') %]" => " 07" ok 283 - Line 489 "[% n.fmt('% +04.2d') %]" => " +07" ok 284 - Line 490 "[% n.fmt('%02f') %]" => "7.000000" ok 285 - Line 491 "[% n.fmt('%04.2f') %]" => "7.00" ok 286 - Line 492 "[% n.fmt('%05.2f') %]" => "07.00" ok 287 - Line 493 "[% n.fmt('% 5.2f') %]" => " 7.00" ok 288 - Line 494 "[% n.fmt('%+04.2f') %]" => "+7.00" ok 289 - Line 495 "[% n.fmt('% 04.2f') %]" => " 7.00" ok 290 - Line 496 "[% n.fmt('% +6.2f') %]" => " +7.00" ok 291 - Line 497 "[% n.fmt('%0+6.2f') %]" => "+07.00" ok 292 - Line 498 "[% n.fmt('%.5g') %]" => "12345" ok 293 - Line 499 "[% n.fmt('%.5g') %]" => "1.2346e+006" ### list vmethods ################################### engine_option (normal) ok 294 - Line 504 "[% a.defined %]" => "1" ok 295 - Line 505 "[% a.defined(1) %]" => "1" ok 296 - Line 506 "[% a.defined(3) %]" => "" ok 297 - Line 507 "[% a.first %]" => "2" ok 298 - Line 508 "[% a.first(3).join %]" => "2 3 4" ok 299 - Line 509 "[% a.fmt %]" => "2 3" ok 300 - Line 510 "[% a.fmt('%02d') %]" => "02 03" ok 301 - Line 511 "[% a.fmt('%02d',' ') %]" => "02 03" ok 302 - Line 512 "[% a.fmt('%02d','|') %]" => "02|03" ok 303 - Line 513 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 304 - Line 514 "[% a.grep.join %]" => "2 3" ok 305 - Line 515 "[% a.grep(2).join %]" => "2" ok 306 - Line 516 "[% a.grep(->(n){n % 2}).join %]" => "3 5 7" ok 307 - Line 517 "[% a.hash.items.join %]" => "2 3" ok 308 - Line 518 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 309 - Line 519 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 310 - Line 521 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 311 - Line 523 "[% a.item %]" => "2" ok 312 - Line 524 "[% a.item(1) %]" => "3" ok 313 - Line 525 "[% a.join %]" => "2 3" ok 314 - Line 526 "[% a.join('|') %]" => "2|3" ok 315 - Line 527 "[% a.last %]" => "10" ok 316 - Line 528 "[% a.last(3).join %]" => "8 9 10" ok 317 - Line 529 "[% a.list.join %]" => "2 3" ok 318 - Line 530 "[% a.map(->(n){ n.repeat(3) }).join %]" => "222 333" ok 319 - Line 531 "[% a.max %]" => "1" ok 320 - Line 532 "[% a.merge(5).join %]" => "2 3" ok 321 - Line 533 "[% a.merge([5]).join %]" => "2 3 5" ok 322 - Line 534 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 323 - Line 535 "[% a.nsort.join %]" => "1 2 3" ok 324 - Line 536 "[% a.nsort('b').0.b %]" => "7" ok 325 - Line 537 "[% a.pop %][% a.join %]" => "32" ok 326 - Line 538 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 327 - Line 539 "[% a.pick %]" => "2" ok 328 - Line 540 "[% a.pick(5).join('') %]" => "23223" ok 329 - Line 541 "[% a.reverse.join %]" => "3 2" ok 330 - Line 542 "[% a.shift %][% a.join %]" => "23" ok 331 - Line 543 "[% a.size %]" => "2" ok 332 - Line 544 "[% a.slice.join %]" => "2 3 4 5" ok 333 - Line 545 "[% a.slice(2).join %]" => "4 5" ok 334 - Line 546 "[% a.slice(0,2).join %]" => "2 3 4" ok 335 - Line 547 "[% a.sort.join %]" => "1 2 3" ok 336 - Line 548 "[% a.sort('b').0.b %]" => "wee" ok 337 - Line 549 "[% c.sort(->(a,b){ a.k cmp b.k }).map(->{this.k}).join %]" => "a wee wow" ok 338 - Line 550 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 339 - Line 551 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 340 - Line 552 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 341 - Line 553 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 342 - Line 554 "[% a.unique.join %]" => "2 3" ok 343 - Line 555 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (normal) ok 344 - Line 560 "[% h.defined %]" => "1" ok 345 - Line 561 "[% h.defined('a') %]" => "1" ok 346 - Line 562 "[% h.defined('b') %]" => "" ok 347 - Line 563 "[% h.defined('a') %]" => "" ok 348 - Line 564 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 349 - Line 565 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 350 - Line 566 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 351 - Line 567 "[% h.each.sort.join %]" => "1 2 a b" ok 352 - Line 568 "[% h.exists('a') %]" => "1" ok 353 - Line 569 "[% h.exists('b') %]" => "" ok 354 - Line 570 "[% h.exists('a') %]" => "1" ok 355 - Line 571 "[% h.fmt %]" => "b B # c C" ok 356 - Line 572 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 357 - Line 573 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 358 - Line 574 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 359 - Line 575 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 360 - Line 576 "[% h.hash.fmt %]" => "b B # c C" ok 361 - Line 577 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 362 - Line 578 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 363 - Line 579 "[% h.item('a') %]" => "A" ok 364 - Line 580 "[% h.item('_a') %]" => "" ok 365 - Line 581 "[% h.items.sort.join %]" => "1 2 a b" ok 366 - Line 582 "[% h.keys.sort.join %]" => "a b" ok 367 - Line 583 "[% h.list('each').sort.join %]" => "1 2 a b" ok 368 - Line 584 "[% h.list('keys').sort.join %]" => "a b" ok 369 - Line 585 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 370 - Line 586 "[% h.list('values').sort.join %]" => "1 2" ok 371 - Line 587 "[% h.null %]" => "" ok 372 - Line 588 "[% h.nsort.join %]" => "b a" ok 373 - Line 589 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 374 - Line 590 "[% h.size %]" => "2" ok 375 - Line 591 "[% h.sort.join %]" => "b a" ok 376 - Line 592 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (normal) ok 377 - Line 597 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 378 - Line 598 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 379 - Line 599 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 380 - Line 600 "[% int(2.234) %]" => "2" ok 381 - Line 602 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (normal) ok 382 - Line 607 "[% [0 .. 10].reverse.1 %]" => "9" ok 383 - Line 608 "[% {a => 'A'}.a %]" => "A" ok 384 - Line 609 "[% 'This is a string'.length %]" => "16" ok 385 - Line 610 "[% 123.length %]" => "3" ok 386 - Line 611 "[% 123.2.length %]" => "5" ok 387 - Line 612 "[% -123.2.length %]" => "-5" ok 388 - Line 613 "[% (-123.2).length %]" => "6" ok 389 - Line 614 "[% a = 23; a.0 %]" => "23" ok 390 - Line 615 "[% 1.rand %]" => "0.15075242533052" ok 391 - Line 617 "[% n.size %]" => "SIZE" ok 392 - Line 618 "[% n|size %]" => "2" ok 393 - Line 620 "[% "1" | indent(2) %]" => " 1" ok 394 - Line 622 "[% n FILTER size %]" => "1" ok 395 - Line 624 "[% n FILTER repeat %]" => "1" ok 396 - Line 625 "[% n FILTER repeat(0) %]" => "" ok 397 - Line 626 "[% n FILTER repeat(1) %]" => "1" ok 398 - Line 627 "[% n FILTER repeat(2) %]" => "11" ok 399 - Line 628 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 400 - Line 630 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 401 - Line 631 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 402 - Line 632 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 403 - Line 633 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 404 - Line 634 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 405 - Line 635 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 406 - Line 637 "[% "hi" FILTER $foo %]" => "hihi" ok 407 - Line 638 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 408 - Line 639 "[% "hi" FILTER foo %]" => "hihi" ok 409 - Line 640 "[% "hi" FILTER foo %]" => "hihi" ok 410 - Line 641 "[% "hi" FILTER foo(2) %]" => "hihi" ok 411 - Line 643 "[% ["0".."9"].pick %]" => "9" ok 412 - Line 645 "[% ' ' | uri %]" => "%20" ok 413 - Line 647 "[% "one".fmt %]" => "one" ok 414 - Line 648 "[% 2.fmt("%02d") %]" => "02" ok 415 - Line 650 "[% [1..3].fmt %]" => "1 2 3" ok 416 - Line 651 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 417 - Line 652 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 418 - Line 654 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 419 - Line 655 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 420 - Line 656 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 421 - Line 658 "[% 1|format("%s") %]" => "1" ok 422 - Line 659 "[% 1|format("%*s", 6) %]" => " 1" ok 423 - Line 660 "[% 1|format("%-*s", 6) %]" => "1 " ok 424 - Line 662 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 425 - Line 663 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 426 - Line 664 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ok 427 - Line 666 "[% foo %]" => "&" ok 428 - Line 667 "[% "&" %]" => "&" ok 429 - Line 668 "[% foo | none %]" => "&" ok 430 - Line 669 "[% foo.bar %]" => "&" ok 431 - Line 670 "[% foo.bar | none %]" => "&" ok 432 - Line 671 "[% GET foo %]" => "&" ok 433 - Line 672 "[% GET "&" %]" => "&" ok 434 - Line 673 "[% GET foo | none %]" => "&" ok 435 - Line 674 "[% Text.length(foo) %]" => "1" ### virtual objects ################################# engine_option (normal) ok 436 - Line 679 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 437 - Line 680 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 438 - Line 681 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 439 - Line 683 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 440 - Line 684 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 441 - Line 685 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 442 - Line 686 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 443 - Line 687 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 444 - Line 689 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (normal) ok 445 - Line 694 " [% foo %]" => " " ok 446 - Line 695 " [%- foo %]" => "" ok 447 - Line 696 " # [%- foo %]" => "" ok 448 - Line 697 " # [%- foo %]" => "" ok 449 - Line 698 " # # [%- foo %]" => " # " ok 450 - Line 699 " # # [%- foo %]" => " # " ok 451 - Line 700 " # [%- foo %]" => " " ok 452 - Line 701 " # # [%- foo %]" => " # " ok 453 - Line 703 "[% 7 %] " => "7 " ok 454 - Line 704 "[% 7 -%] " => "7 " ok 455 - Line 705 "[% 7 -%] # " => "7" ok 456 - Line 706 "[% 7 -%] # " => "7" ok 457 - Line 707 "[% 7 -%] # " => "7 " ok 458 - Line 708 "[% 7 -%] # # # " => "7 # # " ok 459 - Line 709 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (normal) ok 460 - Line 714 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 461 - Line 715 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 462 - Line 716 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 463 - Line 717 "[% "b" gt "c" %]<<<" => "<<<" ok 464 - Line 718 "[% "b" gt "a" %]<<<" => "1<<<" ok 465 - Line 719 "[% "b" ge "c" %]<<<" => "<<<" ok 466 - Line 720 "[% "b" ge "b" %]<<<" => "1<<<" ok 467 - Line 721 "[% "b" lt "c" %]<<<" => "1<<<" ok 468 - Line 722 "[% "b" lt "a" %]<<<" => "<<<" ok 469 - Line 723 "[% "b" le "a" %]<<<" => "<<<" ok 470 - Line 724 "[% "b" le "b" %]<<<" => "1<<<" ok 471 - Line 725 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 472 - Line 726 "[% "b" cmp "b" %]<<<" => "0<<<" ok 473 - Line 727 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (normal) ok 474 - Line 732 "[% 1 + 2 %]" => "3" ok 475 - Line 733 "[% 1 + 2 + 3 %]" => "6" ok 476 - Line 734 "[% (1 + 2) %]" => "3" ok 477 - Line 735 "[% 2 - 1 %]" => "1" ok 478 - Line 736 "[% -1 + 2 %]" => "1" ok 479 - Line 737 "[% -1+2 %]" => "1" ok 480 - Line 738 "[% 2 - 1 %]" => "1" ok 481 - Line 739 "[% 2-1 %]" => "1" ok 482 - Line 740 "[% 2 - -1 %]" => "3" ok 483 - Line 741 "[% 4 * 2 %]" => "8" ok 484 - Line 742 "[% 4 / 2 %]" => "2" ok 485 - Line 743 "[% 10 / 3 %]" => "3.33333333333333" ok 486 - Line 744 "[% 10 div 3 %]" => "3" ok 487 - Line 745 "[% 2 ** 3 %]" => "8" ok 488 - Line 746 "[% 1 + 2 * 3 %]" => "7" ok 489 - Line 747 "[% 3 * 2 + 1 %]" => "7" ok 490 - Line 748 "[% (1 + 2) * 3 %]" => "9" ok 491 - Line 749 "[% 3 * (1 + 2) %]" => "9" ok 492 - Line 750 "[% 1 + 2 ** 3 %]" => "9" ok 493 - Line 751 "[% 2 * 2 ** 3 %]" => "16" ok 494 - Line 752 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 495 - Line 753 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 496 - Line 755 "[% a = 1; (a += 2) %]" => "3" ok 497 - Line 756 "[% a = 1; (a -= 2) %]" => "-1" ok 498 - Line 757 "[% a = 4; (a /= 2) %]" => "2" ok 499 - Line 758 "[% a = 1; (a *= 2) %]" => "2" ok 500 - Line 759 "[% a = 3; (a **= 2) %]" => "9" ok 501 - Line 760 "[% a = 1; (a %= 2) %]" => "1" ok 502 - Line 761 "[% a = 1; (a += 2 + 3) %]" => "6" ok 503 - Line 762 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 504 - Line 763 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 505 - Line 765 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 506 - Line 766 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 507 - Line 768 "[% a = 2; a -= 3; a %]" => "-1" ok 508 - Line 769 "[% a = 2; a *= 3; a %]" => "6" ok 509 - Line 770 "[% a = 2; a /= .5; a %]" => "4" ok 510 - Line 771 "[% a = 8; a %= 3; a %]" => "2" ok 511 - Line 772 "[% a = 2; a **= 3; a %]" => "8" ok 512 - Line 774 "[% a = 1 %][% ++a %][% a %]" => "22" ok 513 - Line 775 "[% a = 1 %][% a++ %][% a %]" => "12" ok 514 - Line 776 "[% a = 1 %][% --a %][% a %]" => "00" ok 515 - Line 777 "[% a = 1 %][% a-- %][% a %]" => "10" ok 516 - Line 778 "[% a++ FOR [1..3] %]" => "012" ok 517 - Line 779 "[% --a FOR [1..3] %]" => "-1-2-3" ok 518 - Line 781 "[% 2 > 3 %]<<<" => "<<<" ok 519 - Line 782 "[% 2 > 1 %]<<<" => "1<<<" ok 520 - Line 783 "[% 2 >= 3 %]<<<" => "<<<" ok 521 - Line 784 "[% 2 >= 2 %]<<<" => "1<<<" ok 522 - Line 785 "[% 2 < 3 %]<<<" => "1<<<" ok 523 - Line 786 "[% 2 < 1 %]<<<" => "<<<" ok 524 - Line 787 "[% 2 <= 1 %]<<<" => "<<<" ok 525 - Line 788 "[% 2 <= 2 %]<<<" => "1<<<" ok 526 - Line 789 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 527 - Line 790 "[% 2 <=> 2 %]<<<" => "0<<<" ok 528 - Line 791 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (normal) ok 529 - Line 796 "[% 5 && 6 %]" => "6" ok 530 - Line 797 "[% 5 || 6 %]" => "5" ok 531 - Line 798 "[% 0 || 6 %]" => "6" ok 532 - Line 799 "[% 0 && 6 %]" => "0" ok 533 - Line 800 "[% 0 && 0 %]" => "0" ok 534 - Line 801 "[% 5 && 6 && 7%]" => "7" ok 535 - Line 802 "[% 0 || 1 || 2 %]" => "1" ok 536 - Line 804 "[% 5 + (0 || 5) %]" => "10" ok 537 - Line 807 "[% 1 ? 2 : 3 %]" => "2" ok 538 - Line 808 "[% 0 ? 2 : 3 %]" => "3" ok 539 - Line 809 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 540 - Line 810 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 541 - Line 812 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 542 - Line 813 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 543 - Line 814 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 544 - Line 816 "[% 0 ? 2 : 3 %]" => "3" ok 545 - Line 817 "[% 1 ? 2 : 3 %]" => "2" ok 546 - Line 818 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 547 - Line 819 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 548 - Line 820 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 549 - Line 821 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 550 - Line 822 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 551 - Line 824 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 552 - Line 826 "[% foo //= 2 ; foo %]" => "2" ok 553 - Line 827 "[% foo = 3; foo //= 2; foo %]" => "3" ok 554 - Line 828 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 555 - Line 830 "[% 5 // 6 %]" => "5" ok 556 - Line 831 "[% foo // 6 %]" => "6" ok 557 - Line 832 "[% foo // 6 %]" => "6" ok 558 - Line 833 "[% foo // 6 %]" => "" ok 559 - Line 834 "[% foo // 6 %]" => "bar" ok 560 - Line 836 "[% foo err 6 %]" => "6" ok 561 - Line 837 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (normal) ok 562 - Line 843 "[% 'foo'.match(/foo/) ? 1 : 0 %]" => "1" ok 563 - Line 844 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 564 - Line 845 "[% 'foo'.match(/fo o/x) ? 1 : 0 %]" => "1" ok 565 - Line 846 "[% 'foo'.match(/Foo/i) ? 1 : 0 %]" => "1" ok 566 - Line 847 "[% 'f # o'.match(/f.o/s) ? 1 : 0 %]" => "1" ok 567 - Line 848 "[% ' # foo'.match(/^foo/m) ? 1 : 0 %]" => "1" ok 568 - Line 849 "[% 'foo'.match(/foo/e) ? 1 : 0 %]" => "" ok 569 - Line 850 "[% 'foo'.match(/foo/g) ? 1 : 0 %]" => "" ok 570 - Line 851 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 571 - Line 852 "[% 'foo'.match(/foo**/) ? 1 : 0 %]" => "" ok 572 - Line 853 "[% 'fo/o'.match(/fo\/o/) ? 1 : 0 %]" => "1" ok 573 - Line 854 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE / WRAPPER ############# engine_option (normal) ok 574 - Line 860 "[% PROCESS foo %]one" => "" ok 575 - Line 861 "[% BLOCK foo %]one" => "" ok 576 - Line 862 "[% BLOCK foo %][% END %]one" => "one" ok 577 - Line 863 "[% BLOCK %][% END %]one" => "one" ok 578 - Line 864 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 579 - Line 865 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 580 - Line 866 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 581 - Line 867 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 582 - Line 868 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 583 - Line 869 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 584 - Line 870 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 585 - Line 871 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 586 - Line 872 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 587 - Line 873 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 588 - Line 874 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 589 - Line 875 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 590 - Line 876 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 591 - Line 878 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 592 - Line 879 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 593 - Line 880 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% PROCESS $self self = 'blah'; self %]" => "Ta-Dablah" ok 594 - Line 881 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% INCLUDE $self self = 'blah'; self %]" => "Ta-Dab" ok 595 - Line 883 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 596 - Line 884 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 597 - Line 886 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "" ok 598 - Line 888 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ok 599 - Line 890 "[% BLOCK foo %]([% content %])[% END %][% WRAPPER foo %]hi there[% END %]" => "(hi there)" ok 600 - Line 891 "[% BLOCK foo %]([% one = 1; content %])[% END %][% WRAPPER foo %]hi there[% END %][% one %]" => "(hi there)won" ok 601 - Line 893 "[% a = 23; PROCESS $foo %]" => "bar 23 baz" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (normal) ok 602 - Line 898 "[% IF 1 %]Yes[% END %]" => "Yes" ok 603 - Line 899 "[% IF 0 %]Yes[% END %]" => "" ok 604 - Line 900 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 605 - Line 901 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 606 - Line 902 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 607 - Line 903 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 608 - Line 905 "[% UNLESS 1 %]Yes[% END %]" => "" ok 609 - Line 906 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 610 - Line 907 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 611 - Line 908 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 612 - Line 909 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 613 - Line 910 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (normal) ok 614 - Line 915 "[%\# one %]f" => "f" ok 615 - Line 916 "[%\# # one %]f" => "f" ok 616 - Line 917 "[%-\# # one %]f" => "f" ok 617 - Line 918 "[% \# # one %]f" => "ONEf" ok 618 - Line 919 "[% \# one %] # one %]f" => " # one %]f" ok 619 - Line 921 "[%\# BLOCK one %]" => "" ok 620 - Line 922 "[%\# BLOCK one %]two" => "two" ok 621 - Line 923 "[%\# BLOCK one %]two[% END %]" => "" ok 622 - Line 924 "[%\# BLOCK one %]two[% END %]three" => "" ok 623 - Line 925 "[% %]" => "" ok 624 - Line 926 "[% # \# Some comment # CALL 1 -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (normal) ok 625 - Line 934 "[% FOREACH foo %]" => "" ok 626 - Line 935 "[% FOREACH foo %][% END %]" => "" ok 627 - Line 936 "[% FOREACH foo %]bar[% END %]" => "" ok 628 - Line 937 "[% FOREACH foo %]bar[% END %]" => "bar" ok 629 - Line 938 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 630 - Line 939 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 631 - Line 940 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 632 - Line 941 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 633 - Line 942 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 634 - Line 943 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 635 - Line 944 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 636 - Line 945 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 637 - Line 946 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 638 - Line 947 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 639 - Line 948 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 640 - Line 949 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 641 - Line 950 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 642 - Line 951 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 643 - Line 952 "[% loop.odd FOREACH [1..5] %]" => "10101" ok 644 - Line 953 "[% loop.even FOREACH [1..5] %]" => "01010" ok 645 - Line 954 "[% loop.parity FOREACH [1..5] %]" => "oddevenoddevenodd" ok 646 - Line 956 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 647 - Line 961 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 648 - Line 962 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 649 - Line 963 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 650 - Line 964 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 651 - Line 965 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 652 - Line 966 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 653 - Line 967 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 654 - Line 968 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 655 - Line 969 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 656 - Line 970 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 657 - Line 971 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 658 - Line 972 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 659 - Line 973 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 660 - Line 974 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 661 - Line 977 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 662 - Line 978 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 663 - Line 979 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 664 - Line 980 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ok 665 - Line 981 "[% FOREACH f IN [2,3,4]; FOREACH g IN [6,7,8]; f;g;", "; END; END %]" => "26, 27, 28, 36, 37, 38, 46, 47, 48, " ok 666 - Line 992 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 667 - Line 993 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 668 - Line 994 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 669 - Line 995 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 670 - Line 997 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 671 - Line 998 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 672 - Line 999 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 673 - Line 1000 "[% FOREACH i IN foo; i.n; END %]" => "1" ### LOOP ############################################ engine_option (normal) ok 674 - Line 1005 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 675 - Line 1014 "[% var = [{key => 'a'}, {key => 'b'}, {key => 'c'}] -%] # [% LOOP var -%] # ([% key; '|'; __first__; '|'; __last__; '|'; __inner__; '|'; __odd__ %]) # [% END -%]" => "(a|1|0|0|1) # (b|0|0|1|0) # (c|0|1|0|1) # " ### WHILE ########################################### engine_option (normal) ok 676 - Line 1026 "[% WHILE foo %]" => "" ok 677 - Line 1027 "[% WHILE foo %][% END %]" => "" ok 678 - Line 1028 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 679 - Line 1029 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 680 - Line 1030 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 681 - Line 1032 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 682 - Line 1033 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 683 - Line 1034 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 684 - Line 1035 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 685 - Line 1037 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 686 - Line 1038 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 687 - Line 1039 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 688 - Line 1040 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (normal) ok 689 - Line 1045 "[% STOP %]" => "" ok 690 - Line 1046 "One[% STOP %]Two" => "One" ok 691 - Line 1047 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 692 - Line 1048 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 693 - Line 1049 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 694 - Line 1051 "[% RETURN %]" => "" ok 695 - Line 1052 "One[% RETURN %]Two" => "One" ok 696 - Line 1053 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 697 - Line 1054 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 698 - Line 1055 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 699 - Line 1057 "[% CLEAR %]" => "" ok 700 - Line 1058 "One[% CLEAR %]Two" => "Two" ok 701 - Line 1059 "[% BLOCK foo %]One[% CLEAR %]Two[% END %]First[% PROCESS foo %]Last" => "FirstTwoLast" ok 702 - Line 1060 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% CLEAR %][% END %][% END %]" => "23" ok 703 - Line 1061 "[% FOREACH f = [1..3] %][% IF loop.first %][% CLEAR %][% END %][% f %][% END %]" => "123" ok 704 - Line 1062 "[% FOREACH f = [1..3] %][% f %][% IF loop.last %][% CLEAR %][% END %][% END %]" => "" ok 705 - Line 1063 "[% FOREACH f = [1..3] %][% IF loop.last %][% CLEAR %][% END %][% f %][% END %]" => "3" ### post opererative directives ##################### engine_option (normal) ok 706 - Line 1068 "[% GET foo IF 1 %]" => "1" ok 707 - Line 1069 "[% f FOREACH f = [1..3] %]" => "123" ok 708 - Line 1071 "2[% GET foo IF 1 IF 2 %]" => "21" ok 709 - Line 1072 "2[% GET foo IF 1 IF 0 %]" => "2" ok 710 - Line 1073 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 711 - Line 1074 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 712 - Line 1075 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 713 - Line 1076 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 714 - Line 1077 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 715 - Line 1079 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 716 - Line 1080 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 717 - Line 1082 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (normal) ok 718 - Line 1087 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 719 - Line 1088 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 720 - Line 1089 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 721 - Line 1090 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 722 - Line 1091 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (normal) ok 723 - Line 1096 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 724 - Line 1097 "[% TAGS default %][% 1 + 2 %]" => "3" ok 725 - Line 1098 "[% TAGS html %]" => "3" ok 726 - Line 1099 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 727 - Line 1100 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 728 - Line 1101 "[% TAGS php %]" => "3" ok 729 - Line 1102 "[% TAGS star %][* 1 + 2 *]" => "3" ok 730 - Line 1103 "[% TAGS template %][% 1 + 2 %]" => "3" ok 731 - Line 1104 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 732 - Line 1105 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 733 - Line 1106 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 734 - Line 1108 "[% TAGS html %] " => "3" ok 735 - Line 1109 "[% TAGS html %]" => "3" ok 736 - Line 1110 "[% TAGS html %] # " => "3" ok 737 - Line 1111 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 738 - Line 1112 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 739 - Line 1114 "[% TAGS %]" => "3" ok 740 - Line 1116 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 741 - Line 1117 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 742 - Line 1118 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 743 - Line 1119 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 744 - Line 1120 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 745 - Line 1121 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 746 - Line 1123 "[% TAGS html -->" => "3" ok 747 - Line 1124 "[% TAGS html ; 7 -->" => "73" ok 748 - Line 1125 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (normal) ok 749 - Line 1130 "[% SWITCH 1 %][% END %]hi" => "hi" ok 750 - Line 1131 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 751 - Line 1132 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 752 - Line 1133 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 753 - Line 1134 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 754 - Line 1135 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 755 - Line 1136 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 756 - Line 1137 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 757 - Line 1138 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 758 - Line 1140 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (normal) ok 759 - Line 1145 "[% TRY %][% END %]hi" => "hi" ok 760 - Line 1146 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 761 - Line 1147 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "" ok 762 - Line 1148 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 763 - Line 1149 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 764 - Line 1150 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 765 - Line 1151 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 766 - Line 1152 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "" ok 767 - Line 1153 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 768 - Line 1155 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 769 - Line 1156 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 770 - Line 1157 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 771 - Line 1158 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "" ok 772 - Line 1160 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 773 - Line 1161 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 774 - Line 1162 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 775 - Line 1163 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 776 - Line 1164 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (normal) ok 777 - Line 1170 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 778 - Line 1172 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (normal) ok 779 - Line 1178 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 780 - Line 1179 "[% USE Iterator([3..6]) %]hey[% CALL Iterator.get_first; Iterator.size %]" => "hey4" ok 781 - Line 1180 "[% USE FooTest %]one" => "one" ok 782 - Line 1181 "[% USE FooTest2 %]one" => "one" ok 783 - Line 1182 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 784 - Line 1183 "[% USE FooTest2(bar = 'baz') %]one[% FooTest2.bar %]" => "onebarbaz" ok 785 - Line 1184 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 786 - Line 1185 "[% USE d = FooTest(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 787 - Line 1186 "[% USE d.d = FooTest(bar = 'baz') %]one[% d.d.bar %]" => "" ok 788 - Line 1187 "[% USE FooTest(somerand = 8) %]one[% FooTest.somerand %]" => "one8" ok 789 - Line 1189 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 790 - Line 1190 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 791 - Line 1193 "[% USE FooTest %]three" => "three" ### MACRO ########################################### engine_option (normal) ok 792 - Line 1198 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 793 - Line 1199 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 794 - Line 1200 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 795 - Line 1201 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 796 - Line 1202 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 797 - Line 1203 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 798 - Line 1204 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 799 - Line 1206 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ok 800 - Line 1209 "[% foo = ->{ 'Hi' } %][% foo %]" => "Hi" ok 801 - Line 1210 "[% foo = ->{ 'Hi'; this } %][% foo(2) %]" => "Hi2" ok 802 - Line 1211 "[% foo = ->(n){ 'Hi'; n } %][% foo(2) %]" => "Hi2" ok 803 - Line 1212 "[%n=1%][% foo = ->(n) { 'Hi' ; n } %][% foo(2) %][%n%]" => "Hi21" ok 804 - Line 1213 "[% foo = ->(n) { FOREACH i=[1..n]; i ; END } %][% foo(3) %]" => "123" ### DEBUG ########################################### engine_option (normal) ok 805 - Line 1219 " # # [% one %]" => " # # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 806 - Line 1220 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 807 - Line 1221 "[% one %] # # " => "(1)ONE # # " ok 808 - Line 1222 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 809 - Line 1223 "[% one; # one %]" => "(1)ONE(2)ONE" ok 810 - Line 1225 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 811 - Line 1227 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 812 - Line 1229 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - abc.def is undefined # " ### constants ####################################### engine_option (normal) ok 813 - Line 1248 "[% constants.harry %]" => "do_this_once" ok 814 - Line 1249 "[% constants.harry.length %]" => "12" ok 815 - Line 1250 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 816 - Line 1251 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 817 - Line 1252 "[% constants.foo.${constants.bang} %]" => "57" ok 818 - Line 1253 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 819 - Line 1254 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 820 - Line 1256 "[% constants.${"harry"} %]" => "do_this_once" ok 821 - Line 1257 "[% ${"constants"}.harry %]" => "foo" ok 822 - Line 1259 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### CONTEXT ######################################### engine_option (normal) ok 823 - Line 1265 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 824 - Line 1266 "[% cctx.array %]" => "ARRAY(0x2b9f45c)" ok 825 - Line 1267 "[% cctx.array2 %]" => "4" ok 826 - Line 1268 "[% cctx.list %]" => "ARRAY(0x2bcf374)" ok 827 - Line 1269 "[% cctx.scalar %]" => "8" ok 828 - Line 1270 "[% cctx.bang %]" => "bing" ok 829 - Line 1274 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 830 - Line 1275 "[% CALL @(cctx.call_me) %][% cctx.last_context %]" => "list" ok 831 - Line 1276 "[% CALL $(cctx.call_me) %][% cctx.last_context %]" => "scalar" ok 832 - Line 1277 "[% CALL call_cctx %][% cctx.last_context %]" => "list" ok 833 - Line 1278 "[% CALL @(call_cctx) %][% cctx.last_context %]" => "list" ok 834 - Line 1279 "[% CALL $(call_cctx) %][% cctx.last_context %]" => "scalar" ok 835 - Line 1280 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 836 - Line 1281 "[% CALL cctx.call_me %][% cctx.last_context.0 %]" => "list" ok 837 - Line 1282 "[% CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 838 - Line 1283 "[% cctx.array %]" => "ARRAY(0x2bd6694)" ok 839 - Line 1284 "[% @(cctx.array) %]" => "ARRAY(0x2bd5284)" ok 840 - Line 1285 "[% $(cctx.array) %]" => "3" ok 841 - Line 1286 "[% cctx.array2 %]" => "4" ok 842 - Line 1287 "[% @(cctx.array2) %]" => "ARRAY(0x2bd3ea4)" ok 843 - Line 1288 "[% $(cctx.array2) %]" => "1" ok 844 - Line 1289 "[% cctx.list %]" => "ARRAY(0x2bd67b4)" ok 845 - Line 1290 "[% @(cctx.list) %]" => "ARRAY(0x2bd65a4)" ok 846 - Line 1291 "[% $(cctx.list) %]" => "7" ok 847 - Line 1292 "[% cctx.scalar %]" => "8" ok 848 - Line 1293 "[% @(cctx.scalar) %]" => "ARRAY(0x2bd661c)" ok 849 - Line 1294 "[% $(cctx.scalar) %]" => "8" ok 850 - Line 1295 "[% cctx.bang %] ~" => "bing ~" ok 851 - Line 1296 "[% @(cctx.bang) %] ~" => "bing ~" ok 852 - Line 1297 "[% $(cctx.bang) %] ~" => "bing ~" ok 853 - Line 1299 "[% CONFIG CALL_CONTEXT => "list"; CALL cctx.call_me; CONFIG CALL_CONTEXT => "smart" %][% cctx.last_context %]" => "list" ok 854 - Line 1301 "[% CONFIG CALL_CONTEXT => "item"; CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 855 - Line 1303 "[% cctx.dataref.0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 856 - Line 1305 "[% @(cctx.dataref).0.foo = 7; cctx.dataref.foo %]" => "7" ok 857 - Line 1307 "[% $(cctx.dataref).0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 858 - Line 1309 "[% CONFIG CALL_CONTEXT => "list"; cctx.dataref.0.foo = 7; CONFIG CALL_CONTEXT => "item"; cctx.dataref.foo %]" => "7" ok 859 - Line 1314 "[% cctxo.bang = 1 %] ~" => " ~" ok 860 - Line 1315 "[% cctxo.dataref.foo = 7; cctxo.dataref.foo %]" => "7" ok 861 - Line 1317 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 862 - Line 1318 "[% CALL @(cctxo.call_me) %][% cctxo.last_context %]" => "list" ok 863 - Line 1319 "[% CALL $(cctxo.call_me) %][% cctxo.last_context %]" => "scalar" ok 864 - Line 1320 "[% CALL call_cctxo %][% cctxo.last_context %]" => "list" ok 865 - Line 1321 "[% CALL @(call_cctxo) %][% cctxo.last_context %]" => "list" ok 866 - Line 1322 "[% CALL $(call_cctxo) %][% cctxo.last_context %]" => "scalar" ok 867 - Line 1323 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 868 - Line 1324 "[% CALL cctxo.call_me %][% cctxo.last_context.0 %]" => "list" ok 869 - Line 1325 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "scalar" ok 870 - Line 1326 "[% cctxo.array %]" => "ARRAY(0x2bce8dc)" ok 871 - Line 1327 "[% @(cctxo.array) %]" => "ARRAY(0x2bd8e0c)" ok 872 - Line 1328 "[% $(cctxo.array) %]" => "3" ok 873 - Line 1329 "[% cctxo.array2 %]" => "4" ok 874 - Line 1330 "[% @(cctxo.array2) %]" => "ARRAY(0x2bd8884)" ok 875 - Line 1331 "[% $(cctxo.array2) %]" => "1" ok 876 - Line 1332 "[% cctxo.list %]" => "ARRAY(0x2bd6fac)" ok 877 - Line 1333 "[% @(cctxo.list) %]" => "ARRAY(0x2bd853c)" ok 878 - Line 1334 "[% $(cctxo.list) %]" => "7" ok 879 - Line 1335 "[% cctxo.scalar %]" => "8" ok 880 - Line 1336 "[% @(cctxo.scalar) %]" => "ARRAY(0x2bd6eec)" ok 881 - Line 1337 "[% $(cctxo.scalar) %]" => "8" ok 882 - Line 1338 "[% cctxo.bang %] ~" => "bing ~" ok 883 - Line 1341 "[% SET cctxo.call_me = 2 %][% cctxo.last_context %]" => "list2" ok 884 - Line 1343 "[% CALL @(cctxo.call_me = 3) %][% cctxo.last_context %]" => "list3" ok 885 - Line 1345 "[% CALL $(cctxo.call_me = 4) %][% cctxo.last_context %]" => "scalar4" ### INTERPOLATE ##################################### engine_option (normal) ok 886 - Line 1351 "Foo $one Bar" => "Foo ONE Bar" ok 887 - Line 1352 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 888 - Line 1353 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 889 - Line 1357 "Foo \ Bar" => "Foo \ Bar" ok 890 - Line 1358 "Foo \\ Bar" => "Foo \\ Bar" ok 891 - Line 1359 "Foo \n Bar" => "Foo \n Bar" ok 892 - Line 1360 "Foo \$a Bar" => "Foo $a Bar" ok 893 - Line 1361 "Foo \\$a Bar" => "Foo \\7 Bar" ok 894 - Line 1362 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 895 - Line 1363 "Foo $a.B Bar" => "Foo 7 Bar" ok 896 - Line 1364 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 897 - Line 1365 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 898 - Line 1367 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 899 - Line 1368 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 900 - Line 1369 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 901 - Line 1370 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 902 - Line 1371 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 903 - Line 1372 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 904 - Line 1373 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (normal) ok 905 - Line 1378 "[% GET %]" => "" ok 906 - Line 1379 "[% GET GET %]" => "ONE" ok 907 - Line 1380 "[% get one %]" => "ONE" ok 908 - Line 1381 "[% get %]" => "" ok 909 - Line 1382 "[% get get %]" => "ONE" ok 910 - Line 1384 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 911 - Line 1385 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => "hi" ok 912 - Line 1386 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi" ok 913 - Line 1387 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi" ok 914 - Line 1388 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => "hi" ok 915 - Line 1389 "A[% TRY %] # hi # [% END %]" => "A # hi" ok 916 - Line 1391 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (normal) ok 917 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 918 - Line 1397 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 919 - Line 1400 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 920 - Line 1401 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 921 - Line 1403 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 922 - Line 1404 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 923 - Line 1405 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 924 - Line 1406 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 925 - Line 1408 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (normal) ok 926 - Line 1413 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 927 - Line 1418 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 928 - Line 1422 "[% ('a' == 'b') || 0 %]" => "0" ok 929 - Line 1423 "[% ('a' != 'b') || 0 %]" => "1" ok 930 - Line 1424 "[% ('a' == 'b') || 0 %]" => "0" ok 931 - Line 1425 "[% ('a' != 'b') || 0 %]" => "1" ok 932 - Line 1426 "[% ('a' == 'b') || 0 %]" => "1" ok 933 - Line 1427 "[% ('a' != 'b') || 0 %]" => "0" ok 934 - Line 1428 "[% ('7' == '7.0') || 0 %]" => "0" ok 935 - Line 1429 "[% ('7' == '7.0') || 0 %]" => "1" ok 936 - Line 1430 "[% (7 == 7.0) || 0 %]" => "1" ok 937 - Line 1431 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (normal) ok 938 - Line 1436 "[% a = 7 %]$a" => "7" ok 939 - Line 1437 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (normal) ok 940 - Line 1442 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 941 - Line 1443 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 942 - Line 1444 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 943 - Line 1445 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 944 - Line 1446 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (normal) ok 945 - Line 1451 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (normal) ok 946 - Line 1456 "[% template.name %]" => "input text" ok 947 - Line 1457 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 948 - Line 1458 "[% META name = 'bar' %][% template.name %]" => "bar" ok 949 - Line 1459 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 950 - Line 1460 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 951 - Line 1461 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (normal) ok 952 - Line 1466 "[% a=3; b=\a; b; a %]" => "33" ok 953 - Line 1467 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 954 - Line 1469 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 955 - Line 1470 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 956 - Line 1472 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 957 - Line 1473 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 958 - Line 1475 "[% \a %]" => "CODE(0x2b5e044)" ok 959 - Line 1476 "[% b=\a; b %]" => "a sub []" ok 960 - Line 1477 "[% b=\a(1); b %]" => "a sub [1]" ok 961 - Line 1478 "[% b=\a; b(2) %]" => "a sub [2]" ok 962 - Line 1479 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 963 - Line 1480 "[% f=\j.k; j.k=7; f %]" => "7" ok 964 - Line 1482 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 965 - Line 1483 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 966 - Line 1484 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 967 - Line 1485 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 968 - Line 1487 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 969 - Line 1488 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (normal) ok 970 - Line 1499 "[% GET %]" => "" ok 971 - Line 1500 "[% GET GET %]" => "named_get" ok 972 - Line 1501 "[% GET get %]" => "lower_named_get" ok 973 - Line 1502 "[% GET ${'GET'} %]" => "bar" ok 974 - Line 1504 "[% GET = 1 %][% GET GET %]" => "" ok 975 - Line 1505 "[% SET GET = 1 %][% GET GET %]" => "1" ok 976 - Line 1507 "[% GET $hold_get %]" => "named_get" ok 977 - Line 1508 "[% GET $GET %]" => "value of named_get" ok 978 - Line 1509 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 979 - Line 1510 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 980 - Line 1511 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 981 - Line 1512 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (normal) ok 982 - Line 1517 "[% " \" " %]" => " " " ok 983 - Line 1518 "[% " \$foo " %]" => " $foo " ok 984 - Line 1519 "[% " \${foo} " %]" => " ${foo} " ok 985 - Line 1520 "[% " \n " %]" => " # " ok 986 - Line 1521 "[% " \t " %]" => " " ok 987 - Line 1522 "[% " \r " %]" => " " ok 988 - Line 1524 "[% 'foo\'bar' %]" => "foo'bar" ok 989 - Line 1525 "[% "foo\"bar" %]" => "foo"bar" ok 990 - Line 1526 "[% qw(foo \)).1 %]" => ")" ok 991 - Line 1527 "[% qw|foo \||.1 %]" => "|" ok 992 - Line 1529 "[% ' \' ' %]" => " ' " ok 993 - Line 1530 "[% ' \r ' %]" => " \r " ok 994 - Line 1531 "[% ' \n ' %]" => " \n " ok 995 - Line 1532 "[% ' \t ' %]" => " \t " ok 996 - Line 1533 "[% ' $foo ' %]" => " $foo " ok 997 - Line 1535 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 998 - Line 1536 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 999 - Line 1537 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 1000 - Line 1538 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 1001 - Line 1539 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 1002 - Line 1540 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 1003 - Line 1541 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 1004 - Line 1543 "[% "[%" %]" => "[%" ok 1005 - Line 1544 "[% "%]" %]" => "%]" ok 1006 - Line 1545 "[% a = "[% %]" %][% a %]" => "[% %]" ok 1007 - Line 1546 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ### STRICT ########################################## engine_option (normal) ok 1008 - Line 1550 "[% TRY; foo; CATCH; error; END %]" => "var.undef error - undefined variable: foo in input text" ok 1009 - Line 1551 "[% TRY; foo.bar(1); CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar(1) in input text" ok 1010 - Line 1552 "[% TRY; 1 IF foo.bar.baz; CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar.baz in input text" ok 1011 - Line 1554 "[% foo.bar() %]ok" => "ok" ok 1012 - Line 1555 "[% foo.baz() %]ok" => "" ### EVALUATE ######################################## engine_option (normal) ok 1013 - Line 1561 "[% foo | eval %]" => "baz" ok 1014 - Line 1563 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 1015 - Line 1564 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 1016 - Line 1566 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 1017 - Line 1567 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval; f.eval %]" => ">>>>>caught>>>>>caught" ok 1018 - Line 1568 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" ok 1019 - Line 1569 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ok 1020 - Line 1571 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 1021 - Line 1572 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 1022 - Line 1573 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ok 1023 - Line 1575 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 1024 - Line 1576 "[% TRY; CONFIG STRICT => 1; '[% bar %]'.eval(STRICT => 0); CATCH; error; END %]" => "eval_strict error - Cannot disable STRICT once it is enabled" ok 1025 - Line 1577 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ### DUMP ############################################ engine_option (normal) ok 1026 - Line 1585 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 1027 - Line 1586 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 1028 - Line 1587 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 1029 - Line 1588 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 1030 - Line 1589 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 1031 - Line 1590 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 1032 - Line 1591 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 1033 - Line 1592 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 1034 - Line 1593 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 1035 - Line 1594 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 1036 - Line 1595 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 1037 - Line 1596 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 1038 - Line 1597 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 1039 - Line 1598 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 1040 - Line 1599 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 1041 - Line 1600 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 1042 - Line 1601 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 1043 - Line 1603 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 1044 - Line 1604 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 1045 - Line 1606 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 1046 - Line 1607 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 1047 - Line 1608 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (normal) ok 1048 - Line 1615 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 1049 - Line 1616 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1050 - Line 1617 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1051 - Line 1618 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1052 - Line 1619 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1053 - Line 1620 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1054 - Line 1621 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1055 - Line 1624 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 1056 - Line 1625 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 1057 - Line 1626 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 1058 - Line 1628 "" => "FOO" ok 1059 - Line 1629 "" => "7 8" ok 1060 - Line 1630 "" => "1" ok 1061 - Line 1631 "" => "1" ok 1062 - Line 1632 "d" => "" ok 1063 - Line 1634 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 1064 - Line 1635 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 1065 - Line 1636 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (normal) ok 1066 - Line 1644 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 1067 - Line 1645 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 1068 - Line 1646 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 1069 - Line 1647 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 1070 - Line 1648 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 1071 - Line 1649 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 1072 - Line 1650 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 1073 - Line 1651 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 1074 - Line 1652 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 1075 - Line 1654 "[% CONFIG BOGUS => 2 %]bar" => "" ok 1076 - Line 1656 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 1077 - Line 1657 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 1078 - Line 1659 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 1079 - Line 1660 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 1080 - Line 1661 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 1081 - Line 1662 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 1082 - Line 1663 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 1083 - Line 1664 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 1084 - Line 1665 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 1085 - Line 1667 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 1086 - Line 1668 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 1087 - Line 1669 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ok 1088 - Line 1670 "[% TRY; foo; CONFIG STRICT => 1; bar; CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 1089 - Line 1671 "[% TRY; foo; CONFIG STRICT => 1; CONFIG STRICT => 0; bar; CATCH; error; END %]" => "config.strict error - Cannot disable STRICT once it is enabled" ok 1090 - Line 1672 "[% BLOCK foo; CONFIG STRICT => 1; baz; END; TRY; bam; PROCESS foo; bar; CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ok 1091 - Line 1674 "[% CONFIG AUTO_FILTER => "html"; foo %]" => "&" ### DONE ############################################ engine_option (normal) ### GET ############################################# engine_option (compile_perl) ok 1092 - Line 156 "[% foo %]" => "" ok 1093 - Line 157 "[% foo %]" => "7" ok 1094 - Line 158 "[% foo %]" => "7" ok 1095 - Line 159 "[% foo %]" => "7" ok 1096 - Line 160 "[% foo %]" => "Stash" ok 1097 - Line 161 "[% foo %]" => "V" ok 1098 - Line 162 "[% bar %]" => "" ok 1099 - Line 163 "[% foo %]" => "Stash" ok 1100 - Line 164 "[% bar %]" => "" ok 1101 - Line 165 "[% foo %]" => "Stash" ok 1102 - Line 166 "[% foo %]" => "Stash" ok 1103 - Line 167 "[% foo %][% foo %][% foo %]" => "777" ok 1104 - Line 168 "[% foo() %]" => "7" ok 1105 - Line 169 "[% foo.bar %]" => "" ok 1106 - Line 170 "[% foo.bar %]" => "" ok 1107 - Line 171 "[% foo.bar %]" => "7" ok 1108 - Line 172 "[% foo().bar %]" => "7" ok 1109 - Line 173 "[% foo.0 %]" => "7" ok 1110 - Line 174 "[% foo.10 %]" => "" ok 1111 - Line 175 "[% foo %]" => "7" ok 1112 - Line 176 "[% foo(7) %]" => "7" ok 1113 - Line 177 "[% foo.length %]" => "1" ok 1114 - Line 178 "[% foo.0 %]" => "7" ok 1115 - Line 179 "[% foo(bar) %]" => "7" ok 1116 - Line 180 "[% foo(bar.baz) %]" => "7" ok 1117 - Line 181 "[% foo.seven %]" => "7" ok 1118 - Line 182 "[% foo.seven() %]" => "7" ok 1119 - Line 183 "[% foo.seven.length %]" => "1" ok 1120 - Line 184 "[% foo.echo(7) %]" => "7" ok 1121 - Line 185 "[% foo.many.0 %]" => "1" ok 1122 - Line 186 "[% foo.many.10 %]" => "" ok 1123 - Line 187 "[% foo.nomethod %]" => "" ok 1124 - Line 188 "[% foo.nomethod.0 %]" => "" ok 1125 - Line 190 "[% GET foo %]" => "" ok 1126 - Line 191 "[% GET foo %]" => "7" ok 1127 - Line 192 "[% GET foo.bar %]" => "" ok 1128 - Line 193 "[% GET foo.bar %]" => "" ok 1129 - Line 194 "[% GET foo.bar %]" => "7" ok 1130 - Line 195 "[% GET foo.0 %]" => "7" ok 1131 - Line 196 "[% GET foo %]" => "7" ok 1132 - Line 197 "[% GET foo(7) %]" => "7" ok 1133 - Line 199 "[% $name %]" => "" ok 1134 - Line 200 "[% $name %]" => "7" ok 1135 - Line 201 "[% $name.bar %]" => "" ok 1136 - Line 202 "[% $name.bar %]" => "" ok 1137 - Line 203 "[% $name.bar %]" => "7" ok 1138 - Line 204 "[% $name().bar %]" => "7" ok 1139 - Line 205 "[% $name.0 %]" => "7" ok 1140 - Line 206 "[% $name %]" => "7" ok 1141 - Line 207 "[% $name(7) %]" => "7" ok 1142 - Line 209 "[% GET $name %]" => "" ok 1143 - Line 210 "[% GET $name %]" => "7" ok 1144 - Line 211 "[% GET $name.bar %]" => "" ok 1145 - Line 212 "[% GET $name.bar %]" => "" ok 1146 - Line 213 "[% GET $name.bar %]" => "7" ok 1147 - Line 214 "[% GET $name.0 %]" => "7" ok 1148 - Line 215 "[% GET $name %]" => "7" ok 1149 - Line 216 "[% GET $name(7) %]" => "7" ok 1150 - Line 218 "[% $name %]" => "" ok 1151 - Line 219 "[% GET $name %]" => "" ok 1152 - Line 221 "[% ${name} %]" => "" ok 1153 - Line 222 "[% ${name} %]" => "7" ok 1154 - Line 223 "[% ${name}.bar %]" => "" ok 1155 - Line 224 "[% ${name}.bar %]" => "" ok 1156 - Line 225 "[% ${name}.bar %]" => "7" ok 1157 - Line 226 "[% ${name}().bar %]" => "7" ok 1158 - Line 227 "[% ${name}.0 %]" => "7" ok 1159 - Line 228 "[% ${name} %]" => "7" ok 1160 - Line 229 "[% ${name}(7) %]" => "7" ok 1161 - Line 231 "[% GET ${name} %]" => "" ok 1162 - Line 232 "[% GET ${name} %]" => "7" ok 1163 - Line 233 "[% GET ${name}.bar %]" => "" ok 1164 - Line 234 "[% GET ${name}.bar %]" => "" ok 1165 - Line 235 "[% GET ${name}.bar %]" => "7" ok 1166 - Line 236 "[% GET ${name}.0 %]" => "7" ok 1167 - Line 237 "[% GET ${name} %]" => "7" ok 1168 - Line 238 "[% GET ${name}(7) %]" => "7" ok 1169 - Line 240 "[% ${name} %]" => "" ok 1170 - Line 241 "[% GET ${name} %]" => "" ok 1171 - Line 242 "[% GET ${'foo'} %]" => "bar" ok 1172 - Line 244 "[% foo.$name %]" => "" ok 1173 - Line 245 "[% foo.$name %]" => "7" ok 1174 - Line 246 "[% foo.$name.baz %]" => "" ok 1175 - Line 248 "[% "hi" %]" => "hi" ok 1176 - Line 249 "[% "hi %]" => "" ok 1177 - Line 250 "[% 'hi' %]" => "hi" ok 1178 - Line 251 "[% 'hi %]" => "" ok 1179 - Line 252 "[% "$foo" %]" => "7" ok 1180 - Line 253 "[% "hi $foo" %]" => "hi 7" ok 1181 - Line 254 "[% "hi ${foo}" %]" => "hi 7" ok 1182 - Line 255 "[% 'hi $foo' %]" => "hi $foo" ok 1183 - Line 256 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 1184 - Line 257 "[% 7 %]" => "7" ok 1185 - Line 258 "[% -7 %]" => "-7" ok 1186 - Line 260 "[% "hi ${foo.seven}" %]" => "hi 7" ok 1187 - Line 261 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 1188 - Line 263 "[% _foo %]2" => "2" ok 1189 - Line 264 "[% $bar %]2" => "2" ok 1190 - Line 265 "[% __foo %]2" => "2" ok 1191 - Line 267 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 1192 - Line 268 "[% [0..10].-1 %]" => "10" ok 1193 - Line 269 "[% [0..10].${ 2.3 } %]" => "2" ok 1194 - Line 271 "[% (1 + 2)() %]" => "" ok 1195 - Line 272 "[% (1 + 2) %]" => "3" ok 1196 - Line 273 "[% (a) %]" => "2" ok 1197 - Line 274 "[% ('foo') %]" => "foo" ok 1198 - Line 275 "[% (a(2)) %]" => "2" ok 1199 - Line 278 "[% JS 3 %]" => "3" ok 1200 - Line 279 "[% JS 3 %]" => "43" ok 1201 - Line 280 "[% JS; 3; END %]" => "" ### SET ############################################# engine_option (compile_perl) ok 1202 - Line 285 "[% SET foo bar %][% foo %]" => "" ok 1203 - Line 286 "[% SET foo = 1 %][% foo %]" => "1" ok 1204 - Line 287 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 1205 - Line 288 "[% SET foo bar = 1 %][% foo %]" => "" ok 1206 - Line 289 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 1207 - Line 290 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 1208 - Line 292 "[% SET foo = [] %][% foo.0 %]" => "" ok 1209 - Line 293 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 1210 - Line 294 "[% SET foo = {} %][% foo.0 %]" => "" ok 1211 - Line 295 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 1212 - Line 296 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 1213 - Line 298 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 1214 - Line 299 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 1215 - Line 300 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 1216 - Line 301 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 1217 - Line 302 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 1218 - Line 303 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 1219 - Line 304 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 1220 - Line 305 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 1221 - Line 307 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 1222 - Line 308 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 1223 - Line 310 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 1224 - Line 311 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 1225 - Line 313 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 1226 - Line 315 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 1227 - Line 316 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 1228 - Line 317 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 1229 - Line 318 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 1230 - Line 320 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 1231 - Line 321 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 1232 - Line 322 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 1233 - Line 323 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 1234 - Line 324 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 1235 - Line 325 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 1236 - Line 326 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 1237 - Line 327 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 1238 - Line 328 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 1239 - Line 329 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 1240 - Line 331 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 1241 - Line 332 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 1242 - Line 333 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 1243 - Line 334 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 1244 - Line 335 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 1245 - Line 336 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 1246 - Line 337 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 1247 - Line 338 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 1248 - Line 339 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 1249 - Line 341 "[% foo = 1 %][% foo %]" => "1" ok 1250 - Line 342 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 1251 - Line 343 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 1252 - Line 345 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 1253 - Line 346 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 1254 - Line 348 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 1255 - Line 350 "[% _foo = 1 %][% _foo %]2" => "2" ok 1256 - Line 351 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (compile_perl) ok 1257 - Line 356 "[% foo; %]" => "1" ok 1258 - Line 357 "[% GET foo; %]" => "1" ok 1259 - Line 358 "[% GET foo; GET foo %]" => "11" ok 1260 - Line 359 "[% GET foo GET foo %]" => "11" ok 1261 - Line 360 "[% GET foo GET foo %]" => "" ok 1262 - Line 362 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 1263 - Line 363 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 1264 - Line 364 "[% a = 1 a = a + 2 a %]" => "3" ok 1265 - Line 366 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 1266 - Line 367 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 1267 - Line 368 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (compile_perl) ok 1268 - Line 374 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 1269 - Line 375 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 1270 - Line 376 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 1271 - Line 379 "[% foo %]" => "hi" ok 1272 - Line 380 "[% GET foo %]" => "hi" ok 1273 - Line 381 "[% CALL foo %]" => "" ok 1274 - CALL method actually called var ### scalar vmethods ################################# engine_option (compile_perl) ok 1275 - Line 388 "[% n.0 %]" => "7" ok 1276 - Line 389 "[% n.abs %]" => "7" ok 1277 - Line 390 "[% n.abs %]" => "7" ok 1278 - Line 391 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 1279 - Line 392 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 1280 - Line 393 "[% n.chunk(3).join %]" => "abc def g" ok 1281 - Line 394 "[% n.chunk(-3).join %]" => "a bcd efg" ok 1282 - Line 395 "[% n|collapse %]" => "a b" ok 1283 - Line 396 "[% n.cos.substr(0,5) %]" => "1" ok 1284 - Line 397 "[% n.cos.substr(0,5) %]" => "0.707" ok 1285 - Line 398 "[% n.defined %]" => "1" ok 1286 - Line 399 "[% n.defined %]" => "" ok 1287 - Line 400 "[% n.defined %]" => "1" ok 1288 - Line 401 "[% n.dquote %]" => "(\n|\\|\")" ok 1289 - Line 402 "[% n.exp.substr(0,5) %]" => "2.718" ok 1290 - Line 403 "[% n.exp.log.substr(0,5) %]" => "8" ok 1291 - Line 404 "[% n.fmt %]" => "7" ok 1292 - Line 405 "[% n.fmt('%02d') %]" => "07" ok 1293 - Line 406 "[% n.fmt('%0*d', 3) %]" => "007" ok 1294 - Line 407 "[% n.fmt('(%s)') %]" => "(a # b)" ok 1295 - Line 408 "[% n|format('%02d') %]" => "07" ok 1296 - Line 409 "[% n|format('%0*d', 3) %]" => "007" ok 1297 - Line 410 "[% n|format('(%s)') %]" => "(a) # (b)" ok 1298 - Line 411 "[% n.hash.items.1 %]" => "b" ok 1299 - Line 412 "[% n.hex %]" => "255" ok 1300 - Line 413 "[% n|html %]" => "&<>"'" ok 1301 - Line 414 "[% n|html_entity %]" => "&" ok 1302 - Line 415 "[% n|xml %]" => "&<>"'" ok 1303 - Line 416 "[% n|indent %]" => " a # b" ok 1304 - Line 417 "[% n|indent(2) %]" => " a # b" ok 1305 - Line 418 "[% n|indent('wow ') %]" => "wow a # wow b" ok 1306 - Line 419 "[% n.int %]" => "123" ok 1307 - Line 420 "[% n.int %]" => "123" ok 1308 - Line 421 "[% n.int %]" => "0" ok 1309 - Line 422 "[% n.item %]" => "7" ok 1310 - Line 423 "[% n.lc %]" => "abc" ok 1311 - Line 424 "[% n|lcfirst %]" => "fOO" ok 1312 - Line 425 "[% n.length %]" => "3" ok 1313 - Line 426 "[% n.list.0 %]" => "abc" ok 1314 - Line 427 "[% n.log.substr(0,5) %]" => "4.605" ok 1315 - Line 428 "[% n|lower %]" => "abc" ok 1316 - Line 429 "[% n.match('foo').join %]" => "" ok 1317 - Line 430 "[% n.match('foo').join %]" => "1" ok 1318 - Line 431 "[% n.match('foo',1).join %]" => "foo" ok 1319 - Line 432 "[% n.match('(foo)').join %]" => "foo" ok 1320 - Line 433 "[% n.match('(foo)').join %]" => "foo" ok 1321 - Line 434 "[% n.match('(foo)',1).join %]" => "foo foo" ok 1322 - Line 435 "[% n.null %]" => "" ok 1323 - Line 436 "[% n.oct %]" => "255" ok 1324 - Line 437 "[% n.rand %]" => "1.5264831683424" ok 1325 - Line 438 "[% n.rand %]" => "0.335701955774084" ok 1326 - Line 439 "[% n.remove('bc') %]" => "a" ok 1327 - Line 440 "[% n.remove('bc') %]" => "aa" ok 1328 - Line 441 "[% n.repeat %]" => "1" ok 1329 - Line 442 "[% n.repeat(0) %]" => "" ok 1330 - Line 443 "[% n.repeat(1) %]" => "1" ok 1331 - Line 444 "[% n.repeat(2) %]" => "11" ok 1332 - Line 445 "[% n.repeat(2,'|') %]" => "1|1" ok 1333 - Line 446 "[% n.replace('foo', 'bar') %]" => "barbar" ok 1334 - Line 447 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 1335 - Line 448 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 1336 - Line 449 "[% n.search('foo') %]" => "" ok 1337 - Line 450 "[% n.search('foo') %]" => "1" ok 1338 - Line 451 "[% n.sin.substr(0,5) %]" => "0" ok 1339 - Line 452 "[% n.sin.substr(0,5) %]" => "1" ok 1340 - Line 453 "[% n.size %]" => "1" ok 1341 - Line 454 "[% n.split.join('|') %]" => "abc" ok 1342 - Line 455 "[% n.split.join('|') %]" => "a|b|c" ok 1343 - Line 456 "[% n.split.join('|') %]" => "a|b|c" ok 1344 - Line 457 "[% n.split(u,2).join('|') %]" => "a|b c" ok 1345 - Line 459 "[% n.split('/').join('|') %]" => "a|b|c" ok 1346 - Line 460 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 1347 - Line 461 "[% n.sprintf(7) %]" => "7" ok 1348 - Line 462 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 1349 - Line 463 "[% n.sqrt %]" => "3" ok 1350 - Line 464 "[% n.squote %]" => "( # |\\|\')" ok 1351 - Line 465 "[% n.srand; 12 %]" => "12" ok 1352 - Line 466 "[% n.stderr %]" => "" ok 1353 - Line 467 "[% n|trim %]" => "a b" ok 1354 - Line 468 "[% n.uc %]" => "FOO" ok 1355 - Line 469 "[% n|ucfirst %]" => "Foo" ok 1356 - Line 470 "[% n|upper %]" => "FOO" ok 1357 - Line 471 "[% n|uri %]" => "a%20b" ok 1358 - Line 473 "[% n.fmt('%c') %]" => "B" ok 1359 - Line 474 "[% n.fmt('%3X') %]" => " C" ok 1360 - Line 475 "[% n.fmt('%-3X') %]" => "C " ok 1361 - Line 476 "[% n.fmt('%03X') %]" => "00C" ok 1362 - Line 477 "[% n.fmt('%03X') %]" => "00C" ok 1363 - Line 478 "[% n.fmt('%\#03X') %]" => "0XC" ok 1364 - Line 479 "[% n.fmt('%\#07X') %]" => "0X0000C" ok 1365 - Line 481 "[% n.fmt('%o') %]" => "10" ok 1366 - Line 482 "[% n.fmt('%\#o') %]" => "010" ok 1367 - Line 483 "[% n.fmt('%\#o') %]" => "0" ok 1368 - Line 485 "[% n.fmt('%02d') %]" => "07" ok 1369 - Line 486 "[% n.fmt('%04.2d') %]" => " 07" ok 1370 - Line 487 "[% n.fmt('%+04.2d') %]" => " +07" ok 1371 - Line 488 "[% n.fmt('% 04.2d') %]" => " 07" ok 1372 - Line 489 "[% n.fmt('% +04.2d') %]" => " +07" ok 1373 - Line 490 "[% n.fmt('%02f') %]" => "7.000000" ok 1374 - Line 491 "[% n.fmt('%04.2f') %]" => "7.00" ok 1375 - Line 492 "[% n.fmt('%05.2f') %]" => "07.00" ok 1376 - Line 493 "[% n.fmt('% 5.2f') %]" => " 7.00" ok 1377 - Line 494 "[% n.fmt('%+04.2f') %]" => "+7.00" ok 1378 - Line 495 "[% n.fmt('% 04.2f') %]" => " 7.00" ok 1379 - Line 496 "[% n.fmt('% +6.2f') %]" => " +7.00" ok 1380 - Line 497 "[% n.fmt('%0+6.2f') %]" => "+07.00" ok 1381 - Line 498 "[% n.fmt('%.5g') %]" => "12345" ok 1382 - Line 499 "[% n.fmt('%.5g') %]" => "1.2346e+006" ### list vmethods ################################### engine_option (compile_perl) ok 1383 - Line 504 "[% a.defined %]" => "1" ok 1384 - Line 505 "[% a.defined(1) %]" => "1" ok 1385 - Line 506 "[% a.defined(3) %]" => "" ok 1386 - Line 507 "[% a.first %]" => "2" ok 1387 - Line 508 "[% a.first(3).join %]" => "2 3 4" ok 1388 - Line 509 "[% a.fmt %]" => "2 3" ok 1389 - Line 510 "[% a.fmt('%02d') %]" => "02 03" ok 1390 - Line 511 "[% a.fmt('%02d',' ') %]" => "02 03" ok 1391 - Line 512 "[% a.fmt('%02d','|') %]" => "02|03" ok 1392 - Line 513 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 1393 - Line 514 "[% a.grep.join %]" => "2 3" ok 1394 - Line 515 "[% a.grep(2).join %]" => "2" ok 1395 - Line 516 "[% a.grep(->(n){n % 2}).join %]" => "3 5 7" ok 1396 - Line 517 "[% a.hash.items.join %]" => "2 3" ok 1397 - Line 518 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 1398 - Line 519 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 1399 - Line 521 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 1400 - Line 523 "[% a.item %]" => "2" ok 1401 - Line 524 "[% a.item(1) %]" => "3" ok 1402 - Line 525 "[% a.join %]" => "2 3" ok 1403 - Line 526 "[% a.join('|') %]" => "2|3" ok 1404 - Line 527 "[% a.last %]" => "10" ok 1405 - Line 528 "[% a.last(3).join %]" => "8 9 10" ok 1406 - Line 529 "[% a.list.join %]" => "2 3" ok 1407 - Line 530 "[% a.map(->(n){ n.repeat(3) }).join %]" => "222 333" ok 1408 - Line 531 "[% a.max %]" => "1" ok 1409 - Line 532 "[% a.merge(5).join %]" => "2 3" ok 1410 - Line 533 "[% a.merge([5]).join %]" => "2 3 5" ok 1411 - Line 534 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 1412 - Line 535 "[% a.nsort.join %]" => "1 2 3" ok 1413 - Line 536 "[% a.nsort('b').0.b %]" => "7" ok 1414 - Line 537 "[% a.pop %][% a.join %]" => "32" ok 1415 - Line 538 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 1416 - Line 539 "[% a.pick %]" => "2" ok 1417 - Line 540 "[% a.pick(5).join('') %]" => "23223" ok 1418 - Line 541 "[% a.reverse.join %]" => "3 2" ok 1419 - Line 542 "[% a.shift %][% a.join %]" => "23" ok 1420 - Line 543 "[% a.size %]" => "2" ok 1421 - Line 544 "[% a.slice.join %]" => "2 3 4 5" ok 1422 - Line 545 "[% a.slice(2).join %]" => "4 5" ok 1423 - Line 546 "[% a.slice(0,2).join %]" => "2 3 4" ok 1424 - Line 547 "[% a.sort.join %]" => "1 2 3" ok 1425 - Line 548 "[% a.sort('b').0.b %]" => "wee" ok 1426 - Line 549 "[% c.sort(->(a,b){ a.k cmp b.k }).map(->{this.k}).join %]" => "a wee wow" ok 1427 - Line 550 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 1428 - Line 551 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 1429 - Line 552 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 1430 - Line 553 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 1431 - Line 554 "[% a.unique.join %]" => "2 3" ok 1432 - Line 555 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (compile_perl) ok 1433 - Line 560 "[% h.defined %]" => "1" ok 1434 - Line 561 "[% h.defined('a') %]" => "1" ok 1435 - Line 562 "[% h.defined('b') %]" => "" ok 1436 - Line 563 "[% h.defined('a') %]" => "" ok 1437 - Line 564 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 1438 - Line 565 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 1439 - Line 566 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 1440 - Line 567 "[% h.each.sort.join %]" => "1 2 a b" ok 1441 - Line 568 "[% h.exists('a') %]" => "1" ok 1442 - Line 569 "[% h.exists('b') %]" => "" ok 1443 - Line 570 "[% h.exists('a') %]" => "1" ok 1444 - Line 571 "[% h.fmt %]" => "b B # c C" ok 1445 - Line 572 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 1446 - Line 573 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 1447 - Line 574 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 1448 - Line 575 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 1449 - Line 576 "[% h.hash.fmt %]" => "b B # c C" ok 1450 - Line 577 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 1451 - Line 578 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 1452 - Line 579 "[% h.item('a') %]" => "A" ok 1453 - Line 580 "[% h.item('_a') %]" => "" ok 1454 - Line 581 "[% h.items.sort.join %]" => "1 2 a b" ok 1455 - Line 582 "[% h.keys.sort.join %]" => "a b" ok 1456 - Line 583 "[% h.list('each').sort.join %]" => "1 2 a b" ok 1457 - Line 584 "[% h.list('keys').sort.join %]" => "a b" ok 1458 - Line 585 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 1459 - Line 586 "[% h.list('values').sort.join %]" => "1 2" ok 1460 - Line 587 "[% h.null %]" => "" ok 1461 - Line 588 "[% h.nsort.join %]" => "b a" ok 1462 - Line 589 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 1463 - Line 590 "[% h.size %]" => "2" ok 1464 - Line 591 "[% h.sort.join %]" => "b a" ok 1465 - Line 592 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (compile_perl) ok 1466 - Line 597 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 1467 - Line 598 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 1468 - Line 599 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 1469 - Line 600 "[% int(2.234) %]" => "2" ok 1470 - Line 602 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (compile_perl) ok 1471 - Line 607 "[% [0 .. 10].reverse.1 %]" => "9" ok 1472 - Line 608 "[% {a => 'A'}.a %]" => "A" ok 1473 - Line 609 "[% 'This is a string'.length %]" => "16" ok 1474 - Line 610 "[% 123.length %]" => "3" ok 1475 - Line 611 "[% 123.2.length %]" => "5" ok 1476 - Line 612 "[% -123.2.length %]" => "-5" ok 1477 - Line 613 "[% (-123.2).length %]" => "6" ok 1478 - Line 614 "[% a = 23; a.0 %]" => "23" ok 1479 - Line 615 "[% 1.rand %]" => "0.15075242533052" ok 1480 - Line 617 "[% n.size %]" => "SIZE" ok 1481 - Line 618 "[% n|size %]" => "2" ok 1482 - Line 620 "[% "1" | indent(2) %]" => " 1" ok 1483 - Line 622 "[% n FILTER size %]" => "1" ok 1484 - Line 624 "[% n FILTER repeat %]" => "1" ok 1485 - Line 625 "[% n FILTER repeat(0) %]" => "" ok 1486 - Line 626 "[% n FILTER repeat(1) %]" => "1" ok 1487 - Line 627 "[% n FILTER repeat(2) %]" => "11" ok 1488 - Line 628 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 1489 - Line 630 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 1490 - Line 631 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 1491 - Line 632 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 1492 - Line 633 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 1493 - Line 634 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 1494 - Line 635 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 1495 - Line 637 "[% "hi" FILTER $foo %]" => "hihi" ok 1496 - Line 638 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 1497 - Line 639 "[% "hi" FILTER foo %]" => "hihi" ok 1498 - Line 640 "[% "hi" FILTER foo %]" => "hihi" ok 1499 - Line 641 "[% "hi" FILTER foo(2) %]" => "hihi" ok 1500 - Line 643 "[% ["0".."9"].pick %]" => "9" ok 1501 - Line 645 "[% ' ' | uri %]" => "%20" ok 1502 - Line 647 "[% "one".fmt %]" => "one" ok 1503 - Line 648 "[% 2.fmt("%02d") %]" => "02" ok 1504 - Line 650 "[% [1..3].fmt %]" => "1 2 3" ok 1505 - Line 651 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 1506 - Line 652 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 1507 - Line 654 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 1508 - Line 655 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 1509 - Line 656 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 1510 - Line 658 "[% 1|format("%s") %]" => "1" ok 1511 - Line 659 "[% 1|format("%*s", 6) %]" => " 1" ok 1512 - Line 660 "[% 1|format("%-*s", 6) %]" => "1 " ok 1513 - Line 662 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 1514 - Line 663 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 1515 - Line 664 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ok 1516 - Line 666 "[% foo %]" => "&" ok 1517 - Line 667 "[% "&" %]" => "&" ok 1518 - Line 668 "[% foo | none %]" => "&" ok 1519 - Line 669 "[% foo.bar %]" => "&" ok 1520 - Line 670 "[% foo.bar | none %]" => "&" ok 1521 - Line 671 "[% GET foo %]" => "&" ok 1522 - Line 672 "[% GET "&" %]" => "&" ok 1523 - Line 673 "[% GET foo | none %]" => "&" ok 1524 - Line 674 "[% Text.length(foo) %]" => "1" ### virtual objects ################################# engine_option (compile_perl) ok 1525 - Line 679 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 1526 - Line 680 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 1527 - Line 681 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 1528 - Line 683 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 1529 - Line 684 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 1530 - Line 685 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 1531 - Line 686 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 1532 - Line 687 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 1533 - Line 689 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (compile_perl) ok 1534 - Line 694 " [% foo %]" => " " ok 1535 - Line 695 " [%- foo %]" => "" ok 1536 - Line 696 " # [%- foo %]" => "" ok 1537 - Line 697 " # [%- foo %]" => "" ok 1538 - Line 698 " # # [%- foo %]" => " # " ok 1539 - Line 699 " # # [%- foo %]" => " # " ok 1540 - Line 700 " # [%- foo %]" => " " ok 1541 - Line 701 " # # [%- foo %]" => " # " ok 1542 - Line 703 "[% 7 %] " => "7 " ok 1543 - Line 704 "[% 7 -%] " => "7 " ok 1544 - Line 705 "[% 7 -%] # " => "7" ok 1545 - Line 706 "[% 7 -%] # " => "7" ok 1546 - Line 707 "[% 7 -%] # " => "7 " ok 1547 - Line 708 "[% 7 -%] # # # " => "7 # # " ok 1548 - Line 709 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (compile_perl) ok 1549 - Line 714 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 1550 - Line 715 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 1551 - Line 716 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 1552 - Line 717 "[% "b" gt "c" %]<<<" => "<<<" ok 1553 - Line 718 "[% "b" gt "a" %]<<<" => "1<<<" ok 1554 - Line 719 "[% "b" ge "c" %]<<<" => "<<<" ok 1555 - Line 720 "[% "b" ge "b" %]<<<" => "1<<<" ok 1556 - Line 721 "[% "b" lt "c" %]<<<" => "1<<<" ok 1557 - Line 722 "[% "b" lt "a" %]<<<" => "<<<" ok 1558 - Line 723 "[% "b" le "a" %]<<<" => "<<<" ok 1559 - Line 724 "[% "b" le "b" %]<<<" => "1<<<" ok 1560 - Line 725 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 1561 - Line 726 "[% "b" cmp "b" %]<<<" => "0<<<" ok 1562 - Line 727 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (compile_perl) ok 1563 - Line 732 "[% 1 + 2 %]" => "3" ok 1564 - Line 733 "[% 1 + 2 + 3 %]" => "6" ok 1565 - Line 734 "[% (1 + 2) %]" => "3" ok 1566 - Line 735 "[% 2 - 1 %]" => "1" ok 1567 - Line 736 "[% -1 + 2 %]" => "1" ok 1568 - Line 737 "[% -1+2 %]" => "1" ok 1569 - Line 738 "[% 2 - 1 %]" => "1" ok 1570 - Line 739 "[% 2-1 %]" => "1" ok 1571 - Line 740 "[% 2 - -1 %]" => "3" ok 1572 - Line 741 "[% 4 * 2 %]" => "8" ok 1573 - Line 742 "[% 4 / 2 %]" => "2" ok 1574 - Line 743 "[% 10 / 3 %]" => "3.33333333333333" ok 1575 - Line 744 "[% 10 div 3 %]" => "3" ok 1576 - Line 745 "[% 2 ** 3 %]" => "8" ok 1577 - Line 746 "[% 1 + 2 * 3 %]" => "7" ok 1578 - Line 747 "[% 3 * 2 + 1 %]" => "7" ok 1579 - Line 748 "[% (1 + 2) * 3 %]" => "9" ok 1580 - Line 749 "[% 3 * (1 + 2) %]" => "9" ok 1581 - Line 750 "[% 1 + 2 ** 3 %]" => "9" ok 1582 - Line 751 "[% 2 * 2 ** 3 %]" => "16" ok 1583 - Line 752 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 1584 - Line 753 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 1585 - Line 755 "[% a = 1; (a += 2) %]" => "3" ok 1586 - Line 756 "[% a = 1; (a -= 2) %]" => "-1" ok 1587 - Line 757 "[% a = 4; (a /= 2) %]" => "2" ok 1588 - Line 758 "[% a = 1; (a *= 2) %]" => "2" ok 1589 - Line 759 "[% a = 3; (a **= 2) %]" => "9" ok 1590 - Line 760 "[% a = 1; (a %= 2) %]" => "1" ok 1591 - Line 761 "[% a = 1; (a += 2 + 3) %]" => "6" ok 1592 - Line 762 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 1593 - Line 763 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 1594 - Line 765 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 1595 - Line 766 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 1596 - Line 768 "[% a = 2; a -= 3; a %]" => "-1" ok 1597 - Line 769 "[% a = 2; a *= 3; a %]" => "6" ok 1598 - Line 770 "[% a = 2; a /= .5; a %]" => "4" ok 1599 - Line 771 "[% a = 8; a %= 3; a %]" => "2" ok 1600 - Line 772 "[% a = 2; a **= 3; a %]" => "8" ok 1601 - Line 774 "[% a = 1 %][% ++a %][% a %]" => "22" ok 1602 - Line 775 "[% a = 1 %][% a++ %][% a %]" => "12" ok 1603 - Line 776 "[% a = 1 %][% --a %][% a %]" => "00" ok 1604 - Line 777 "[% a = 1 %][% a-- %][% a %]" => "10" ok 1605 - Line 778 "[% a++ FOR [1..3] %]" => "012" ok 1606 - Line 779 "[% --a FOR [1..3] %]" => "-1-2-3" ok 1607 - Line 781 "[% 2 > 3 %]<<<" => "<<<" ok 1608 - Line 782 "[% 2 > 1 %]<<<" => "1<<<" ok 1609 - Line 783 "[% 2 >= 3 %]<<<" => "<<<" ok 1610 - Line 784 "[% 2 >= 2 %]<<<" => "1<<<" ok 1611 - Line 785 "[% 2 < 3 %]<<<" => "1<<<" ok 1612 - Line 786 "[% 2 < 1 %]<<<" => "<<<" ok 1613 - Line 787 "[% 2 <= 1 %]<<<" => "<<<" ok 1614 - Line 788 "[% 2 <= 2 %]<<<" => "1<<<" ok 1615 - Line 789 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 1616 - Line 790 "[% 2 <=> 2 %]<<<" => "0<<<" ok 1617 - Line 791 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (compile_perl) ok 1618 - Line 796 "[% 5 && 6 %]" => "6" ok 1619 - Line 797 "[% 5 || 6 %]" => "5" ok 1620 - Line 798 "[% 0 || 6 %]" => "6" ok 1621 - Line 799 "[% 0 && 6 %]" => "0" ok 1622 - Line 800 "[% 0 && 0 %]" => "0" ok 1623 - Line 801 "[% 5 && 6 && 7%]" => "7" ok 1624 - Line 802 "[% 0 || 1 || 2 %]" => "1" ok 1625 - Line 804 "[% 5 + (0 || 5) %]" => "10" ok 1626 - Line 807 "[% 1 ? 2 : 3 %]" => "2" ok 1627 - Line 808 "[% 0 ? 2 : 3 %]" => "3" ok 1628 - Line 809 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 1629 - Line 810 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 1630 - Line 812 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 1631 - Line 813 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 1632 - Line 814 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 1633 - Line 816 "[% 0 ? 2 : 3 %]" => "3" ok 1634 - Line 817 "[% 1 ? 2 : 3 %]" => "2" ok 1635 - Line 818 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 1636 - Line 819 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 1637 - Line 820 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 1638 - Line 821 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 1639 - Line 822 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 1640 - Line 824 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 1641 - Line 826 "[% foo //= 2 ; foo %]" => "2" ok 1642 - Line 827 "[% foo = 3; foo //= 2; foo %]" => "3" ok 1643 - Line 828 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 1644 - Line 830 "[% 5 // 6 %]" => "5" ok 1645 - Line 831 "[% foo // 6 %]" => "6" ok 1646 - Line 832 "[% foo // 6 %]" => "6" ok 1647 - Line 833 "[% foo // 6 %]" => "" ok 1648 - Line 834 "[% foo // 6 %]" => "bar" ok 1649 - Line 836 "[% foo err 6 %]" => "6" ok 1650 - Line 837 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (compile_perl) ok 1651 - Line 843 "[% 'foo'.match(/foo/) ? 1 : 0 %]" => "1" ok 1652 - Line 844 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 1653 - Line 845 "[% 'foo'.match(/fo o/x) ? 1 : 0 %]" => "1" ok 1654 - Line 846 "[% 'foo'.match(/Foo/i) ? 1 : 0 %]" => "1" ok 1655 - Line 847 "[% 'f # o'.match(/f.o/s) ? 1 : 0 %]" => "1" ok 1656 - Line 848 "[% ' # foo'.match(/^foo/m) ? 1 : 0 %]" => "1" ok 1657 - Line 849 "[% 'foo'.match(/foo/e) ? 1 : 0 %]" => "" ok 1658 - Line 850 "[% 'foo'.match(/foo/g) ? 1 : 0 %]" => "" ok 1659 - Line 851 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 1660 - Line 852 "[% 'foo'.match(/foo**/) ? 1 : 0 %]" => "" ok 1661 - Line 853 "[% 'fo/o'.match(/fo\/o/) ? 1 : 0 %]" => "1" ok 1662 - Line 854 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE / WRAPPER ############# engine_option (compile_perl) ok 1663 - Line 860 "[% PROCESS foo %]one" => "" ok 1664 - Line 861 "[% BLOCK foo %]one" => "" ok 1665 - Line 862 "[% BLOCK foo %][% END %]one" => "one" ok 1666 - Line 863 "[% BLOCK %][% END %]one" => "one" ok 1667 - Line 864 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 1668 - Line 865 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 1669 - Line 866 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 1670 - Line 867 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 1671 - Line 868 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 1672 - Line 869 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 1673 - Line 870 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 1674 - Line 871 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 1675 - Line 872 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 1676 - Line 873 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 1677 - Line 874 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 1678 - Line 875 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 1679 - Line 876 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 1680 - Line 878 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 1681 - Line 879 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 1682 - Line 880 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% PROCESS $self self = 'blah'; self %]" => "Ta-Dablah" ok 1683 - Line 881 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% INCLUDE $self self = 'blah'; self %]" => "Ta-Dab" ok 1684 - Line 883 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 1685 - Line 884 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 1686 - Line 886 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "" ok 1687 - Line 888 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ok 1688 - Line 890 "[% BLOCK foo %]([% content %])[% END %][% WRAPPER foo %]hi there[% END %]" => "(hi there)" ok 1689 - Line 891 "[% BLOCK foo %]([% one = 1; content %])[% END %][% WRAPPER foo %]hi there[% END %][% one %]" => "(hi there)won" ok 1690 - Line 893 "[% a = 23; PROCESS $foo %]" => "bar 23 baz" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (compile_perl) ok 1691 - Line 898 "[% IF 1 %]Yes[% END %]" => "Yes" ok 1692 - Line 899 "[% IF 0 %]Yes[% END %]" => "" ok 1693 - Line 900 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 1694 - Line 901 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 1695 - Line 902 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 1696 - Line 903 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 1697 - Line 905 "[% UNLESS 1 %]Yes[% END %]" => "" ok 1698 - Line 906 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 1699 - Line 907 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 1700 - Line 908 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 1701 - Line 909 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 1702 - Line 910 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (compile_perl) ok 1703 - Line 915 "[%\# one %]f" => "f" ok 1704 - Line 916 "[%\# # one %]f" => "f" ok 1705 - Line 917 "[%-\# # one %]f" => "f" ok 1706 - Line 918 "[% \# # one %]f" => "ONEf" ok 1707 - Line 919 "[% \# one %] # one %]f" => " # one %]f" ok 1708 - Line 921 "[%\# BLOCK one %]" => "" ok 1709 - Line 922 "[%\# BLOCK one %]two" => "two" ok 1710 - Line 923 "[%\# BLOCK one %]two[% END %]" => "" ok 1711 - Line 924 "[%\# BLOCK one %]two[% END %]three" => "" ok 1712 - Line 925 "[% %]" => "" ok 1713 - Line 926 "[% # \# Some comment # CALL 1 -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (compile_perl) ok 1714 - Line 934 "[% FOREACH foo %]" => "" ok 1715 - Line 935 "[% FOREACH foo %][% END %]" => "" ok 1716 - Line 936 "[% FOREACH foo %]bar[% END %]" => "" ok 1717 - Line 937 "[% FOREACH foo %]bar[% END %]" => "bar" ok 1718 - Line 938 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 1719 - Line 939 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 1720 - Line 940 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 1721 - Line 941 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 1722 - Line 942 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 1723 - Line 943 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 1724 - Line 944 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 1725 - Line 945 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 1726 - Line 946 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 1727 - Line 947 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 1728 - Line 948 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 1729 - Line 949 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 1730 - Line 950 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 1731 - Line 951 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 1732 - Line 952 "[% loop.odd FOREACH [1..5] %]" => "10101" ok 1733 - Line 953 "[% loop.even FOREACH [1..5] %]" => "01010" ok 1734 - Line 954 "[% loop.parity FOREACH [1..5] %]" => "oddevenoddevenodd" ok 1735 - Line 956 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 1736 - Line 961 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 1737 - Line 962 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 1738 - Line 963 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 1739 - Line 964 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 1740 - Line 965 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 1741 - Line 966 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 1742 - Line 967 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 1743 - Line 968 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 1744 - Line 969 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 1745 - Line 970 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 1746 - Line 971 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 1747 - Line 972 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 1748 - Line 973 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 1749 - Line 974 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 1750 - Line 977 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 1751 - Line 978 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 1752 - Line 979 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 1753 - Line 980 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ok 1754 - Line 981 "[% FOREACH f IN [2,3,4]; FOREACH g IN [6,7,8]; f;g;", "; END; END %]" => "26, 27, 28, 36, 37, 38, 46, 47, 48, " ok 1755 - Line 992 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 1756 - Line 993 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 1757 - Line 994 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 1758 - Line 995 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 1759 - Line 997 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 1760 - Line 998 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 1761 - Line 999 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 1762 - Line 1000 "[% FOREACH i IN foo; i.n; END %]" => "1" ### LOOP ############################################ engine_option (compile_perl) ok 1763 - Line 1005 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 1764 - Line 1014 "[% var = [{key => 'a'}, {key => 'b'}, {key => 'c'}] -%] # [% LOOP var -%] # ([% key; '|'; __first__; '|'; __last__; '|'; __inner__; '|'; __odd__ %]) # [% END -%]" => "(a|1|0|0|1) # (b|0|0|1|0) # (c|0|1|0|1) # " ### WHILE ########################################### engine_option (compile_perl) ok 1765 - Line 1026 "[% WHILE foo %]" => "" ok 1766 - Line 1027 "[% WHILE foo %][% END %]" => "" ok 1767 - Line 1028 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 1768 - Line 1029 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 1769 - Line 1030 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 1770 - Line 1032 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 1771 - Line 1033 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 1772 - Line 1034 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 1773 - Line 1035 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 1774 - Line 1037 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 1775 - Line 1038 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 1776 - Line 1039 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 1777 - Line 1040 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (compile_perl) ok 1778 - Line 1045 "[% STOP %]" => "" ok 1779 - Line 1046 "One[% STOP %]Two" => "One" ok 1780 - Line 1047 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 1781 - Line 1048 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 1782 - Line 1049 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 1783 - Line 1051 "[% RETURN %]" => "" ok 1784 - Line 1052 "One[% RETURN %]Two" => "One" ok 1785 - Line 1053 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 1786 - Line 1054 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 1787 - Line 1055 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 1788 - Line 1057 "[% CLEAR %]" => "" ok 1789 - Line 1058 "One[% CLEAR %]Two" => "Two" ok 1790 - Line 1059 "[% BLOCK foo %]One[% CLEAR %]Two[% END %]First[% PROCESS foo %]Last" => "FirstTwoLast" ok 1791 - Line 1060 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% CLEAR %][% END %][% END %]" => "23" ok 1792 - Line 1061 "[% FOREACH f = [1..3] %][% IF loop.first %][% CLEAR %][% END %][% f %][% END %]" => "123" ok 1793 - Line 1062 "[% FOREACH f = [1..3] %][% f %][% IF loop.last %][% CLEAR %][% END %][% END %]" => "" ok 1794 - Line 1063 "[% FOREACH f = [1..3] %][% IF loop.last %][% CLEAR %][% END %][% f %][% END %]" => "3" ### post opererative directives ##################### engine_option (compile_perl) ok 1795 - Line 1068 "[% GET foo IF 1 %]" => "1" ok 1796 - Line 1069 "[% f FOREACH f = [1..3] %]" => "123" ok 1797 - Line 1071 "2[% GET foo IF 1 IF 2 %]" => "21" ok 1798 - Line 1072 "2[% GET foo IF 1 IF 0 %]" => "2" ok 1799 - Line 1073 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 1800 - Line 1074 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 1801 - Line 1075 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 1802 - Line 1076 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 1803 - Line 1077 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 1804 - Line 1079 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 1805 - Line 1080 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 1806 - Line 1082 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (compile_perl) ok 1807 - Line 1087 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 1808 - Line 1088 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 1809 - Line 1089 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 1810 - Line 1090 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 1811 - Line 1091 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (compile_perl) ok 1812 - Line 1096 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 1813 - Line 1097 "[% TAGS default %][% 1 + 2 %]" => "3" ok 1814 - Line 1098 "[% TAGS html %]" => "3" ok 1815 - Line 1099 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 1816 - Line 1100 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 1817 - Line 1101 "[% TAGS php %]" => "3" ok 1818 - Line 1102 "[% TAGS star %][* 1 + 2 *]" => "3" ok 1819 - Line 1103 "[% TAGS template %][% 1 + 2 %]" => "3" ok 1820 - Line 1104 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 1821 - Line 1105 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 1822 - Line 1106 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 1823 - Line 1108 "[% TAGS html %] " => "3" ok 1824 - Line 1109 "[% TAGS html %]" => "3" ok 1825 - Line 1110 "[% TAGS html %] # " => "3" ok 1826 - Line 1111 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 1827 - Line 1112 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 1828 - Line 1114 "[% TAGS %]" => "3" ok 1829 - Line 1116 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 1830 - Line 1117 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 1831 - Line 1118 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 1832 - Line 1119 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 1833 - Line 1120 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 1834 - Line 1121 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 1835 - Line 1123 "[% TAGS html -->" => "3" ok 1836 - Line 1124 "[% TAGS html ; 7 -->" => "73" ok 1837 - Line 1125 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (compile_perl) ok 1838 - Line 1130 "[% SWITCH 1 %][% END %]hi" => "hi" ok 1839 - Line 1131 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 1840 - Line 1132 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 1841 - Line 1133 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 1842 - Line 1134 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 1843 - Line 1135 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 1844 - Line 1136 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 1845 - Line 1137 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 1846 - Line 1138 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 1847 - Line 1140 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (compile_perl) ok 1848 - Line 1145 "[% TRY %][% END %]hi" => "hi" ok 1849 - Line 1146 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 1850 - Line 1147 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "" ok 1851 - Line 1148 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 1852 - Line 1149 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 1853 - Line 1150 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 1854 - Line 1151 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 1855 - Line 1152 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "" ok 1856 - Line 1153 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 1857 - Line 1155 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 1858 - Line 1156 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 1859 - Line 1157 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 1860 - Line 1158 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "" ok 1861 - Line 1160 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 1862 - Line 1161 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 1863 - Line 1162 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 1864 - Line 1163 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 1865 - Line 1164 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (compile_perl) ok 1866 - Line 1170 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 1867 - Line 1172 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (compile_perl) ok 1868 - Line 1178 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 1869 - Line 1179 "[% USE Iterator([3..6]) %]hey[% CALL Iterator.get_first; Iterator.size %]" => "hey4" ok 1870 - Line 1180 "[% USE FooTest %]one" => "one" ok 1871 - Line 1181 "[% USE FooTest2 %]one" => "one" ok 1872 - Line 1182 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 1873 - Line 1183 "[% USE FooTest2(bar = 'baz') %]one[% FooTest2.bar %]" => "onebarbaz" ok 1874 - Line 1184 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 1875 - Line 1185 "[% USE d = FooTest(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 1876 - Line 1186 "[% USE d.d = FooTest(bar = 'baz') %]one[% d.d.bar %]" => "" ok 1877 - Line 1187 "[% USE FooTest(somerand = 8) %]one[% FooTest.somerand %]" => "one8" ok 1878 - Line 1189 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 1879 - Line 1190 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 1880 - Line 1193 "[% USE FooTest %]three" => "three" ### MACRO ########################################### engine_option (compile_perl) ok 1881 - Line 1198 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 1882 - Line 1199 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 1883 - Line 1200 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 1884 - Line 1201 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 1885 - Line 1202 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 1886 - Line 1203 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 1887 - Line 1204 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 1888 - Line 1206 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ok 1889 - Line 1209 "[% foo = ->{ 'Hi' } %][% foo %]" => "Hi" ok 1890 - Line 1210 "[% foo = ->{ 'Hi'; this } %][% foo(2) %]" => "Hi2" ok 1891 - Line 1211 "[% foo = ->(n){ 'Hi'; n } %][% foo(2) %]" => "Hi2" ok 1892 - Line 1212 "[%n=1%][% foo = ->(n) { 'Hi' ; n } %][% foo(2) %][%n%]" => "Hi21" ok 1893 - Line 1213 "[% foo = ->(n) { FOREACH i=[1..n]; i ; END } %][% foo(3) %]" => "123" ### DEBUG ########################################### engine_option (compile_perl) ok 1894 - Line 1219 " # # [% one %]" => " # # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 1895 - Line 1220 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 1896 - Line 1221 "[% one %] # # " => "(1)ONE # # " ok 1897 - Line 1222 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 1898 - Line 1223 "[% one; # one %]" => "(1)ONE(2)ONE" ok 1899 - Line 1225 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 1900 - Line 1227 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 1901 - Line 1229 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - abc.def is undefined # " ### constants ####################################### engine_option (compile_perl) ok 1902 - Line 1248 "[% constants.harry %]" => "do_this_once" ok 1903 - Line 1249 "[% constants.harry.length %]" => "12" ok 1904 - Line 1250 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 1905 - Line 1251 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 1906 - Line 1252 "[% constants.foo.${constants.bang} %]" => "57" ok 1907 - Line 1253 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 1908 - Line 1254 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 1909 - Line 1256 "[% constants.${"harry"} %]" => "do_this_once" ok 1910 - Line 1257 "[% ${"constants"}.harry %]" => "foo" ok 1911 - Line 1259 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### CONTEXT ######################################### engine_option (compile_perl) ok 1912 - Line 1265 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 1913 - Line 1266 "[% cctx.array %]" => "ARRAY(0x2e4c644)" ok 1914 - Line 1267 "[% cctx.array2 %]" => "4" ok 1915 - Line 1268 "[% cctx.list %]" => "ARRAY(0x2e58e9c)" ok 1916 - Line 1269 "[% cctx.scalar %]" => "8" ok 1917 - Line 1270 "[% cctx.bang %]" => "bing" ok 1918 - Line 1274 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 1919 - Line 1275 "[% CALL @(cctx.call_me) %][% cctx.last_context %]" => "list" ok 1920 - Line 1276 "[% CALL $(cctx.call_me) %][% cctx.last_context %]" => "scalar" ok 1921 - Line 1277 "[% CALL call_cctx %][% cctx.last_context %]" => "list" ok 1922 - Line 1278 "[% CALL @(call_cctx) %][% cctx.last_context %]" => "list" ok 1923 - Line 1279 "[% CALL $(call_cctx) %][% cctx.last_context %]" => "scalar" ok 1924 - Line 1280 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 1925 - Line 1281 "[% CALL cctx.call_me %][% cctx.last_context.0 %]" => "list" ok 1926 - Line 1282 "[% CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 1927 - Line 1283 "[% cctx.array %]" => "ARRAY(0x2e5a3cc)" ok 1928 - Line 1284 "[% @(cctx.array) %]" => "ARRAY(0x2e59cf4)" ok 1929 - Line 1285 "[% $(cctx.array) %]" => "3" ok 1930 - Line 1286 "[% cctx.array2 %]" => "4" ok 1931 - Line 1287 "[% @(cctx.array2) %]" => "ARRAY(0x2e5a4bc)" ok 1932 - Line 1288 "[% $(cctx.array2) %]" => "1" ok 1933 - Line 1289 "[% cctx.list %]" => "ARRAY(0x2e599dc)" ok 1934 - Line 1290 "[% @(cctx.list) %]" => "ARRAY(0x2e5a684)" ok 1935 - Line 1291 "[% $(cctx.list) %]" => "7" ok 1936 - Line 1292 "[% cctx.scalar %]" => "8" ok 1937 - Line 1293 "[% @(cctx.scalar) %]" => "ARRAY(0x2e5a864)" ok 1938 - Line 1294 "[% $(cctx.scalar) %]" => "8" ok 1939 - Line 1295 "[% cctx.bang %] ~" => "bing ~" ok 1940 - Line 1296 "[% @(cctx.bang) %] ~" => "bing ~" ok 1941 - Line 1297 "[% $(cctx.bang) %] ~" => "bing ~" ok 1942 - Line 1299 "[% CONFIG CALL_CONTEXT => "list"; CALL cctx.call_me; CONFIG CALL_CONTEXT => "smart" %][% cctx.last_context %]" => "list" ok 1943 - Line 1301 "[% CONFIG CALL_CONTEXT => "item"; CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 1944 - Line 1303 "[% cctx.dataref.0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 1945 - Line 1305 "[% @(cctx.dataref).0.foo = 7; cctx.dataref.foo %]" => "7" ok 1946 - Line 1307 "[% $(cctx.dataref).0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 1947 - Line 1309 "[% CONFIG CALL_CONTEXT => "list"; cctx.dataref.0.foo = 7; CONFIG CALL_CONTEXT => "item"; cctx.dataref.foo %]" => "7" ok 1948 - Line 1314 "[% cctxo.bang = 1 %] ~" => " ~" ok 1949 - Line 1315 "[% cctxo.dataref.foo = 7; cctxo.dataref.foo %]" => "7" ok 1950 - Line 1317 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 1951 - Line 1318 "[% CALL @(cctxo.call_me) %][% cctxo.last_context %]" => "list" ok 1952 - Line 1319 "[% CALL $(cctxo.call_me) %][% cctxo.last_context %]" => "scalar" ok 1953 - Line 1320 "[% CALL call_cctxo %][% cctxo.last_context %]" => "list" ok 1954 - Line 1321 "[% CALL @(call_cctxo) %][% cctxo.last_context %]" => "list" ok 1955 - Line 1322 "[% CALL $(call_cctxo) %][% cctxo.last_context %]" => "scalar" ok 1956 - Line 1323 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 1957 - Line 1324 "[% CALL cctxo.call_me %][% cctxo.last_context.0 %]" => "list" ok 1958 - Line 1325 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "scalar" ok 1959 - Line 1326 "[% cctxo.array %]" => "ARRAY(0x2e57fe4)" ok 1960 - Line 1327 "[% @(cctxo.array) %]" => "ARRAY(0x2e5c0c4)" ok 1961 - Line 1328 "[% $(cctxo.array) %]" => "3" ok 1962 - Line 1329 "[% cctxo.array2 %]" => "4" ok 1963 - Line 1330 "[% @(cctxo.array2) %]" => "ARRAY(0x2e5cc64)" ok 1964 - Line 1331 "[% $(cctxo.array2) %]" => "1" ok 1965 - Line 1332 "[% cctxo.list %]" => "ARRAY(0x2e5c544)" ok 1966 - Line 1333 "[% @(cctxo.list) %]" => "ARRAY(0x2e5ce44)" ok 1967 - Line 1334 "[% $(cctxo.list) %]" => "7" ok 1968 - Line 1335 "[% cctxo.scalar %]" => "8" ok 1969 - Line 1336 "[% @(cctxo.scalar) %]" => "ARRAY(0x2e5f04c)" ok 1970 - Line 1337 "[% $(cctxo.scalar) %]" => "8" ok 1971 - Line 1338 "[% cctxo.bang %] ~" => "bing ~" ok 1972 - Line 1341 "[% SET cctxo.call_me = 2 %][% cctxo.last_context %]" => "list2" ok 1973 - Line 1343 "[% CALL @(cctxo.call_me = 3) %][% cctxo.last_context %]" => "list3" ok 1974 - Line 1345 "[% CALL $(cctxo.call_me = 4) %][% cctxo.last_context %]" => "scalar4" ### INTERPOLATE ##################################### engine_option (compile_perl) ok 1975 - Line 1351 "Foo $one Bar" => "Foo ONE Bar" ok 1976 - Line 1352 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 1977 - Line 1353 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 1978 - Line 1357 "Foo \ Bar" => "Foo \ Bar" ok 1979 - Line 1358 "Foo \\ Bar" => "Foo \\ Bar" ok 1980 - Line 1359 "Foo \n Bar" => "Foo \n Bar" ok 1981 - Line 1360 "Foo \$a Bar" => "Foo $a Bar" ok 1982 - Line 1361 "Foo \\$a Bar" => "Foo \\7 Bar" ok 1983 - Line 1362 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 1984 - Line 1363 "Foo $a.B Bar" => "Foo 7 Bar" ok 1985 - Line 1364 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 1986 - Line 1365 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 1987 - Line 1367 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 1988 - Line 1368 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 1989 - Line 1369 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 1990 - Line 1370 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 1991 - Line 1371 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 1992 - Line 1372 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 1993 - Line 1373 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (compile_perl) ok 1994 - Line 1378 "[% GET %]" => "" ok 1995 - Line 1379 "[% GET GET %]" => "ONE" ok 1996 - Line 1380 "[% get one %]" => "ONE" ok 1997 - Line 1381 "[% get %]" => "" ok 1998 - Line 1382 "[% get get %]" => "ONE" ok 1999 - Line 1384 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 2000 - Line 1385 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => "hi" ok 2001 - Line 1386 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi" ok 2002 - Line 1387 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi" ok 2003 - Line 1388 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => "hi" ok 2004 - Line 1389 "A[% TRY %] # hi # [% END %]" => "A # hi" ok 2005 - Line 1391 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (compile_perl) ok 2006 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2007 - Line 1397 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 2008 - Line 1400 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 2009 - Line 1401 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 2010 - Line 1403 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 2011 - Line 1404 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 2012 - Line 1405 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 2013 - Line 1406 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 2014 - Line 1408 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (compile_perl) ok 2015 - Line 1413 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 2016 - Line 1418 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 2017 - Line 1422 "[% ('a' == 'b') || 0 %]" => "0" ok 2018 - Line 1423 "[% ('a' != 'b') || 0 %]" => "1" ok 2019 - Line 1424 "[% ('a' == 'b') || 0 %]" => "0" ok 2020 - Line 1425 "[% ('a' != 'b') || 0 %]" => "1" ok 2021 - Line 1426 "[% ('a' == 'b') || 0 %]" => "1" ok 2022 - Line 1427 "[% ('a' != 'b') || 0 %]" => "0" ok 2023 - Line 1428 "[% ('7' == '7.0') || 0 %]" => "0" ok 2024 - Line 1429 "[% ('7' == '7.0') || 0 %]" => "1" ok 2025 - Line 1430 "[% (7 == 7.0) || 0 %]" => "1" ok 2026 - Line 1431 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (compile_perl) ok 2027 - Line 1436 "[% a = 7 %]$a" => "7" ok 2028 - Line 1437 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (compile_perl) ok 2029 - Line 1442 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 2030 - Line 1443 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 2031 - Line 1444 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 2032 - Line 1445 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 2033 - Line 1446 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (compile_perl) ok 2034 - Line 1451 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (compile_perl) ok 2035 - Line 1456 "[% template.name %]" => "input text" ok 2036 - Line 1457 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 2037 - Line 1458 "[% META name = 'bar' %][% template.name %]" => "bar" ok 2038 - Line 1459 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 2039 - Line 1460 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 2040 - Line 1461 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (compile_perl) ok 2041 - Line 1466 "[% a=3; b=\a; b; a %]" => "33" ok 2042 - Line 1467 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 2043 - Line 1469 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 2044 - Line 1470 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 2045 - Line 1472 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 2046 - Line 1473 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 2047 - Line 1475 "[% \a %]" => "CODE(0x2e5fd9c)" ok 2048 - Line 1476 "[% b=\a; b %]" => "a sub []" ok 2049 - Line 1477 "[% b=\a(1); b %]" => "a sub [1]" ok 2050 - Line 1478 "[% b=\a; b(2) %]" => "a sub [2]" ok 2051 - Line 1479 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 2052 - Line 1480 "[% f=\j.k; j.k=7; f %]" => "7" ok 2053 - Line 1482 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 2054 - Line 1483 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 2055 - Line 1484 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 2056 - Line 1485 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 2057 - Line 1487 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 2058 - Line 1488 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (compile_perl) ok 2059 - Line 1499 "[% GET %]" => "" ok 2060 - Line 1500 "[% GET GET %]" => "named_get" ok 2061 - Line 1501 "[% GET get %]" => "lower_named_get" ok 2062 - Line 1502 "[% GET ${'GET'} %]" => "bar" ok 2063 - Line 1504 "[% GET = 1 %][% GET GET %]" => "" ok 2064 - Line 1505 "[% SET GET = 1 %][% GET GET %]" => "1" ok 2065 - Line 1507 "[% GET $hold_get %]" => "named_get" ok 2066 - Line 1508 "[% GET $GET %]" => "value of named_get" ok 2067 - Line 1509 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 2068 - Line 1510 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 2069 - Line 1511 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 2070 - Line 1512 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (compile_perl) ok 2071 - Line 1517 "[% " \" " %]" => " " " ok 2072 - Line 1518 "[% " \$foo " %]" => " $foo " ok 2073 - Line 1519 "[% " \${foo} " %]" => " ${foo} " ok 2074 - Line 1520 "[% " \n " %]" => " # " ok 2075 - Line 1521 "[% " \t " %]" => " " ok 2076 - Line 1522 "[% " \r " %]" => " " ok 2077 - Line 1524 "[% 'foo\'bar' %]" => "foo'bar" ok 2078 - Line 1525 "[% "foo\"bar" %]" => "foo"bar" ok 2079 - Line 1526 "[% qw(foo \)).1 %]" => ")" ok 2080 - Line 1527 "[% qw|foo \||.1 %]" => "|" ok 2081 - Line 1529 "[% ' \' ' %]" => " ' " ok 2082 - Line 1530 "[% ' \r ' %]" => " \r " ok 2083 - Line 1531 "[% ' \n ' %]" => " \n " ok 2084 - Line 1532 "[% ' \t ' %]" => " \t " ok 2085 - Line 1533 "[% ' $foo ' %]" => " $foo " ok 2086 - Line 1535 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 2087 - Line 1536 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 2088 - Line 1537 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 2089 - Line 1538 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 2090 - Line 1539 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 2091 - Line 1540 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 2092 - Line 1541 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 2093 - Line 1543 "[% "[%" %]" => "[%" ok 2094 - Line 1544 "[% "%]" %]" => "%]" ok 2095 - Line 1545 "[% a = "[% %]" %][% a %]" => "[% %]" ok 2096 - Line 1546 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ### STRICT ########################################## engine_option (compile_perl) ok 2097 - Line 1550 "[% TRY; foo; CATCH; error; END %]" => "var.undef error - undefined variable: foo in input text" ok 2098 - Line 1551 "[% TRY; foo.bar(1); CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar(1) in input text" ok 2099 - Line 1552 "[% TRY; 1 IF foo.bar.baz; CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar.baz in input text" ok 2100 - Line 1554 "[% foo.bar() %]ok" => "ok" ok 2101 - Line 1555 "[% foo.baz() %]ok" => "" ### EVALUATE ######################################## engine_option (compile_perl) ok 2102 - Line 1561 "[% foo | eval %]" => "baz" ok 2103 - Line 1563 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 2104 - Line 1564 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 2105 - Line 1566 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 2106 - Line 1567 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval; f.eval %]" => ">>>>>caught>>>>>caught" ok 2107 - Line 1568 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" ok 2108 - Line 1569 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ok 2109 - Line 1571 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 2110 - Line 1572 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 2111 - Line 1573 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ok 2112 - Line 1575 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 2113 - Line 1576 "[% TRY; CONFIG STRICT => 1; '[% bar %]'.eval(STRICT => 0); CATCH; error; END %]" => "eval_strict error - Cannot disable STRICT once it is enabled" ok 2114 - Line 1577 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ### DUMP ############################################ engine_option (compile_perl) ok 2115 - Line 1585 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 2116 - Line 1586 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 2117 - Line 1587 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 2118 - Line 1588 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 2119 - Line 1589 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 2120 - Line 1590 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 2121 - Line 1591 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 2122 - Line 1592 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 2123 - Line 1593 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 2124 - Line 1594 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 2125 - Line 1595 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 2126 - Line 1596 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 2127 - Line 1597 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 2128 - Line 1598 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 2129 - Line 1599 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 2130 - Line 1600 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 2131 - Line 1601 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 2132 - Line 1603 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 2133 - Line 1604 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 2134 - Line 1606 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 2135 - Line 1607 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 2136 - Line 1608 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (compile_perl) ok 2137 - Line 1615 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 2138 - Line 1616 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2139 - Line 1617 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2140 - Line 1618 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2141 - Line 1619 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2142 - Line 1620 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2143 - Line 1621 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2144 - Line 1624 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2145 - Line 1625 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2146 - Line 1626 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 2147 - Line 1628 "" => "FOO" ok 2148 - Line 1629 "" => "7 8" ok 2149 - Line 1630 "" => "1" ok 2150 - Line 1631 "" => "1" ok 2151 - Line 1632 "d" => "" ok 2152 - Line 1634 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 2153 - Line 1635 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 2154 - Line 1636 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (compile_perl) ok 2155 - Line 1644 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 2156 - Line 1645 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 2157 - Line 1646 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 2158 - Line 1647 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 2159 - Line 1648 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 2160 - Line 1649 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 2161 - Line 1650 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 2162 - Line 1651 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 2163 - Line 1652 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 2164 - Line 1654 "[% CONFIG BOGUS => 2 %]bar" => "" ok 2165 - Line 1656 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 2166 - Line 1657 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 2167 - Line 1659 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 2168 - Line 1660 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 2169 - Line 1661 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 2170 - Line 1662 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 2171 - Line 1663 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 2172 - Line 1664 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 2173 - Line 1665 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 2174 - Line 1667 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 2175 - Line 1668 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 2176 - Line 1669 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ok 2177 - Line 1670 "[% TRY; foo; CONFIG STRICT => 1; bar; CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 2178 - Line 1671 "[% TRY; foo; CONFIG STRICT => 1; CONFIG STRICT => 0; bar; CATCH; error; END %]" => "config.strict error - Cannot disable STRICT once it is enabled" ok 2179 - Line 1672 "[% BLOCK foo; CONFIG STRICT => 1; baz; END; TRY; bam; PROCESS foo; bar; CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ok 2180 - Line 1674 "[% CONFIG AUTO_FILTER => "html"; foo %]" => "&" ### DONE ############################################ engine_option (compile_perl) ### GET ############################################# engine_option (stream) ok 2181 - Line 156 "[% foo %]" => "" ok 2182 - Line 157 "[% foo %]" => "7" ok 2183 - Line 158 "[% foo %]" => "7" ok 2184 - Line 159 "[% foo %]" => "7" ok 2185 - Line 160 "[% foo %]" => "Stash" ok 2186 - Line 161 "[% foo %]" => "V" ok 2187 - Line 162 "[% bar %]" => "" ok 2188 - Line 163 "[% foo %]" => "Stash" ok 2189 - Line 164 "[% bar %]" => "" ok 2190 - Line 165 "[% foo %]" => "Stash" ok 2191 - Line 166 "[% foo %]" => "Stash" ok 2192 - Line 167 "[% foo %][% foo %][% foo %]" => "777" ok 2193 - Line 168 "[% foo() %]" => "7" ok 2194 - Line 169 "[% foo.bar %]" => "" ok 2195 - Line 170 "[% foo.bar %]" => "" ok 2196 - Line 171 "[% foo.bar %]" => "7" ok 2197 - Line 172 "[% foo().bar %]" => "7" ok 2198 - Line 173 "[% foo.0 %]" => "7" ok 2199 - Line 174 "[% foo.10 %]" => "" ok 2200 - Line 175 "[% foo %]" => "7" ok 2201 - Line 176 "[% foo(7) %]" => "7" ok 2202 - Line 177 "[% foo.length %]" => "1" ok 2203 - Line 178 "[% foo.0 %]" => "7" ok 2204 - Line 179 "[% foo(bar) %]" => "7" ok 2205 - Line 180 "[% foo(bar.baz) %]" => "7" ok 2206 - Line 181 "[% foo.seven %]" => "7" ok 2207 - Line 182 "[% foo.seven() %]" => "7" ok 2208 - Line 183 "[% foo.seven.length %]" => "1" ok 2209 - Line 184 "[% foo.echo(7) %]" => "7" ok 2210 - Line 185 "[% foo.many.0 %]" => "1" ok 2211 - Line 186 "[% foo.many.10 %]" => "" ok 2212 - Line 187 "[% foo.nomethod %]" => "" ok 2213 - Line 188 "[% foo.nomethod.0 %]" => "" ok 2214 - Line 190 "[% GET foo %]" => "" ok 2215 - Line 191 "[% GET foo %]" => "7" ok 2216 - Line 192 "[% GET foo.bar %]" => "" ok 2217 - Line 193 "[% GET foo.bar %]" => "" ok 2218 - Line 194 "[% GET foo.bar %]" => "7" ok 2219 - Line 195 "[% GET foo.0 %]" => "7" ok 2220 - Line 196 "[% GET foo %]" => "7" ok 2221 - Line 197 "[% GET foo(7) %]" => "7" ok 2222 - Line 199 "[% $name %]" => "" ok 2223 - Line 200 "[% $name %]" => "7" ok 2224 - Line 201 "[% $name.bar %]" => "" ok 2225 - Line 202 "[% $name.bar %]" => "" ok 2226 - Line 203 "[% $name.bar %]" => "7" ok 2227 - Line 204 "[% $name().bar %]" => "7" ok 2228 - Line 205 "[% $name.0 %]" => "7" ok 2229 - Line 206 "[% $name %]" => "7" ok 2230 - Line 207 "[% $name(7) %]" => "7" ok 2231 - Line 209 "[% GET $name %]" => "" ok 2232 - Line 210 "[% GET $name %]" => "7" ok 2233 - Line 211 "[% GET $name.bar %]" => "" ok 2234 - Line 212 "[% GET $name.bar %]" => "" ok 2235 - Line 213 "[% GET $name.bar %]" => "7" ok 2236 - Line 214 "[% GET $name.0 %]" => "7" ok 2237 - Line 215 "[% GET $name %]" => "7" ok 2238 - Line 216 "[% GET $name(7) %]" => "7" ok 2239 - Line 218 "[% $name %]" => "" ok 2240 - Line 219 "[% GET $name %]" => "" ok 2241 - Line 221 "[% ${name} %]" => "" ok 2242 - Line 222 "[% ${name} %]" => "7" ok 2243 - Line 223 "[% ${name}.bar %]" => "" ok 2244 - Line 224 "[% ${name}.bar %]" => "" ok 2245 - Line 225 "[% ${name}.bar %]" => "7" ok 2246 - Line 226 "[% ${name}().bar %]" => "7" ok 2247 - Line 227 "[% ${name}.0 %]" => "7" ok 2248 - Line 228 "[% ${name} %]" => "7" ok 2249 - Line 229 "[% ${name}(7) %]" => "7" ok 2250 - Line 231 "[% GET ${name} %]" => "" ok 2251 - Line 232 "[% GET ${name} %]" => "7" ok 2252 - Line 233 "[% GET ${name}.bar %]" => "" ok 2253 - Line 234 "[% GET ${name}.bar %]" => "" ok 2254 - Line 235 "[% GET ${name}.bar %]" => "7" ok 2255 - Line 236 "[% GET ${name}.0 %]" => "7" ok 2256 - Line 237 "[% GET ${name} %]" => "7" ok 2257 - Line 238 "[% GET ${name}(7) %]" => "7" ok 2258 - Line 240 "[% ${name} %]" => "" ok 2259 - Line 241 "[% GET ${name} %]" => "" ok 2260 - Line 242 "[% GET ${'foo'} %]" => "bar" ok 2261 - Line 244 "[% foo.$name %]" => "" ok 2262 - Line 245 "[% foo.$name %]" => "7" ok 2263 - Line 246 "[% foo.$name.baz %]" => "" ok 2264 - Line 248 "[% "hi" %]" => "hi" ok 2265 - Line 249 "[% "hi %]" => "" ok 2266 - Line 250 "[% 'hi' %]" => "hi" ok 2267 - Line 251 "[% 'hi %]" => "" ok 2268 - Line 252 "[% "$foo" %]" => "7" ok 2269 - Line 253 "[% "hi $foo" %]" => "hi 7" ok 2270 - Line 254 "[% "hi ${foo}" %]" => "hi 7" ok 2271 - Line 255 "[% 'hi $foo' %]" => "hi $foo" ok 2272 - Line 256 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 2273 - Line 257 "[% 7 %]" => "7" ok 2274 - Line 258 "[% -7 %]" => "-7" ok 2275 - Line 260 "[% "hi ${foo.seven}" %]" => "hi 7" ok 2276 - Line 261 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 2277 - Line 263 "[% _foo %]2" => "2" ok 2278 - Line 264 "[% $bar %]2" => "2" ok 2279 - Line 265 "[% __foo %]2" => "2" ok 2280 - Line 267 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 2281 - Line 268 "[% [0..10].-1 %]" => "10" ok 2282 - Line 269 "[% [0..10].${ 2.3 } %]" => "2" ok 2283 - Line 271 "[% (1 + 2)() %]" => "" ok 2284 - Line 272 "[% (1 + 2) %]" => "3" ok 2285 - Line 273 "[% (a) %]" => "2" ok 2286 - Line 274 "[% ('foo') %]" => "foo" ok 2287 - Line 275 "[% (a(2)) %]" => "2" ok 2288 - Line 278 "[% JS 3 %]" => "3" ok 2289 - Line 279 "[% JS 3 %]" => "43" ok 2290 - Line 280 "[% JS; 3; END %]" => "" ### SET ############################################# engine_option (stream) ok 2291 - Line 285 "[% SET foo bar %][% foo %]" => "" ok 2292 - Line 286 "[% SET foo = 1 %][% foo %]" => "1" ok 2293 - Line 287 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 2294 - Line 288 "[% SET foo bar = 1 %][% foo %]" => "" ok 2295 - Line 289 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 2296 - Line 290 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 2297 - Line 292 "[% SET foo = [] %][% foo.0 %]" => "" ok 2298 - Line 293 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 2299 - Line 294 "[% SET foo = {} %][% foo.0 %]" => "" ok 2300 - Line 295 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 2301 - Line 296 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 2302 - Line 298 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 2303 - Line 299 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 2304 - Line 300 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 2305 - Line 301 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 2306 - Line 302 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 2307 - Line 303 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 2308 - Line 304 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 2309 - Line 305 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 2310 - Line 307 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 2311 - Line 308 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 2312 - Line 310 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 2313 - Line 311 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 2314 - Line 313 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 2315 - Line 315 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 2316 - Line 316 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 2317 - Line 317 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 2318 - Line 318 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 2319 - Line 320 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 2320 - Line 321 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 2321 - Line 322 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 2322 - Line 323 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 2323 - Line 324 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 2324 - Line 325 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 2325 - Line 326 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 2326 - Line 327 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 2327 - Line 328 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 2328 - Line 329 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 2329 - Line 331 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 2330 - Line 332 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 2331 - Line 333 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 2332 - Line 334 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 2333 - Line 335 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 2334 - Line 336 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 2335 - Line 337 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 2336 - Line 338 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 2337 - Line 339 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 2338 - Line 341 "[% foo = 1 %][% foo %]" => "1" ok 2339 - Line 342 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 2340 - Line 343 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 2341 - Line 345 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 2342 - Line 346 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 2343 - Line 348 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 2344 - Line 350 "[% _foo = 1 %][% _foo %]2" => "2" ok 2345 - Line 351 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (stream) ok 2346 - Line 356 "[% foo; %]" => "1" ok 2347 - Line 357 "[% GET foo; %]" => "1" ok 2348 - Line 358 "[% GET foo; GET foo %]" => "11" ok 2349 - Line 359 "[% GET foo GET foo %]" => "11" ok 2350 - Line 360 "[% GET foo GET foo %]" => "" ok 2351 - Line 362 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 2352 - Line 363 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 2353 - Line 364 "[% a = 1 a = a + 2 a %]" => "3" ok 2354 - Line 366 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 2355 - Line 367 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 2356 - Line 368 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (stream) ok 2357 - Line 374 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 2358 - Line 375 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 2359 - Line 376 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 2360 - Line 379 "[% foo %]" => "hi" ok 2361 - Line 380 "[% GET foo %]" => "hi" ok 2362 - Line 381 "[% CALL foo %]" => "" ok 2363 - CALL method actually called var ### scalar vmethods ################################# engine_option (stream) ok 2364 - Line 388 "[% n.0 %]" => "7" ok 2365 - Line 389 "[% n.abs %]" => "7" ok 2366 - Line 390 "[% n.abs %]" => "7" ok 2367 - Line 391 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 2368 - Line 392 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 2369 - Line 393 "[% n.chunk(3).join %]" => "abc def g" ok 2370 - Line 394 "[% n.chunk(-3).join %]" => "a bcd efg" ok 2371 - Line 395 "[% n|collapse %]" => "a b" ok 2372 - Line 396 "[% n.cos.substr(0,5) %]" => "1" ok 2373 - Line 397 "[% n.cos.substr(0,5) %]" => "0.707" ok 2374 - Line 398 "[% n.defined %]" => "1" ok 2375 - Line 399 "[% n.defined %]" => "" ok 2376 - Line 400 "[% n.defined %]" => "1" ok 2377 - Line 401 "[% n.dquote %]" => "(\n|\\|\")" ok 2378 - Line 402 "[% n.exp.substr(0,5) %]" => "2.718" ok 2379 - Line 403 "[% n.exp.log.substr(0,5) %]" => "8" ok 2380 - Line 404 "[% n.fmt %]" => "7" ok 2381 - Line 405 "[% n.fmt('%02d') %]" => "07" ok 2382 - Line 406 "[% n.fmt('%0*d', 3) %]" => "007" ok 2383 - Line 407 "[% n.fmt('(%s)') %]" => "(a # b)" ok 2384 - Line 408 "[% n|format('%02d') %]" => "07" ok 2385 - Line 409 "[% n|format('%0*d', 3) %]" => "007" ok 2386 - Line 410 "[% n|format('(%s)') %]" => "(a) # (b)" ok 2387 - Line 411 "[% n.hash.items.1 %]" => "b" ok 2388 - Line 412 "[% n.hex %]" => "255" ok 2389 - Line 413 "[% n|html %]" => "&<>"'" ok 2390 - Line 414 "[% n|html_entity %]" => "&" ok 2391 - Line 415 "[% n|xml %]" => "&<>"'" ok 2392 - Line 416 "[% n|indent %]" => " a # b" ok 2393 - Line 417 "[% n|indent(2) %]" => " a # b" ok 2394 - Line 418 "[% n|indent('wow ') %]" => "wow a # wow b" ok 2395 - Line 419 "[% n.int %]" => "123" ok 2396 - Line 420 "[% n.int %]" => "123" ok 2397 - Line 421 "[% n.int %]" => "0" ok 2398 - Line 422 "[% n.item %]" => "7" ok 2399 - Line 423 "[% n.lc %]" => "abc" ok 2400 - Line 424 "[% n|lcfirst %]" => "fOO" ok 2401 - Line 425 "[% n.length %]" => "3" ok 2402 - Line 426 "[% n.list.0 %]" => "abc" ok 2403 - Line 427 "[% n.log.substr(0,5) %]" => "4.605" ok 2404 - Line 428 "[% n|lower %]" => "abc" ok 2405 - Line 429 "[% n.match('foo').join %]" => "" ok 2406 - Line 430 "[% n.match('foo').join %]" => "1" ok 2407 - Line 431 "[% n.match('foo',1).join %]" => "foo" ok 2408 - Line 432 "[% n.match('(foo)').join %]" => "foo" ok 2409 - Line 433 "[% n.match('(foo)').join %]" => "foo" ok 2410 - Line 434 "[% n.match('(foo)',1).join %]" => "foo foo" ok 2411 - Line 435 "[% n.null %]" => "" ok 2412 - Line 436 "[% n.oct %]" => "255" ok 2413 - Line 437 "[% n.rand %]" => "1.5264831683424" ok 2414 - Line 438 "[% n.rand %]" => "0.335701955774084" ok 2415 - Line 439 "[% n.remove('bc') %]" => "a" ok 2416 - Line 440 "[% n.remove('bc') %]" => "aa" ok 2417 - Line 441 "[% n.repeat %]" => "1" ok 2418 - Line 442 "[% n.repeat(0) %]" => "" ok 2419 - Line 443 "[% n.repeat(1) %]" => "1" ok 2420 - Line 444 "[% n.repeat(2) %]" => "11" ok 2421 - Line 445 "[% n.repeat(2,'|') %]" => "1|1" ok 2422 - Line 446 "[% n.replace('foo', 'bar') %]" => "barbar" ok 2423 - Line 447 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 2424 - Line 448 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 2425 - Line 449 "[% n.search('foo') %]" => "" ok 2426 - Line 450 "[% n.search('foo') %]" => "1" ok 2427 - Line 451 "[% n.sin.substr(0,5) %]" => "0" ok 2428 - Line 452 "[% n.sin.substr(0,5) %]" => "1" ok 2429 - Line 453 "[% n.size %]" => "1" ok 2430 - Line 454 "[% n.split.join('|') %]" => "abc" ok 2431 - Line 455 "[% n.split.join('|') %]" => "a|b|c" ok 2432 - Line 456 "[% n.split.join('|') %]" => "a|b|c" ok 2433 - Line 457 "[% n.split(u,2).join('|') %]" => "a|b c" ok 2434 - Line 459 "[% n.split('/').join('|') %]" => "a|b|c" ok 2435 - Line 460 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 2436 - Line 461 "[% n.sprintf(7) %]" => "7" ok 2437 - Line 462 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 2438 - Line 463 "[% n.sqrt %]" => "3" ok 2439 - Line 464 "[% n.squote %]" => "( # |\\|\')" ok 2440 - Line 465 "[% n.srand; 12 %]" => "12" ok 2441 - Line 466 "[% n.stderr %]" => "" ok 2442 - Line 467 "[% n|trim %]" => "a b" ok 2443 - Line 468 "[% n.uc %]" => "FOO" ok 2444 - Line 469 "[% n|ucfirst %]" => "Foo" ok 2445 - Line 470 "[% n|upper %]" => "FOO" ok 2446 - Line 471 "[% n|uri %]" => "a%20b" ok 2447 - Line 473 "[% n.fmt('%c') %]" => "B" ok 2448 - Line 474 "[% n.fmt('%3X') %]" => " C" ok 2449 - Line 475 "[% n.fmt('%-3X') %]" => "C " ok 2450 - Line 476 "[% n.fmt('%03X') %]" => "00C" ok 2451 - Line 477 "[% n.fmt('%03X') %]" => "00C" ok 2452 - Line 478 "[% n.fmt('%\#03X') %]" => "0XC" ok 2453 - Line 479 "[% n.fmt('%\#07X') %]" => "0X0000C" ok 2454 - Line 481 "[% n.fmt('%o') %]" => "10" ok 2455 - Line 482 "[% n.fmt('%\#o') %]" => "010" ok 2456 - Line 483 "[% n.fmt('%\#o') %]" => "0" ok 2457 - Line 485 "[% n.fmt('%02d') %]" => "07" ok 2458 - Line 486 "[% n.fmt('%04.2d') %]" => " 07" ok 2459 - Line 487 "[% n.fmt('%+04.2d') %]" => " +07" ok 2460 - Line 488 "[% n.fmt('% 04.2d') %]" => " 07" ok 2461 - Line 489 "[% n.fmt('% +04.2d') %]" => " +07" ok 2462 - Line 490 "[% n.fmt('%02f') %]" => "7.000000" ok 2463 - Line 491 "[% n.fmt('%04.2f') %]" => "7.00" ok 2464 - Line 492 "[% n.fmt('%05.2f') %]" => "07.00" ok 2465 - Line 493 "[% n.fmt('% 5.2f') %]" => " 7.00" ok 2466 - Line 494 "[% n.fmt('%+04.2f') %]" => "+7.00" ok 2467 - Line 495 "[% n.fmt('% 04.2f') %]" => " 7.00" ok 2468 - Line 496 "[% n.fmt('% +6.2f') %]" => " +7.00" ok 2469 - Line 497 "[% n.fmt('%0+6.2f') %]" => "+07.00" ok 2470 - Line 498 "[% n.fmt('%.5g') %]" => "12345" ok 2471 - Line 499 "[% n.fmt('%.5g') %]" => "1.2346e+006" ### list vmethods ################################### engine_option (stream) ok 2472 - Line 504 "[% a.defined %]" => "1" ok 2473 - Line 505 "[% a.defined(1) %]" => "1" ok 2474 - Line 506 "[% a.defined(3) %]" => "" ok 2475 - Line 507 "[% a.first %]" => "2" ok 2476 - Line 508 "[% a.first(3).join %]" => "2 3 4" ok 2477 - Line 509 "[% a.fmt %]" => "2 3" ok 2478 - Line 510 "[% a.fmt('%02d') %]" => "02 03" ok 2479 - Line 511 "[% a.fmt('%02d',' ') %]" => "02 03" ok 2480 - Line 512 "[% a.fmt('%02d','|') %]" => "02|03" ok 2481 - Line 513 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 2482 - Line 514 "[% a.grep.join %]" => "2 3" ok 2483 - Line 515 "[% a.grep(2).join %]" => "2" ok 2484 - Line 516 "[% a.grep(->(n){n % 2}).join %]" => "3 5 7" ok 2485 - Line 517 "[% a.hash.items.join %]" => "2 3" ok 2486 - Line 518 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 2487 - Line 519 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 2488 - Line 521 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 2489 - Line 523 "[% a.item %]" => "2" ok 2490 - Line 524 "[% a.item(1) %]" => "3" ok 2491 - Line 525 "[% a.join %]" => "2 3" ok 2492 - Line 526 "[% a.join('|') %]" => "2|3" ok 2493 - Line 527 "[% a.last %]" => "10" ok 2494 - Line 528 "[% a.last(3).join %]" => "8 9 10" ok 2495 - Line 529 "[% a.list.join %]" => "2 3" ok 2496 - Line 530 "[% a.map(->(n){ n.repeat(3) }).join %]" => "222 333" ok 2497 - Line 531 "[% a.max %]" => "1" ok 2498 - Line 532 "[% a.merge(5).join %]" => "2 3" ok 2499 - Line 533 "[% a.merge([5]).join %]" => "2 3 5" ok 2500 - Line 534 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 2501 - Line 535 "[% a.nsort.join %]" => "1 2 3" ok 2502 - Line 536 "[% a.nsort('b').0.b %]" => "7" ok 2503 - Line 537 "[% a.pop %][% a.join %]" => "32" ok 2504 - Line 538 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 2505 - Line 539 "[% a.pick %]" => "2" ok 2506 - Line 540 "[% a.pick(5).join('') %]" => "23223" ok 2507 - Line 541 "[% a.reverse.join %]" => "3 2" ok 2508 - Line 542 "[% a.shift %][% a.join %]" => "23" ok 2509 - Line 543 "[% a.size %]" => "2" ok 2510 - Line 544 "[% a.slice.join %]" => "2 3 4 5" ok 2511 - Line 545 "[% a.slice(2).join %]" => "4 5" ok 2512 - Line 546 "[% a.slice(0,2).join %]" => "2 3 4" ok 2513 - Line 547 "[% a.sort.join %]" => "1 2 3" ok 2514 - Line 548 "[% a.sort('b').0.b %]" => "wee" ok 2515 - Line 549 "[% c.sort(->(a,b){ a.k cmp b.k }).map(->{this.k}).join %]" => "a wee wow" ok 2516 - Line 550 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 2517 - Line 551 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 2518 - Line 552 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 2519 - Line 553 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 2520 - Line 554 "[% a.unique.join %]" => "2 3" ok 2521 - Line 555 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (stream) ok 2522 - Line 560 "[% h.defined %]" => "1" ok 2523 - Line 561 "[% h.defined('a') %]" => "1" ok 2524 - Line 562 "[% h.defined('b') %]" => "" ok 2525 - Line 563 "[% h.defined('a') %]" => "" ok 2526 - Line 564 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 2527 - Line 565 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 2528 - Line 566 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 2529 - Line 567 "[% h.each.sort.join %]" => "1 2 a b" ok 2530 - Line 568 "[% h.exists('a') %]" => "1" ok 2531 - Line 569 "[% h.exists('b') %]" => "" ok 2532 - Line 570 "[% h.exists('a') %]" => "1" ok 2533 - Line 571 "[% h.fmt %]" => "b B # c C" ok 2534 - Line 572 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 2535 - Line 573 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 2536 - Line 574 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 2537 - Line 575 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 2538 - Line 576 "[% h.hash.fmt %]" => "b B # c C" ok 2539 - Line 577 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 2540 - Line 578 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 2541 - Line 579 "[% h.item('a') %]" => "A" ok 2542 - Line 580 "[% h.item('_a') %]" => "" ok 2543 - Line 581 "[% h.items.sort.join %]" => "1 2 a b" ok 2544 - Line 582 "[% h.keys.sort.join %]" => "a b" ok 2545 - Line 583 "[% h.list('each').sort.join %]" => "1 2 a b" ok 2546 - Line 584 "[% h.list('keys').sort.join %]" => "a b" ok 2547 - Line 585 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 2548 - Line 586 "[% h.list('values').sort.join %]" => "1 2" ok 2549 - Line 587 "[% h.null %]" => "" ok 2550 - Line 588 "[% h.nsort.join %]" => "b a" ok 2551 - Line 589 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 2552 - Line 590 "[% h.size %]" => "2" ok 2553 - Line 591 "[% h.sort.join %]" => "b a" ok 2554 - Line 592 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (stream) ok 2555 - Line 597 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 2556 - Line 598 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 2557 - Line 599 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 2558 - Line 600 "[% int(2.234) %]" => "2" ok 2559 - Line 602 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (stream) ok 2560 - Line 607 "[% [0 .. 10].reverse.1 %]" => "9" ok 2561 - Line 608 "[% {a => 'A'}.a %]" => "A" ok 2562 - Line 609 "[% 'This is a string'.length %]" => "16" ok 2563 - Line 610 "[% 123.length %]" => "3" ok 2564 - Line 611 "[% 123.2.length %]" => "5" ok 2565 - Line 612 "[% -123.2.length %]" => "-5" ok 2566 - Line 613 "[% (-123.2).length %]" => "6" ok 2567 - Line 614 "[% a = 23; a.0 %]" => "23" ok 2568 - Line 615 "[% 1.rand %]" => "0.15075242533052" ok 2569 - Line 617 "[% n.size %]" => "SIZE" ok 2570 - Line 618 "[% n|size %]" => "2" ok 2571 - Line 620 "[% "1" | indent(2) %]" => " 1" ok 2572 - Line 622 "[% n FILTER size %]" => "1" ok 2573 - Line 624 "[% n FILTER repeat %]" => "1" ok 2574 - Line 625 "[% n FILTER repeat(0) %]" => "" ok 2575 - Line 626 "[% n FILTER repeat(1) %]" => "1" ok 2576 - Line 627 "[% n FILTER repeat(2) %]" => "11" ok 2577 - Line 628 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 2578 - Line 630 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 2579 - Line 631 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 2580 - Line 632 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 2581 - Line 633 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 2582 - Line 634 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 2583 - Line 635 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 2584 - Line 637 "[% "hi" FILTER $foo %]" => "hihi" ok 2585 - Line 638 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 2586 - Line 639 "[% "hi" FILTER foo %]" => "hihi" ok 2587 - Line 640 "[% "hi" FILTER foo %]" => "hihi" ok 2588 - Line 641 "[% "hi" FILTER foo(2) %]" => "hihi" ok 2589 - Line 643 "[% ["0".."9"].pick %]" => "9" ok 2590 - Line 645 "[% ' ' | uri %]" => "%20" ok 2591 - Line 647 "[% "one".fmt %]" => "one" ok 2592 - Line 648 "[% 2.fmt("%02d") %]" => "02" ok 2593 - Line 650 "[% [1..3].fmt %]" => "1 2 3" ok 2594 - Line 651 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 2595 - Line 652 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 2596 - Line 654 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 2597 - Line 655 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 2598 - Line 656 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 2599 - Line 658 "[% 1|format("%s") %]" => "1" ok 2600 - Line 659 "[% 1|format("%*s", 6) %]" => " 1" ok 2601 - Line 660 "[% 1|format("%-*s", 6) %]" => "1 " ok 2602 - Line 662 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 2603 - Line 663 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 2604 - Line 664 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ok 2605 - Line 666 "[% foo %]" => "&" ok 2606 - Line 667 "[% "&" %]" => "&" ok 2607 - Line 668 "[% foo | none %]" => "&" ok 2608 - Line 669 "[% foo.bar %]" => "&" ok 2609 - Line 670 "[% foo.bar | none %]" => "&" ok 2610 - Line 671 "[% GET foo %]" => "&" ok 2611 - Line 672 "[% GET "&" %]" => "&" ok 2612 - Line 673 "[% GET foo | none %]" => "&" ok 2613 - Line 674 "[% Text.length(foo) %]" => "1" ### virtual objects ################################# engine_option (stream) ok 2614 - Line 679 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 2615 - Line 680 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 2616 - Line 681 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 2617 - Line 683 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 2618 - Line 684 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 2619 - Line 685 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 2620 - Line 686 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 2621 - Line 687 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 2622 - Line 689 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (stream) ok 2623 - Line 694 " [% foo %]" => " " ok 2624 - Line 695 " [%- foo %]" => "" ok 2625 - Line 696 " # [%- foo %]" => "" ok 2626 - Line 697 " # [%- foo %]" => "" ok 2627 - Line 698 " # # [%- foo %]" => " # " ok 2628 - Line 699 " # # [%- foo %]" => " # " ok 2629 - Line 700 " # [%- foo %]" => " " ok 2630 - Line 701 " # # [%- foo %]" => " # " ok 2631 - Line 703 "[% 7 %] " => "7 " ok 2632 - Line 704 "[% 7 -%] " => "7 " ok 2633 - Line 705 "[% 7 -%] # " => "7" ok 2634 - Line 706 "[% 7 -%] # " => "7" ok 2635 - Line 707 "[% 7 -%] # " => "7 " ok 2636 - Line 708 "[% 7 -%] # # # " => "7 # # " ok 2637 - Line 709 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (stream) ok 2638 - Line 714 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 2639 - Line 715 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 2640 - Line 716 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 2641 - Line 717 "[% "b" gt "c" %]<<<" => "<<<" ok 2642 - Line 718 "[% "b" gt "a" %]<<<" => "1<<<" ok 2643 - Line 719 "[% "b" ge "c" %]<<<" => "<<<" ok 2644 - Line 720 "[% "b" ge "b" %]<<<" => "1<<<" ok 2645 - Line 721 "[% "b" lt "c" %]<<<" => "1<<<" ok 2646 - Line 722 "[% "b" lt "a" %]<<<" => "<<<" ok 2647 - Line 723 "[% "b" le "a" %]<<<" => "<<<" ok 2648 - Line 724 "[% "b" le "b" %]<<<" => "1<<<" ok 2649 - Line 725 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 2650 - Line 726 "[% "b" cmp "b" %]<<<" => "0<<<" ok 2651 - Line 727 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (stream) ok 2652 - Line 732 "[% 1 + 2 %]" => "3" ok 2653 - Line 733 "[% 1 + 2 + 3 %]" => "6" ok 2654 - Line 734 "[% (1 + 2) %]" => "3" ok 2655 - Line 735 "[% 2 - 1 %]" => "1" ok 2656 - Line 736 "[% -1 + 2 %]" => "1" ok 2657 - Line 737 "[% -1+2 %]" => "1" ok 2658 - Line 738 "[% 2 - 1 %]" => "1" ok 2659 - Line 739 "[% 2-1 %]" => "1" ok 2660 - Line 740 "[% 2 - -1 %]" => "3" ok 2661 - Line 741 "[% 4 * 2 %]" => "8" ok 2662 - Line 742 "[% 4 / 2 %]" => "2" ok 2663 - Line 743 "[% 10 / 3 %]" => "3.33333333333333" ok 2664 - Line 744 "[% 10 div 3 %]" => "3" ok 2665 - Line 745 "[% 2 ** 3 %]" => "8" ok 2666 - Line 746 "[% 1 + 2 * 3 %]" => "7" ok 2667 - Line 747 "[% 3 * 2 + 1 %]" => "7" ok 2668 - Line 748 "[% (1 + 2) * 3 %]" => "9" ok 2669 - Line 749 "[% 3 * (1 + 2) %]" => "9" ok 2670 - Line 750 "[% 1 + 2 ** 3 %]" => "9" ok 2671 - Line 751 "[% 2 * 2 ** 3 %]" => "16" ok 2672 - Line 752 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 2673 - Line 753 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 2674 - Line 755 "[% a = 1; (a += 2) %]" => "3" ok 2675 - Line 756 "[% a = 1; (a -= 2) %]" => "-1" ok 2676 - Line 757 "[% a = 4; (a /= 2) %]" => "2" ok 2677 - Line 758 "[% a = 1; (a *= 2) %]" => "2" ok 2678 - Line 759 "[% a = 3; (a **= 2) %]" => "9" ok 2679 - Line 760 "[% a = 1; (a %= 2) %]" => "1" ok 2680 - Line 761 "[% a = 1; (a += 2 + 3) %]" => "6" ok 2681 - Line 762 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 2682 - Line 763 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 2683 - Line 765 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 2684 - Line 766 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 2685 - Line 768 "[% a = 2; a -= 3; a %]" => "-1" ok 2686 - Line 769 "[% a = 2; a *= 3; a %]" => "6" ok 2687 - Line 770 "[% a = 2; a /= .5; a %]" => "4" ok 2688 - Line 771 "[% a = 8; a %= 3; a %]" => "2" ok 2689 - Line 772 "[% a = 2; a **= 3; a %]" => "8" ok 2690 - Line 774 "[% a = 1 %][% ++a %][% a %]" => "22" ok 2691 - Line 775 "[% a = 1 %][% a++ %][% a %]" => "12" ok 2692 - Line 776 "[% a = 1 %][% --a %][% a %]" => "00" ok 2693 - Line 777 "[% a = 1 %][% a-- %][% a %]" => "10" ok 2694 - Line 778 "[% a++ FOR [1..3] %]" => "012" ok 2695 - Line 779 "[% --a FOR [1..3] %]" => "-1-2-3" ok 2696 - Line 781 "[% 2 > 3 %]<<<" => "<<<" ok 2697 - Line 782 "[% 2 > 1 %]<<<" => "1<<<" ok 2698 - Line 783 "[% 2 >= 3 %]<<<" => "<<<" ok 2699 - Line 784 "[% 2 >= 2 %]<<<" => "1<<<" ok 2700 - Line 785 "[% 2 < 3 %]<<<" => "1<<<" ok 2701 - Line 786 "[% 2 < 1 %]<<<" => "<<<" ok 2702 - Line 787 "[% 2 <= 1 %]<<<" => "<<<" ok 2703 - Line 788 "[% 2 <= 2 %]<<<" => "1<<<" ok 2704 - Line 789 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 2705 - Line 790 "[% 2 <=> 2 %]<<<" => "0<<<" ok 2706 - Line 791 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (stream) ok 2707 - Line 796 "[% 5 && 6 %]" => "6" ok 2708 - Line 797 "[% 5 || 6 %]" => "5" ok 2709 - Line 798 "[% 0 || 6 %]" => "6" ok 2710 - Line 799 "[% 0 && 6 %]" => "0" ok 2711 - Line 800 "[% 0 && 0 %]" => "0" ok 2712 - Line 801 "[% 5 && 6 && 7%]" => "7" ok 2713 - Line 802 "[% 0 || 1 || 2 %]" => "1" ok 2714 - Line 804 "[% 5 + (0 || 5) %]" => "10" ok 2715 - Line 807 "[% 1 ? 2 : 3 %]" => "2" ok 2716 - Line 808 "[% 0 ? 2 : 3 %]" => "3" ok 2717 - Line 809 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 2718 - Line 810 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 2719 - Line 812 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 2720 - Line 813 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 2721 - Line 814 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 2722 - Line 816 "[% 0 ? 2 : 3 %]" => "3" ok 2723 - Line 817 "[% 1 ? 2 : 3 %]" => "2" ok 2724 - Line 818 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 2725 - Line 819 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 2726 - Line 820 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 2727 - Line 821 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 2728 - Line 822 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 2729 - Line 824 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 2730 - Line 826 "[% foo //= 2 ; foo %]" => "2" ok 2731 - Line 827 "[% foo = 3; foo //= 2; foo %]" => "3" ok 2732 - Line 828 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 2733 - Line 830 "[% 5 // 6 %]" => "5" ok 2734 - Line 831 "[% foo // 6 %]" => "6" ok 2735 - Line 832 "[% foo // 6 %]" => "6" ok 2736 - Line 833 "[% foo // 6 %]" => "" ok 2737 - Line 834 "[% foo // 6 %]" => "bar" ok 2738 - Line 836 "[% foo err 6 %]" => "6" ok 2739 - Line 837 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (stream) ok 2740 - Line 843 "[% 'foo'.match(/foo/) ? 1 : 0 %]" => "1" ok 2741 - Line 844 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 2742 - Line 845 "[% 'foo'.match(/fo o/x) ? 1 : 0 %]" => "1" ok 2743 - Line 846 "[% 'foo'.match(/Foo/i) ? 1 : 0 %]" => "1" ok 2744 - Line 847 "[% 'f # o'.match(/f.o/s) ? 1 : 0 %]" => "1" ok 2745 - Line 848 "[% ' # foo'.match(/^foo/m) ? 1 : 0 %]" => "1" ok 2746 - Line 849 "[% 'foo'.match(/foo/e) ? 1 : 0 %]" => "" ok 2747 - Line 850 "[% 'foo'.match(/foo/g) ? 1 : 0 %]" => "" ok 2748 - Line 851 "[% 'foo'.match(/foo) ? 1 : 0 %]" => "" ok 2749 - Line 852 "[% 'foo'.match(/foo**/) ? 1 : 0 %]" => "" ok 2750 - Line 853 "[% 'fo/o'.match(/fo\/o/) ? 1 : 0 %]" => "1" ok 2751 - Line 854 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE / WRAPPER ############# engine_option (stream) ok 2752 - Line 860 "[% PROCESS foo %]one" => "" ok 2753 - Line 861 "[% BLOCK foo %]one" => "" ok 2754 - Line 862 "[% BLOCK foo %][% END %]one" => "one" ok 2755 - Line 863 "[% BLOCK %][% END %]one" => "one" ok 2756 - Line 864 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 2757 - Line 865 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 2758 - Line 866 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 2759 - Line 867 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 2760 - Line 868 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 2761 - Line 869 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 2762 - Line 870 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 2763 - Line 871 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 2764 - Line 872 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 2765 - Line 873 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 2766 - Line 874 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 2767 - Line 875 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 2768 - Line 876 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 2769 - Line 878 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 2770 - Line 879 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 2771 - Line 880 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% PROCESS $self self = 'blah'; self %]" => "Ta-Dablah" ok 2772 - Line 881 "[% BLOCK b %]Ta-Da[% END %][% self = 'b' %][% INCLUDE $self self = 'blah'; self %]" => "Ta-Dab" ok 2773 - Line 883 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 2774 - Line 884 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 2775 - Line 887 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]d" => "FOOBAR" ok 2776 - Line 888 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ok 2777 - Line 890 "[% BLOCK foo %]([% content %])[% END %][% WRAPPER foo %]hi there[% END %]" => "(hi there)" ok 2778 - Line 891 "[% BLOCK foo %]([% one = 1; content %])[% END %][% WRAPPER foo %]hi there[% END %][% one %]" => "(hi there)won" ok 2779 - Line 893 "[% a = 23; PROCESS $foo %]" => "bar 23 baz" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (stream) ok 2780 - Line 898 "[% IF 1 %]Yes[% END %]" => "Yes" ok 2781 - Line 899 "[% IF 0 %]Yes[% END %]" => "" ok 2782 - Line 900 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 2783 - Line 901 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 2784 - Line 902 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 2785 - Line 903 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 2786 - Line 905 "[% UNLESS 1 %]Yes[% END %]" => "" ok 2787 - Line 906 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 2788 - Line 907 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 2789 - Line 908 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 2790 - Line 909 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 2791 - Line 910 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (stream) ok 2792 - Line 915 "[%\# one %]f" => "f" ok 2793 - Line 916 "[%\# # one %]f" => "f" ok 2794 - Line 917 "[%-\# # one %]f" => "f" ok 2795 - Line 918 "[% \# # one %]f" => "ONEf" ok 2796 - Line 919 "[% \# one %] # one %]f" => " # one %]f" ok 2797 - Line 921 "[%\# BLOCK one %]" => "" ok 2798 - Line 922 "[%\# BLOCK one %]two" => "two" ok 2799 - Line 923 "[%\# BLOCK one %]two[% END %]" => "" ok 2800 - Line 924 "[%\# BLOCK one %]two[% END %]three" => "" ok 2801 - Line 925 "[% %]" => "" ok 2802 - Line 926 "[% # \# Some comment # CALL 1 -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (stream) ok 2803 - Line 934 "[% FOREACH foo %]" => "" ok 2804 - Line 935 "[% FOREACH foo %][% END %]" => "" ok 2805 - Line 936 "[% FOREACH foo %]bar[% END %]" => "" ok 2806 - Line 937 "[% FOREACH foo %]bar[% END %]" => "bar" ok 2807 - Line 938 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 2808 - Line 939 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 2809 - Line 940 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 2810 - Line 941 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 2811 - Line 942 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 2812 - Line 943 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 2813 - Line 944 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 2814 - Line 945 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 2815 - Line 946 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 2816 - Line 947 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 2817 - Line 948 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 2818 - Line 949 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 2819 - Line 950 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 2820 - Line 951 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 2821 - Line 952 "[% loop.odd FOREACH [1..5] %]" => "10101" ok 2822 - Line 953 "[% loop.even FOREACH [1..5] %]" => "01010" ok 2823 - Line 954 "[% loop.parity FOREACH [1..5] %]" => "oddevenoddevenodd" ok 2824 - Line 956 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 2825 - Line 961 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 2826 - Line 962 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 2827 - Line 963 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 2828 - Line 964 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 2829 - Line 965 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 2830 - Line 966 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 2831 - Line 967 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 2832 - Line 968 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 2833 - Line 969 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 2834 - Line 970 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 2835 - Line 971 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 2836 - Line 972 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 2837 - Line 973 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 2838 - Line 974 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 2839 - Line 977 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 2840 - Line 978 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 2841 - Line 979 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 2842 - Line 980 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ok 2843 - Line 981 "[% FOREACH f IN [2,3,4]; FOREACH g IN [6,7,8]; f;g;", "; END; END %]" => "26, 27, 28, 36, 37, 38, 46, 47, 48, " ok 2844 - Line 992 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 2845 - Line 993 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 2846 - Line 994 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 2847 - Line 995 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 2848 - Line 997 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 2849 - Line 998 "[% FOREACH i IN foo; i.n; END %]" => "1" ok 2850 - Line 999 "[% FOREACH i IN foo; i.n; END %]" => "123" ok 2851 - Line 1000 "[% FOREACH i IN foo; i.n; END %]" => "1" ### LOOP ############################################ engine_option (stream) ok 2852 - Line 1005 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 2853 - Line 1014 "[% var = [{key => 'a'}, {key => 'b'}, {key => 'c'}] -%] # [% LOOP var -%] # ([% key; '|'; __first__; '|'; __last__; '|'; __inner__; '|'; __odd__ %]) # [% END -%]" => "(a|1|0|0|1) # (b|0|0|1|0) # (c|0|1|0|1) # " ### WHILE ########################################### engine_option (stream) ok 2854 - Line 1026 "[% WHILE foo %]" => "" ok 2855 - Line 1027 "[% WHILE foo %][% END %]" => "" ok 2856 - Line 1028 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 2857 - Line 1029 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 2858 - Line 1030 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 2859 - Line 1032 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 2860 - Line 1033 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 2861 - Line 1034 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 2862 - Line 1035 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 2863 - Line 1037 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 2864 - Line 1038 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 2865 - Line 1039 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 2866 - Line 1040 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (stream) ok 2867 - Line 1045 "[% STOP %]" => "" ok 2868 - Line 1046 "One[% STOP %]Two" => "One" ok 2869 - Line 1047 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 2870 - Line 1048 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 2871 - Line 1049 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 2872 - Line 1051 "[% RETURN %]" => "" ok 2873 - Line 1052 "One[% RETURN %]Two" => "One" ok 2874 - Line 1053 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 2875 - Line 1054 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 2876 - Line 1055 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 2877 - Line 1057 "[% CLEAR %]" => "" ### post opererative directives ##################### engine_option (stream) ok 2878 - Line 1068 "[% GET foo IF 1 %]" => "1" ok 2879 - Line 1069 "[% f FOREACH f = [1..3] %]" => "123" ok 2880 - Line 1071 "2[% GET foo IF 1 IF 2 %]" => "21" ok 2881 - Line 1072 "2[% GET foo IF 1 IF 0 %]" => "2" ok 2882 - Line 1073 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 2883 - Line 1074 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 2884 - Line 1075 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 2885 - Line 1076 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 2886 - Line 1077 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 2887 - Line 1079 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 2888 - Line 1080 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 2889 - Line 1082 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (stream) ok 2890 - Line 1087 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 2891 - Line 1088 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 2892 - Line 1089 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 2893 - Line 1090 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 2894 - Line 1091 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (stream) ok 2895 - Line 1096 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 2896 - Line 1097 "[% TAGS default %][% 1 + 2 %]" => "3" ok 2897 - Line 1098 "[% TAGS html %]" => "3" ok 2898 - Line 1099 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 2899 - Line 1100 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 2900 - Line 1101 "[% TAGS php %]" => "3" ok 2901 - Line 1102 "[% TAGS star %][* 1 + 2 *]" => "3" ok 2902 - Line 1103 "[% TAGS template %][% 1 + 2 %]" => "3" ok 2903 - Line 1104 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 2904 - Line 1105 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 2905 - Line 1106 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 2906 - Line 1108 "[% TAGS html %] " => "3" ok 2907 - Line 1109 "[% TAGS html %]" => "3" ok 2908 - Line 1110 "[% TAGS html %] # " => "3" ok 2909 - Line 1111 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 2910 - Line 1112 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 2911 - Line 1114 "[% TAGS %]" => "3" ok 2912 - Line 1116 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 2913 - Line 1117 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 2914 - Line 1118 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 2915 - Line 1119 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 2916 - Line 1120 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 2917 - Line 1121 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 2918 - Line 1123 "[% TAGS html -->" => "3" ok 2919 - Line 1124 "[% TAGS html ; 7 -->" => "73" ok 2920 - Line 1125 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (stream) ok 2921 - Line 1130 "[% SWITCH 1 %][% END %]hi" => "hi" ok 2922 - Line 1131 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 2923 - Line 1132 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 2924 - Line 1133 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 2925 - Line 1134 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 2926 - Line 1135 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 2927 - Line 1136 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 2928 - Line 1137 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 2929 - Line 1138 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 2930 - Line 1140 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (stream) ok 2931 - Line 1145 "[% TRY %][% END %]hi" => "hi" ok 2932 - Line 1146 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 2933 - Line 1147 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "Foo" ok 2934 - Line 1148 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 2935 - Line 1149 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 2936 - Line 1150 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 2937 - Line 1151 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 2938 - Line 1152 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "FooFoo" ok 2939 - Line 1153 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 2940 - Line 1155 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 2941 - Line 1156 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 2942 - Line 1157 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 2943 - Line 1158 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "Foo" ok 2944 - Line 1160 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 2945 - Line 1161 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 2946 - Line 1162 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 2947 - Line 1163 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 2948 - Line 1164 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (stream) ok 2949 - Line 1170 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 2950 - Line 1172 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (stream) ok 2951 - Line 1178 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 2952 - Line 1179 "[% USE Iterator([3..6]) %]hey[% CALL Iterator.get_first; Iterator.size %]" => "hey4" ok 2953 - Line 1180 "[% USE FooTest %]one" => "one" ok 2954 - Line 1181 "[% USE FooTest2 %]one" => "one" ok 2955 - Line 1182 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 2956 - Line 1183 "[% USE FooTest2(bar = 'baz') %]one[% FooTest2.bar %]" => "onebarbaz" ok 2957 - Line 1184 "[% USE FooTest(bar = 'baz') %]one[% FooTest.bar %]" => "onebarbaz" ok 2958 - Line 1185 "[% USE d = FooTest(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 2959 - Line 1186 "[% USE d.d = FooTest(bar = 'baz') %]one[% d.d.bar %]" => "" ok 2960 - Line 1187 "[% USE FooTest(somerand = 8) %]one[% FooTest.somerand %]" => "one8" ok 2961 - Line 1189 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 2962 - Line 1190 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 2963 - Line 1193 "[% USE FooTest %]three" => "three" ### MACRO ########################################### engine_option (stream) ok 2964 - Line 1198 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 2965 - Line 1199 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 2966 - Line 1200 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 2967 - Line 1201 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 2968 - Line 1202 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 2969 - Line 1203 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 2970 - Line 1204 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 2971 - Line 1206 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ok 2972 - Line 1209 "[% foo = ->{ 'Hi' } %][% foo %]" => "Hi" ok 2973 - Line 1210 "[% foo = ->{ 'Hi'; this } %][% foo(2) %]" => "Hi2" ok 2974 - Line 1211 "[% foo = ->(n){ 'Hi'; n } %][% foo(2) %]" => "Hi2" ok 2975 - Line 1212 "[%n=1%][% foo = ->(n) { 'Hi' ; n } %][% foo(2) %][%n%]" => "Hi21" ok 2976 - Line 1213 "[% foo = ->(n) { FOREACH i=[1..n]; i ; END } %][% foo(3) %]" => "123" ### DEBUG ########################################### engine_option (stream) ok 2977 - Line 1219 " # # [% one %]" => " # # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 2978 - Line 1220 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 2979 - Line 1221 "[% one %] # # " => "(1)ONE # # " ok 2980 - Line 1222 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 2981 - Line 1223 "[% one; # one %]" => "(1)ONE(2)ONE" ok 2982 - Line 1225 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 2983 - Line 1227 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 2984 - Line 1229 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - abc.def is undefined # " ### constants ####################################### engine_option (stream) ok 2985 - Line 1248 "[% constants.harry %]" => "do_this_once" ok 2986 - Line 1249 "[% constants.harry.length %]" => "12" ok 2987 - Line 1250 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 2988 - Line 1251 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 2989 - Line 1252 "[% constants.foo.${constants.bang} %]" => "57" ok 2990 - Line 1253 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 2991 - Line 1254 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 2992 - Line 1256 "[% constants.${"harry"} %]" => "do_this_once" ok 2993 - Line 1257 "[% ${"constants"}.harry %]" => "foo" ok 2994 - Line 1259 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### CONTEXT ######################################### engine_option (stream) ok 2995 - Line 1265 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 2996 - Line 1266 "[% cctx.array %]" => "ARRAY(0x2f2873c)" ok 2997 - Line 1267 "[% cctx.array2 %]" => "4" ok 2998 - Line 1268 "[% cctx.list %]" => "ARRAY(0x2f51b7c)" ok 2999 - Line 1269 "[% cctx.scalar %]" => "8" ok 3000 - Line 1270 "[% cctx.bang %]" => "bing" ok 3001 - Line 1274 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 3002 - Line 1275 "[% CALL @(cctx.call_me) %][% cctx.last_context %]" => "list" ok 3003 - Line 1276 "[% CALL $(cctx.call_me) %][% cctx.last_context %]" => "scalar" ok 3004 - Line 1277 "[% CALL call_cctx %][% cctx.last_context %]" => "list" ok 3005 - Line 1278 "[% CALL @(call_cctx) %][% cctx.last_context %]" => "list" ok 3006 - Line 1279 "[% CALL $(call_cctx) %][% cctx.last_context %]" => "scalar" ok 3007 - Line 1280 "[% CALL cctx.call_me %][% cctx.last_context %]" => "list" ok 3008 - Line 1281 "[% CALL cctx.call_me %][% cctx.last_context.0 %]" => "list" ok 3009 - Line 1282 "[% CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 3010 - Line 1283 "[% cctx.array %]" => "ARRAY(0x2f55d04)" ok 3011 - Line 1284 "[% @(cctx.array) %]" => "ARRAY(0x2f56064)" ok 3012 - Line 1285 "[% $(cctx.array) %]" => "3" ok 3013 - Line 1286 "[% cctx.array2 %]" => "4" ok 3014 - Line 1287 "[% @(cctx.array2) %]" => "ARRAY(0x2f5379c)" ok 3015 - Line 1288 "[% $(cctx.array2) %]" => "1" ok 3016 - Line 1289 "[% cctx.list %]" => "ARRAY(0x2f520d4)" ok 3017 - Line 1290 "[% @(cctx.list) %]" => "ARRAY(0x2f5361c)" ok 3018 - Line 1291 "[% $(cctx.list) %]" => "7" ok 3019 - Line 1292 "[% cctx.scalar %]" => "8" ok 3020 - Line 1293 "[% @(cctx.scalar) %]" => "ARRAY(0x2f565d4)" ok 3021 - Line 1294 "[% $(cctx.scalar) %]" => "8" ok 3022 - Line 1295 "[% cctx.bang %] ~" => "bing ~" ok 3023 - Line 1296 "[% @(cctx.bang) %] ~" => "bing ~" ok 3024 - Line 1297 "[% $(cctx.bang) %] ~" => "bing ~" ok 3025 - Line 1299 "[% CONFIG CALL_CONTEXT => "list"; CALL cctx.call_me; CONFIG CALL_CONTEXT => "smart" %][% cctx.last_context %]" => "list" ok 3026 - Line 1301 "[% CONFIG CALL_CONTEXT => "item"; CALL cctx.call_me %][% cctx.last_context %]" => "scalar" ok 3027 - Line 1303 "[% cctx.dataref.0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 3028 - Line 1305 "[% @(cctx.dataref).0.foo = 7; cctx.dataref.foo %]" => "7" ok 3029 - Line 1307 "[% $(cctx.dataref).0.foo = 7; cctx.dataref.0.foo %]" => "7" ok 3030 - Line 1309 "[% CONFIG CALL_CONTEXT => "list"; cctx.dataref.0.foo = 7; CONFIG CALL_CONTEXT => "item"; cctx.dataref.foo %]" => "7" ok 3031 - Line 1314 "[% cctxo.bang = 1 %] ~" => " ~" ok 3032 - Line 1315 "[% cctxo.dataref.foo = 7; cctxo.dataref.foo %]" => "7" ok 3033 - Line 1317 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 3034 - Line 1318 "[% CALL @(cctxo.call_me) %][% cctxo.last_context %]" => "list" ok 3035 - Line 1319 "[% CALL $(cctxo.call_me) %][% cctxo.last_context %]" => "scalar" ok 3036 - Line 1320 "[% CALL call_cctxo %][% cctxo.last_context %]" => "list" ok 3037 - Line 1321 "[% CALL @(call_cctxo) %][% cctxo.last_context %]" => "list" ok 3038 - Line 1322 "[% CALL $(call_cctxo) %][% cctxo.last_context %]" => "scalar" ok 3039 - Line 1323 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "list" ok 3040 - Line 1324 "[% CALL cctxo.call_me %][% cctxo.last_context.0 %]" => "list" ok 3041 - Line 1325 "[% CALL cctxo.call_me %][% cctxo.last_context %]" => "scalar" ok 3042 - Line 1326 "[% cctxo.array %]" => "ARRAY(0x2f51c84)" ok 3043 - Line 1327 "[% @(cctxo.array) %]" => "ARRAY(0x2f5772c)" ok 3044 - Line 1328 "[% $(cctxo.array) %]" => "3" ok 3045 - Line 1329 "[% cctxo.array2 %]" => "4" ok 3046 - Line 1330 "[% @(cctxo.array2) %]" => "ARRAY(0x2f571ec)" ok 3047 - Line 1331 "[% $(cctxo.array2) %]" => "1" ok 3048 - Line 1332 "[% cctxo.list %]" => "ARRAY(0x2f577d4)" ok 3049 - Line 1333 "[% @(cctxo.list) %]" => "ARRAY(0x2f57c54)" ok 3050 - Line 1334 "[% $(cctxo.list) %]" => "7" ok 3051 - Line 1335 "[% cctxo.scalar %]" => "8" ok 3052 - Line 1336 "[% @(cctxo.scalar) %]" => "ARRAY(0x2f57b34)" ok 3053 - Line 1337 "[% $(cctxo.scalar) %]" => "8" ok 3054 - Line 1338 "[% cctxo.bang %] ~" => "bing ~" ok 3055 - Line 1341 "[% SET cctxo.call_me = 2 %][% cctxo.last_context %]" => "list2" ok 3056 - Line 1343 "[% CALL @(cctxo.call_me = 3) %][% cctxo.last_context %]" => "list3" ok 3057 - Line 1345 "[% CALL $(cctxo.call_me = 4) %][% cctxo.last_context %]" => "scalar4" ### INTERPOLATE ##################################### engine_option (stream) ok 3058 - Line 1351 "Foo $one Bar" => "Foo ONE Bar" ok 3059 - Line 1352 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 3060 - Line 1353 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 3061 - Line 1357 "Foo \ Bar" => "Foo \ Bar" ok 3062 - Line 1358 "Foo \\ Bar" => "Foo \\ Bar" ok 3063 - Line 1359 "Foo \n Bar" => "Foo \n Bar" ok 3064 - Line 1360 "Foo \$a Bar" => "Foo $a Bar" ok 3065 - Line 1361 "Foo \\$a Bar" => "Foo \\7 Bar" ok 3066 - Line 1362 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 3067 - Line 1363 "Foo $a.B Bar" => "Foo 7 Bar" ok 3068 - Line 1364 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 3069 - Line 1365 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 3070 - Line 1367 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 3071 - Line 1368 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 3072 - Line 1369 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 3073 - Line 1370 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 3074 - Line 1371 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 3075 - Line 1372 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 3076 - Line 1373 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (stream) ok 3077 - Line 1378 "[% GET %]" => "" ok 3078 - Line 1379 "[% GET GET %]" => "ONE" ok 3079 - Line 1380 "[% get one %]" => "ONE" ok 3080 - Line 1381 "[% get %]" => "" ok 3081 - Line 1382 "[% get get %]" => "ONE" ok 3082 - Line 1384 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 3083 - Line 1385 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => " # hi" ok 3084 - Line 1386 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi # " ok 3085 - Line 1387 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi # " ok 3086 - Line 1388 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => " # hi" ok 3087 - Line 1389 "A[% TRY %] # hi # [% END %]" => "A # hi # " ok 3088 - Line 1391 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (stream) ok 3089 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 3090 - Line 1397 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 3091 - Line 1400 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 3092 - Line 1401 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 3093 - Line 1403 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 3094 - Line 1404 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 3095 - Line 1405 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 3096 - Line 1406 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 3097 - Line 1408 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (stream) ok 3098 - Line 1413 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 3099 - Line 1418 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 3100 - Line 1422 "[% ('a' == 'b') || 0 %]" => "0" ok 3101 - Line 1423 "[% ('a' != 'b') || 0 %]" => "1" ok 3102 - Line 1424 "[% ('a' == 'b') || 0 %]" => "0" ok 3103 - Line 1425 "[% ('a' != 'b') || 0 %]" => "1" ok 3104 - Line 1426 "[% ('a' == 'b') || 0 %]" => "1" ok 3105 - Line 1427 "[% ('a' != 'b') || 0 %]" => "0" ok 3106 - Line 1428 "[% ('7' == '7.0') || 0 %]" => "0" ok 3107 - Line 1429 "[% ('7' == '7.0') || 0 %]" => "1" ok 3108 - Line 1430 "[% (7 == 7.0) || 0 %]" => "1" ok 3109 - Line 1431 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (stream) ok 3110 - Line 1436 "[% a = 7 %]$a" => "7" ok 3111 - Line 1437 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (stream) ok 3112 - Line 1442 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 3113 - Line 1443 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 3114 - Line 1444 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 3115 - Line 1445 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 3116 - Line 1446 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (stream) ok 3117 - Line 1451 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (stream) ok 3118 - Line 1456 "[% template.name %]" => "input text" ok 3119 - Line 1457 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 3120 - Line 1458 "[% META name = 'bar' %][% template.name %]" => "bar" ok 3121 - Line 1459 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 3122 - Line 1460 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 3123 - Line 1461 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (stream) ok 3124 - Line 1466 "[% a=3; b=\a; b; a %]" => "33" ok 3125 - Line 1467 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 3126 - Line 1469 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 3127 - Line 1470 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 3128 - Line 1472 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 3129 - Line 1473 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 3130 - Line 1475 "[% \a %]" => "CODE(0x2f5c454)" ok 3131 - Line 1476 "[% b=\a; b %]" => "a sub []" ok 3132 - Line 1477 "[% b=\a(1); b %]" => "a sub [1]" ok 3133 - Line 1478 "[% b=\a; b(2) %]" => "a sub [2]" ok 3134 - Line 1479 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 3135 - Line 1480 "[% f=\j.k; j.k=7; f %]" => "7" ok 3136 - Line 1482 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 3137 - Line 1483 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 3138 - Line 1484 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 3139 - Line 1485 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 3140 - Line 1487 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 3141 - Line 1488 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (stream) ok 3142 - Line 1499 "[% GET %]" => "" ok 3143 - Line 1500 "[% GET GET %]" => "named_get" ok 3144 - Line 1501 "[% GET get %]" => "lower_named_get" ok 3145 - Line 1502 "[% GET ${'GET'} %]" => "bar" ok 3146 - Line 1504 "[% GET = 1 %][% GET GET %]" => "" ok 3147 - Line 1505 "[% SET GET = 1 %][% GET GET %]" => "1" ok 3148 - Line 1507 "[% GET $hold_get %]" => "named_get" ok 3149 - Line 1508 "[% GET $GET %]" => "value of named_get" ok 3150 - Line 1509 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 3151 - Line 1510 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 3152 - Line 1511 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 3153 - Line 1512 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (stream) ok 3154 - Line 1517 "[% " \" " %]" => " " " ok 3155 - Line 1518 "[% " \$foo " %]" => " $foo " ok 3156 - Line 1519 "[% " \${foo} " %]" => " ${foo} " ok 3157 - Line 1520 "[% " \n " %]" => " # " ok 3158 - Line 1521 "[% " \t " %]" => " " ok 3159 - Line 1522 "[% " \r " %]" => " " ok 3160 - Line 1524 "[% 'foo\'bar' %]" => "foo'bar" ok 3161 - Line 1525 "[% "foo\"bar" %]" => "foo"bar" ok 3162 - Line 1526 "[% qw(foo \)).1 %]" => ")" ok 3163 - Line 1527 "[% qw|foo \||.1 %]" => "|" ok 3164 - Line 1529 "[% ' \' ' %]" => " ' " ok 3165 - Line 1530 "[% ' \r ' %]" => " \r " ok 3166 - Line 1531 "[% ' \n ' %]" => " \n " ok 3167 - Line 1532 "[% ' \t ' %]" => " \t " ok 3168 - Line 1533 "[% ' $foo ' %]" => " $foo " ok 3169 - Line 1535 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 3170 - Line 1536 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 3171 - Line 1537 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 3172 - Line 1538 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 3173 - Line 1539 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 3174 - Line 1540 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 3175 - Line 1541 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 3176 - Line 1543 "[% "[%" %]" => "[%" ok 3177 - Line 1544 "[% "%]" %]" => "%]" ok 3178 - Line 1545 "[% a = "[% %]" %][% a %]" => "[% %]" ok 3179 - Line 1546 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ### STRICT ########################################## engine_option (stream) ok 3180 - Line 1550 "[% TRY; foo; CATCH; error; END %]" => "var.undef error - undefined variable: foo in input text" ok 3181 - Line 1551 "[% TRY; foo.bar(1); CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar(1) in input text" ok 3182 - Line 1552 "[% TRY; 1 IF foo.bar.baz; CATCH; error; END %]" => "var.undef error - undefined variable: foo.bar.baz in input text" ok 3183 - Line 1554 "[% foo.bar() %]ok" => "ok" ok 3184 - Line 1555 "[% foo.baz() %]ok" => "" ### EVALUATE ######################################## engine_option (stream) ok 3185 - Line 1561 "[% foo | eval %]" => "baz" ok 3186 - Line 1563 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 3187 - Line 1564 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 3188 - Line 1566 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 3189 - Line 1567 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval; f.eval %]" => ">>>>>caught>>>>>caught" ok 3190 - Line 1568 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" ok 3191 - Line 1569 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ok 3192 - Line 1571 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 3193 - Line 1572 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 3194 - Line 1573 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ok 3195 - Line 1575 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 3196 - Line 1576 "[% TRY; CONFIG STRICT => 1; '[% bar %]'.eval(STRICT => 0); CATCH; error; END %]" => "eval_strict error - Cannot disable STRICT once it is enabled" ok 3197 - Line 1577 "[% TRY; '[% bar %]'.eval(STRICT => 1); CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ### DUMP ############################################ engine_option (stream) ok 3198 - Line 1585 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 3199 - Line 1586 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 3200 - Line 1587 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 3201 - Line 1588 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 3202 - Line 1589 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 3203 - Line 1590 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 3204 - Line 1591 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 3205 - Line 1592 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 3206 - Line 1593 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 3207 - Line 1594 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 3208 - Line 1595 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 3209 - Line 1596 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 3210 - Line 1597 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 3211 - Line 1598 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 3212 - Line 1599 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 3213 - Line 1600 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 3214 - Line 1601 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 3215 - Line 1603 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 3216 - Line 1604 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 3217 - Line 1606 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 3218 - Line 1607 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 3219 - Line 1608 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (stream) ok 3220 - Line 1615 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 3221 - Line 1616 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 3222 - Line 1617 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 3223 - Line 1618 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 3224 - Line 1619 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 3225 - Line 1620 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 3226 - Line 1621 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 3227 - Line 1624 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 3228 - Line 1625 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 3229 - Line 1626 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 3230 - Line 1628 "" => "FOO" ok 3231 - Line 1629 "" => "7 8" ok 3232 - Line 1630 "" => "1" ok 3233 - Line 1631 "" => "1" ok 3234 - Line 1632 "d" => "" ok 3235 - Line 1634 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 3236 - Line 1635 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 3237 - Line 1636 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (stream) ok 3238 - Line 1644 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 3239 - Line 1645 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 3240 - Line 1646 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 3241 - Line 1647 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 3242 - Line 1648 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 3243 - Line 1649 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 3244 - Line 1650 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 3245 - Line 1651 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 3246 - Line 1652 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 3247 - Line 1654 "[% CONFIG BOGUS => 2 %]bar" => "" ok 3248 - Line 1656 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 3249 - Line 1657 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 3250 - Line 1659 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 3251 - Line 1660 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 3252 - Line 1661 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 3253 - Line 1662 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 3254 - Line 1663 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 3255 - Line 1664 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 3256 - Line 1665 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 3257 - Line 1667 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 3258 - Line 1668 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 3259 - Line 1669 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ok 3260 - Line 1670 "[% TRY; foo; CONFIG STRICT => 1; bar; CATCH; error; END %]" => "var.undef error - undefined variable: bar in input text" ok 3261 - Line 1671 "[% TRY; foo; CONFIG STRICT => 1; CONFIG STRICT => 0; bar; CATCH; error; END %]" => "config.strict error - Cannot disable STRICT once it is enabled" ok 3262 - Line 1672 "[% BLOCK foo; CONFIG STRICT => 1; baz; END; TRY; bam; PROCESS foo; bar; CATCH; error.type; END; bing %] - ok" => "var.undef - ok" ok 3263 - Line 1674 "[% CONFIG AUTO_FILTER => "html"; foo %]" => "&" ### DONE ############################################ engine_option (stream) ok t/10_tt_includes.t ...... 1..351 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ok 3 - Got a nested test dir up and running ### INSERT ########################################## engine_option (normal) ok 4 - Line 127 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 5 - Line 128 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 6 - Line 129 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 7 - Line 130 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 8 - Line 131 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (normal) ok 9 - Line 136 "([% INCLUDE bar.tt %])" => "(BAR)" ok 10 - Line 137 "[% PROCESS foo.tt %]" => "(BAR)" ok 11 - Line 138 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 12 - Line 139 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 13 - Line 140 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 14 - Line 141 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 15 - Line 142 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 16 - Line 143 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 17 - Line 144 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 18 - Line 145 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 19 - Line 147 "([% INCLUDE baz.tt %])" => "(42)" ok 20 - Line 148 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 21 - Line 149 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ok 22 - Line 151 "([% META blam = 5; INCLUDE blocks.tt %])" => "()" ok 23 - Line 152 "([% META blam = 5; INCLUDE blocks.tt %])([% PROCESS foo text => 'bar' %])" => "" ok 24 - Line 153 "([% META blam = 5; INCLUDE blocks.tt %])([% foo_m('hey') %])" => "()()" ok 25 - Line 154 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "" ok 26 - Line 155 "([% META blam = 5; INCLUDE blocks.tt/bar %])" => "(bar)" ok 27 - Line 156 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "" ### PROCESS ######################################### engine_option (normal) ok 28 - Line 161 "([% PROCESS bar.tt %])" => "(BAR)" ok 29 - Line 162 "[% PROCESS foo.tt %]" => "(BAR)" ok 30 - Line 163 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 31 - Line 164 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 32 - Line 165 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 33 - Line 166 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 34 - Line 167 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 35 - Line 168 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 36 - Line 169 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 37 - Line 170 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 38 - Line 172 "([% PROCESS baz.tt %])" => "(42)" ok 39 - Line 173 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 40 - Line 174 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 41 - Line 176 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 42 - Line 177 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 43 - Line 178 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 44 - Line 179 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 45 - Line 181 "[% PROCESS nested/foo2.tt %]" => "" ok 46 - Line 182 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 47 - Line 183 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 48 - Line 184 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 49 - Line 186 "([% META blam = 5; PROCESS blocks.tt %])" => "()" ok 50 - Line 187 "([% META blam = 5; PROCESS blocks.tt %])([% PROCESS foo text => 'bar' %])" => "()(I am bar - 5bar)" ok 51 - Line 188 "([% META blam = 5; PROCESS blocks.tt %])([% foo_m('hey') %])" => "()(I am hey - 5)" ok 52 - Line 189 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "" ok 53 - Line 190 "([% META blam = 5; PROCESS blocks.tt/bar %])" => "(bar)" ok 54 - Line 191 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "" ### WRAPPER ######################################### engine_option (normal) ok 55 - Line 196 "([% WRAPPER wrap.tt %])" => "" ok 56 - Line 197 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 57 - Line 198 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 58 - Line 199 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 59 - Line 200 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 60 - Line 201 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (normal) ok 61 - Line 206 "Foo" => "BARFoo" ok 62 - Line 207 "Foo" => "BARFoo" ok 63 - Line 208 "Foo" => "(BAR)BARFoo" ok 64 - Line 209 "Foo" => "BlueBARFoo" ok 65 - Line 210 "Foo[% blue='Blue' %]" => "BARFoo" ok 66 - Line 211 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 67 - Line 212 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 68 - Line 214 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (normal) ok 69 - Line 219 "Foo" => "FooBAR" ok 70 - Line 220 "Foo" => "FooBAR" ok 71 - Line 221 "Foo" => "Foo(BAR)BAR" ok 72 - Line 222 "Foo" => "FooBlueBAR" ok 73 - Line 223 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 74 - Line 224 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 75 - Line 225 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 76 - Line 227 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (normal) ok 77 - Line 232 "Foo" => "BAR" ok 78 - Line 233 "Foo" => "BAR" ok 79 - Line 234 "Foo" => "(BAR)BAR" ok 80 - Line 235 "Foo" => "BlueBAR" ok 81 - Line 236 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 82 - Line 237 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 83 - Line 238 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 84 - Line 240 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (normal) ok 85 - Line 245 " one " => "Hi one there" ok 86 - Line 246 " one " => "Hi one there" ok 87 - Line 247 " one " => "HiwrapHi one therethere" ok 88 - Line 248 " ([% baz %]) " => "Hi () there" ok 89 - Line 249 " one " => "HiBAZ one there" ok 90 - Line 250 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 91 - Line 251 "[% META foo='BLAM' %] " => "HiBLAM there" ok 92 - Line 253 " one " => "BARHi one there" ok 93 - Line 254 " one " => "HiBARthere" ok 94 - Line 255 " one " => "Hi one thereBAR" ok 95 - Line 257 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (normal) ok 96 - Line 262 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 97 - Line 263 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 98 - Line 264 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 99 - Line 265 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 100 - Line 266 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 101 - Line 267 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 102 - Line 268 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 103 - Line 269 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 104 - Line 270 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 105 - Line 272 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 106 - Line 273 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 107 - Line 274 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 108 - Line 276 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 109 - Line 277 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 110 - Line 279 "(outer)[% PROCESS 'die.tt' %]" => "Error (bing) - (blang)" ok 111 - Line 281 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 112 - Line 283 " one " => "" ok 113 - Line 284 " one " => "" ok 114 - Line 285 " one " => "" ### CONFIG and DUMP ################################# engine_option (normal) ok 115 - Line 290 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ok 116 - Line 297 "[% PROCESS 'config2.tt' %]" => "DUMP: File "config2.tt/nested" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (normal) ok 117 - Line 304 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 118 - Line 305 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 119 - Line 306 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (normal) ### INSERT ########################################## engine_option (compile_perl) ok 120 - Line 127 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 121 - Line 128 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 122 - Line 129 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 123 - Line 130 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 124 - Line 131 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (compile_perl) ok 125 - Line 136 "([% INCLUDE bar.tt %])" => "(BAR)" ok 126 - Line 137 "[% PROCESS foo.tt %]" => "(BAR)" ok 127 - Line 138 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 128 - Line 139 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 129 - Line 140 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 130 - Line 141 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 131 - Line 142 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 132 - Line 143 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 133 - Line 144 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 134 - Line 145 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 135 - Line 147 "([% INCLUDE baz.tt %])" => "(42)" ok 136 - Line 148 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 137 - Line 149 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ok 138 - Line 151 "([% META blam = 5; INCLUDE blocks.tt %])" => "()" ok 139 - Line 152 "([% META blam = 5; INCLUDE blocks.tt %])([% PROCESS foo text => 'bar' %])" => "" ok 140 - Line 153 "([% META blam = 5; INCLUDE blocks.tt %])([% foo_m('hey') %])" => "()()" ok 141 - Line 154 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "" ok 142 - Line 155 "([% META blam = 5; INCLUDE blocks.tt/bar %])" => "(bar)" ok 143 - Line 156 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "" ### PROCESS ######################################### engine_option (compile_perl) ok 144 - Line 161 "([% PROCESS bar.tt %])" => "(BAR)" ok 145 - Line 162 "[% PROCESS foo.tt %]" => "(BAR)" ok 146 - Line 163 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 147 - Line 164 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 148 - Line 165 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 149 - Line 166 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 150 - Line 167 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 151 - Line 168 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 152 - Line 169 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 153 - Line 170 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 154 - Line 172 "([% PROCESS baz.tt %])" => "(42)" ok 155 - Line 173 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 156 - Line 174 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 157 - Line 176 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 158 - Line 177 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 159 - Line 178 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 160 - Line 179 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 161 - Line 181 "[% PROCESS nested/foo2.tt %]" => "" ok 162 - Line 182 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 163 - Line 183 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 164 - Line 184 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 165 - Line 186 "([% META blam = 5; PROCESS blocks.tt %])" => "()" ok 166 - Line 187 "([% META blam = 5; PROCESS blocks.tt %])([% PROCESS foo text => 'bar' %])" => "()(I am bar - 5bar)" ok 167 - Line 188 "([% META blam = 5; PROCESS blocks.tt %])([% foo_m('hey') %])" => "()(I am hey - 5)" ok 168 - Line 189 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "" ok 169 - Line 190 "([% META blam = 5; PROCESS blocks.tt/bar %])" => "(bar)" ok 170 - Line 191 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "" ### WRAPPER ######################################### engine_option (compile_perl) ok 171 - Line 196 "([% WRAPPER wrap.tt %])" => "" ok 172 - Line 197 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 173 - Line 198 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 174 - Line 199 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 175 - Line 200 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 176 - Line 201 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (compile_perl) ok 177 - Line 206 "Foo" => "BARFoo" ok 178 - Line 207 "Foo" => "BARFoo" ok 179 - Line 208 "Foo" => "(BAR)BARFoo" ok 180 - Line 209 "Foo" => "BlueBARFoo" ok 181 - Line 210 "Foo[% blue='Blue' %]" => "BARFoo" ok 182 - Line 211 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 183 - Line 212 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 184 - Line 214 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (compile_perl) ok 185 - Line 219 "Foo" => "FooBAR" ok 186 - Line 220 "Foo" => "FooBAR" ok 187 - Line 221 "Foo" => "Foo(BAR)BAR" ok 188 - Line 222 "Foo" => "FooBlueBAR" ok 189 - Line 223 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 190 - Line 224 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 191 - Line 225 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 192 - Line 227 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (compile_perl) ok 193 - Line 232 "Foo" => "BAR" ok 194 - Line 233 "Foo" => "BAR" ok 195 - Line 234 "Foo" => "(BAR)BAR" ok 196 - Line 235 "Foo" => "BlueBAR" ok 197 - Line 236 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 198 - Line 237 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 199 - Line 238 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 200 - Line 240 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (compile_perl) ok 201 - Line 245 " one " => "Hi one there" ok 202 - Line 246 " one " => "Hi one there" ok 203 - Line 247 " one " => "HiwrapHi one therethere" ok 204 - Line 248 " ([% baz %]) " => "Hi () there" ok 205 - Line 249 " one " => "HiBAZ one there" ok 206 - Line 250 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 207 - Line 251 "[% META foo='BLAM' %] " => "HiBLAM there" ok 208 - Line 253 " one " => "BARHi one there" ok 209 - Line 254 " one " => "HiBARthere" ok 210 - Line 255 " one " => "Hi one thereBAR" ok 211 - Line 257 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (compile_perl) ok 212 - Line 262 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 213 - Line 263 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 214 - Line 264 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 215 - Line 265 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 216 - Line 266 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 217 - Line 267 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 218 - Line 268 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 219 - Line 269 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 220 - Line 270 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 221 - Line 272 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 222 - Line 273 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 223 - Line 274 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 224 - Line 276 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 225 - Line 277 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 226 - Line 279 "(outer)[% PROCESS 'die.tt' %]" => "Error (bing) - (blang)" ok 227 - Line 281 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 228 - Line 283 " one " => "" ok 229 - Line 284 " one " => "" ok 230 - Line 285 " one " => "" ### CONFIG and DUMP ################################# engine_option (compile_perl) ok 231 - Line 290 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ok 232 - Line 297 "[% PROCESS 'config2.tt' %]" => "DUMP: File "config2.tt/nested" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (compile_perl) ok 233 - Line 304 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 234 - Line 305 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 235 - Line 306 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (compile_perl) ### INSERT ########################################## engine_option (stream) ok 236 - Line 127 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 237 - Line 128 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 238 - Line 129 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 239 - Line 130 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 240 - Line 131 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (stream) ok 241 - Line 136 "([% INCLUDE bar.tt %])" => "(BAR)" ok 242 - Line 137 "[% PROCESS foo.tt %]" => "(BAR)" ok 243 - Line 138 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 244 - Line 139 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 245 - Line 140 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 246 - Line 141 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 247 - Line 142 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 248 - Line 143 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 249 - Line 144 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 250 - Line 145 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 251 - Line 147 "([% INCLUDE baz.tt %])" => "(42)" ok 252 - Line 148 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 253 - Line 149 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ok 254 - Line 151 "([% META blam = 5; INCLUDE blocks.tt %])" => "()" ok 255 - Line 152 "([% META blam = 5; INCLUDE blocks.tt %])([% PROCESS foo text => 'bar' %])" => "()(" ok 256 - Line 153 "([% META blam = 5; INCLUDE blocks.tt %])([% foo_m('hey') %])" => "()()" ok 257 - Line 154 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "(" ok 258 - Line 155 "([% META blam = 5; INCLUDE blocks.tt/bar %])" => "(bar)" ok 259 - Line 156 "([% META blam = 5; INCLUDE blocks.tt/foo text => 'bar' %])" => "(I am bar - 5" ### PROCESS ######################################### engine_option (stream) ok 260 - Line 161 "([% PROCESS bar.tt %])" => "(BAR)" ok 261 - Line 162 "[% PROCESS foo.tt %]" => "(BAR)" ok 262 - Line 163 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 263 - Line 164 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 264 - Line 165 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 265 - Line 166 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 266 - Line 167 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 267 - Line 168 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 268 - Line 169 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 269 - Line 170 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 270 - Line 172 "([% PROCESS baz.tt %])" => "(42)" ok 271 - Line 173 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 272 - Line 174 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 273 - Line 176 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 274 - Line 177 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 275 - Line 178 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 276 - Line 179 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 277 - Line 181 "[% PROCESS nested/foo2.tt %]" => "(Nested foo " ok 278 - Line 182 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 279 - Line 183 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 280 - Line 184 "[% CONFIG ADD_LOCAL_PATH => 1 ; PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 281 - Line 186 "([% META blam = 5; PROCESS blocks.tt %])" => "()" ok 282 - Line 187 "([% META blam = 5; PROCESS blocks.tt %])([% PROCESS foo text => 'bar' %])" => "()(I am bar - 5bar)" ok 283 - Line 188 "([% META blam = 5; PROCESS blocks.tt %])([% foo_m('hey') %])" => "()(I am hey - 5)" ok 284 - Line 189 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "(" ok 285 - Line 190 "([% META blam = 5; PROCESS blocks.tt/bar %])" => "(bar)" ok 286 - Line 191 "([% META blam = 5; PROCESS blocks.tt/foo text => 'bar' %])" => "(I am bar - 5" ### WRAPPER ######################################### engine_option (stream) ok 287 - Line 196 "([% WRAPPER wrap.tt %])" => "" ok 288 - Line 197 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 289 - Line 198 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 290 - Line 199 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 291 - Line 200 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 292 - Line 201 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (stream) ok 293 - Line 206 "Foo" => "BARFoo" ok 294 - Line 207 "Foo" => "BARFoo" ok 295 - Line 208 "Foo" => "(BAR)BARFoo" ok 296 - Line 209 "Foo" => "BlueBARFoo" ok 297 - Line 210 "Foo[% blue='Blue' %]" => "BARFoo" ok 298 - Line 211 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 299 - Line 212 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 300 - Line 214 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (stream) ok 301 - Line 219 "Foo" => "FooBAR" ok 302 - Line 220 "Foo" => "FooBAR" ok 303 - Line 221 "Foo" => "Foo(BAR)BAR" ok 304 - Line 222 "Foo" => "FooBlueBAR" ok 305 - Line 223 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 306 - Line 224 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 307 - Line 225 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 308 - Line 227 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (stream) ok 309 - Line 232 "Foo" => "BAR" ok 310 - Line 233 "Foo" => "BAR" ok 311 - Line 234 "Foo" => "(BAR)BAR" ok 312 - Line 235 "Foo" => "BlueBAR" ok 313 - Line 236 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 314 - Line 237 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 315 - Line 238 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 316 - Line 240 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (stream) ok 317 - Line 245 " one " => "Hi one there" ok 318 - Line 246 " one " => "Hi one there" ok 319 - Line 247 " one " => "HiwrapHi one therethere" ok 320 - Line 248 " ([% baz %]) " => "Hi () there" ok 321 - Line 249 " one " => "HiBAZ one there" ok 322 - Line 250 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 323 - Line 251 "[% META foo='BLAM' %] " => "HiBLAM there" ok 324 - Line 253 " one " => "BARHi one there" ok 325 - Line 254 " one " => "HiBARthere" ok 326 - Line 255 " one " => "Hi one thereBAR" ok 327 - Line 257 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (stream) ok 328 - Line 262 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 329 - Line 263 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 330 - Line 264 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 331 - Line 265 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 332 - Line 266 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 333 - Line 267 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 334 - Line 268 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 335 - Line 269 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 336 - Line 270 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 337 - Line 272 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 338 - Line 273 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 339 - Line 275 "[% THROW foo 'bar' %]" => "BARError (bing) - (blang)" ok 340 - Line 276 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 341 - Line 277 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 342 - Line 280 "(outer)[% PROCESS 'die.tt' %]" => "(outer)Error (bing) - (blang)" ok 343 - Line 281 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 344 - Line 283 " one " => "" ok 345 - Line 284 " one " => " one " ok 346 - Line 285 " one " => "" ### CONFIG and DUMP ################################# engine_option (stream) ok 347 - Line 290 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ok 348 - Line 297 "[% PROCESS 'config2.tt' %]" => "DUMP: File "config2.tt/nested" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (stream) ok 349 - Line 304 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 350 - Line 305 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 351 - Line 306 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (stream) ok t/11_tt_input_output.t .. 1..21 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### INPUT ########################################### ok 3 - process(\$in, {}, \$out) ok 4 - process($filename, {}, \$out) ok 5 - process(\&code, {}, \$out) ok 6 - process($obj->load_template($filename), {}, \$out) ok 7 - process(\*FH, {}, \$out) ok 8 - process($fh, {}, \$out) ### OUTPUT ########################################## ok 9 - new(OUTPUT=>\$out)->process(\$str) ok 10 - process(\$str, {}, \&code) ok 11 - process(\$str, {}, $obj) - where $obj->can("print") ok 12 - process(\$str, {}, \$out) ok 13 - process(\$str, {}, \@out) ok 14 - process(\$str, {}, \*FH) ok 15 - process(\$str, {}, $fh) ok 16 - Skip ABSOLUTE/RELATIVE output tests ok 17 - Skip ABSOLUTE/RELATIVE output tests ok 18 - Skip ABSOLUTE/RELATIVE output tests ok 19 - process(\$str, {}, $filename) - with OUTPUT_PATH ok 20 - process(\$str, {}, $filename) - with binmode ok 21 - process(\$str) ### DONE ############################################ ok t/15_tt_view.t .......... 1..105 ok 1 - use Template::Alloy; ok 2 - Line 135 "[% USE v = view -%] # [[% v.prefix %]]" => "[]" ok 3 - Line 138 "[% USE v = view( map => { default='any' } ) -%] # [[% v.map.default %]]" => "[any]" ok 4 - Line 141 "[% USE view( prefix=> 'foo/', suffix => '.tt2') -%] # [[% view.prefix %]bar[% view.suffix %]] # [[% view.template_name('baz') %]]" => "[foo/bar.tt2] # [foo/baz.tt2]" ok 5 - Line 146 "[% USE view( prefix=> 'foo/', suffix => '.tt2') -%] # [[% view.prefix %]bar[% view.suffix %]] # [[% view.template_name('baz') %]]" => "[foo/bar.tt2] # [foo/baz.tt2]" ok 6 - Line 151 "[% USE view -%] # [% view.print('Hello World') %] # [% BLOCK text %]TEXT: [% item %][% END -%]" => "TEXT: Hello World # " ok 7 - Line 155 "[% USE view -%] # [% view.print( { foo => 'bar' } ) %] # [% BLOCK hash %]HASH: { # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [%- END %] # } # [% END -%]" => "HASH: { # foo => bar # } # # " ok 8 - Line 166 "[% USE view -%] # [% view = view.clone( prefix => 'my_' ) -%] # [% view.view('hash', { bar => 'baz' }) %] # [% BLOCK my_hash %]HASH: { # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [%- END %] # } # [% END -%]" => "HASH: { # bar => baz # } # # " ok 9 - Line 178 "[% USE view(prefix='my_') -%] # [% view.print( foo => 'wiz', bar => 'waz' ) %] # [% BLOCK my_hash %]KEYS: [% item.keys.sort.join(', ') %][% END %] # # " => "KEYS: bar, foo # # # " ok 10 - Line 184 "[% USE view -%] # [% view.print( view ) %] # [% BLOCK Template_View %]Printing a Template::View object[% END -%]" => "Printing a Template::View object # " ok 11 - Line 188 "[% USE view(prefix='my_') -%] # [% view.print( view ) %] # [% view.print( view, prefix='your_' ) %] # [% BLOCK my_Template_View %]Printing my Template::View object[% END -%] # [% BLOCK your_Template_View %]Printing your Template::View object[% END -%]" => "Printing my Template::View object # Printing your Template::View object # " ok 12 - Line 195 "[% USE view(prefix='my_', notfound='any' ) -%] # [% view.print( view ) %] # [% view.print( view, prefix='your_' ) %] # [% BLOCK my_any %]Printing any of my objects[% END -%] # [% BLOCK your_any %]Printing any of your objects[% END -%]" => "Printing any of my objects # Printing any of your objects # " ok 13 - Line 203 "[% USE view(prefix => 'my_', map => { default => 'catchall' } ) -%] # [% view.print( view ) %] # [% view.print( view, default='catchsome' ) %] # [% BLOCK my_catchall %]Catching all defaults[% END -%] # [% BLOCK my_catchsome %]Catching some defaults[% END -%]" => "Catching all defaults # Catching some defaults # " ok 14 - Line 211 "[% USE view(prefix => 'my_', map => { default => 'catchnone' } ) -%] # [% view.default %] # [% view.default = 'catchall' -%] # [% view.default %] # [% view.print( view ) %] # [% view.print( view, default='catchsome' ) %] # [% BLOCK my_catchall %]Catching all defaults[% END -%] # [% BLOCK my_catchsome %]Catching some defaults[% END -%]" => "catchnone # catchall # Catching all defaults # Catching some defaults # " ok 15 - Line 224 "[% USE view(prefix='my_', default='catchall' notfound='lost') -%] # [% view.print( view ) %] # [% BLOCK my_lost %]Something has been found[% END -%]" => "Something has been found # " ok 16 - Line 229 "[% USE view -%] # [% TRY ; # view.print( view ) ; # CATCH view ; # "[$error.type] $error.info" ; # END # %]" => "[view] file error - Template_View: not found" ok 17 - Line 237 "[% USE view -%] # [% view.print( foo ) %]" => "{ e => 2.718, pi => 3.14 }" ok 18 - Line 240 "[% USE view -%] # [% view.print( foo, method => 'reverse' ) %]" => "{ pi => 3.14, e => 2.718 }" ok 19 - Line 243 "[% USE view(prefix='my_', include_naked=0, view_naked=1) -%] # [% BLOCK my_foo; "Foo: $item"; END -%] # [[% view.view_foo(20) %]] # [[% view.foo(30) %]]" => "[Foo: 20] # [Foo: 30]" ok 20 - Line 249 "[% USE view(prefix='my_', include_naked=0, view_naked=0) -%] # [% BLOCK my_foo; "Foo: $item"; END -%] # [[% view.view_foo(20) %]] # [% TRY ; # view.foo(30) ; # CATCH ; # error.info ; # END # %]" => "[Foo: 20] # no such view member: foo" ok 21 - Line 260 "[% USE view(map => { HASH => 'my_hash', ARRAY => 'your_list' }) -%] # [% BLOCK text %]TEXT: [% item %][% END -%] # [% BLOCK my_hash %]HASH: [% item.keys.sort.join(', ') %][% END -%] # [% BLOCK your_list %]LIST: [% item.join(', ') %][% END -%] # [% view.print("some text") %] # [% view.print({ alpha => 'a', bravo => 'b' }) %] # [% view.print([ 'charlie', 'delta' ]) %]" => "TEXT: some text # HASH: alpha, bravo # LIST: charlie, delta" ok 22 - Line 270 "[% USE view(item => 'thing', # map => { HASH => 'my_hash', ARRAY => 'your_list' }) -%] # [% BLOCK text %]TEXT: [% thing %][% END -%] # [% BLOCK my_hash %]HASH: [% thing.keys.sort.join(', ') %][% END -%] # [% BLOCK your_list %]LIST: [% thing.join(', ') %][% END -%] # [% view.print("some text") %] # [% view.print({ alpha => 'a', bravo => 'b' }) %] # [% view.print([ 'charlie', 'delta' ]) %]" => "TEXT: some text # HASH: alpha, bravo # LIST: charlie, delta" ok 23 - Line 281 "[% USE view -%] # [% view.print('Hello World') %] # [% view1 = view.clone( prefix='my_') -%] # [% view1.print('Hello World') %] # [% view2 = view1.clone( prefix='dud_', notfound='no_text' ) -%] # [% view2.print('Hello World') %] # [% BLOCK text %]TEXT: [% item %][% END -%] # [% BLOCK my_text %]MY TEXT: [% item %][% END -%] # [% BLOCK dud_no_text %]NO TEXT: [% item %][% END -%]" => "TEXT: Hello World # MY TEXT: Hello World # NO TEXT: Hello World # " ok 24 - Line 294 "[% USE view( prefix = 'base_', default => 'any' ) -%] # [% view1 = view.clone( prefix => 'one_') -%] # [% view2 = view.clone( prefix => 'two_') -%] # [% view.default %] / [% view.map.default %] # [% view1.default = 'anyone' -%] # [% view1.default %] / [% view1.map.default %] # [% view2.map.default = 'anytwo' -%] # [% view2.default %] / [% view2.map.default %] # [% view.print("Hello World") %] / [% view.print(blessed_list) %] # [% view1.print("Hello World") %] / [% view1.print(blessed_list) %] # [% view2.print("Hello World") %] / [% view2.print(blessed_list) %] # [% BLOCK base_text %]ANY TEXT: [% item %][% END -%] # [% BLOCK one_text %]ONE TEXT: [% item %][% END -%] # [% BLOCK two_text %]TWO TEXT: [% item %][% END -%] # [% BLOCK base_any %]BASE ANY: [% item.as_list.join(', ') %][% END -%] # [% BLOCK one_anyone %]ONE ANY: [% item.as_list.join(', ') %][% END -%] # [% BLOCK two_anytwo %]TWO ANY: [% item.as_list.join(', ') %][% END -%]" => "any / any # anyone / anyone # anytwo / anytwo # ANY TEXT: Hello World / BASE ANY: Hello, World # ONE TEXT: Hello World / ONE ANY: Hello, World # TWO TEXT: Hello World / TWO ANY: Hello, World # " ok 25 - Line 318 "[% USE view( prefix => 'my_', item => 'thing' ) -%] # [% view.view('thingy', [ 'foo', 'bar'] ) %] # [% BLOCK my_thingy %]thingy: [ [% thing.join(', ') %] ][%END %]" => "thingy: [ foo, bar ] # " ok 26 - Line 323 "[% USE view -%] # [% view.map.${'Template::View'} = 'myview' -%] # [% view.print(view) %] # [% BLOCK myview %]MYVIEW[% END%]" => "MYVIEW # " ok 27 - Line 329 "[% USE view -%] # [% view.include('greeting', msg => 'Hello World!') %] # [% BLOCK greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 28 - Line 334 "[% USE view( prefix="my_" )-%] # [% view.include('greeting', msg => 'Hello World!') %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 29 - Line 339 "[% USE view( prefix="my_" )-%] # [% view.include_greeting( msg => 'Hello World!') %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 30 - Line 344 "[% USE view( prefix="my_" )-%] # [% INCLUDE $view.template('greeting') # msg = 'Hello World!' %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 31 - Line 350 "[% USE view( title="My View" )-%] # [% view.title %]" => "My View" ok 32 - Line 353 "[% USE view( title="My View" )-%] # [% newview = view.clone( col = 'Chartreuse') -%] # [% newerview = newview.clone( title => 'New Title' ) -%] # [% view.title %] # [% newview.title %] # [% newview.col %] # [% newerview.title %] # [% newerview.col %]" => "My View # My View # Chartreuse # New Title # Chartreuse" ok 33 - Line 370 "[% VIEW fred prefix='blat_' %] # This is the view # [% END -%] # [% BLOCK blat_foo; 'This is blat_foo'; END -%] # [% fred.view_foo %]" => "This is blat_foo" ok 34 - Line 376 "[% VIEW fred %] # This is the view # [% view.prefix = 'blat_' %] # [% END -%] # [% BLOCK blat_foo; 'This is blat_foo'; END -%] # [% fred.view_foo %]" => "This is blat_foo" ok 35 - Line 383 "[% VIEW fred %] # This is the view # [% view.prefix = 'blat_' %] # [% view.thingy = 'bloop' %] # [% fred.name = 'Freddy' %] # [% END -%] # [% fred.prefix %] # [% fred.thingy %] # [% fred.name %]" => "blat_ # bloop # Freddy" ok 36 - Line 395 "[% VIEW fred prefix='blat_'; view.name='Fred'; END -%] # [% fred.prefix %] # [% fred.name %] # [% TRY; # fred.prefix = 'nonblat_'; # CATCH; # error; # END # %] # [% TRY; # fred.name = 'Derek'; # CATCH; # error; # END # %]" => "blat_ # Fred # view error - cannot update config item in sealed view: prefix # view error - cannot update item in sealed view: name" ok 37 - Line 414 "[% VIEW foo prefix='blat_' default="default" notfound="notfound" # title="fred" age=23 height=1.82 %] # [% view.other = 'another' %] # [% END -%] # [% BLOCK blat_hash -%] # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [% END -%] # [% END -%] # [% foo.print(foo.data) %]" => " age => 23 # height => 1.82 # other => another # title => fred # " ok 38 - Line 429 "[% VIEW foo %] # [% BLOCK hello -%] # Hello World! # [% END %] # [% BLOCK goodbye -%] # Goodbye World! # [% END %] # [% END -%] # [% TRY; INCLUDE foo; CATCH; error; END %] # [% foo.include_hello %]" => "file error - foo: not found # Hello World! # " ok 39 - Line 442 "[% title = "Previous Title" -%] # [% VIEW foo # include_naked = 1 # title = title or 'Default Title' # copy = 'me, now' # -%] # # [% view.bgcol = '\#ffffff' -%] # # [% BLOCK header -%] # Header: bgcol: [% view.bgcol %] # title: [% title %] # view.title: [% view.title %] # [%- END %] # # [% BLOCK footer -%] # © Copyright [% view.copy %] # [%- END %] # # [% END -%] # [% title = 'New Title' -%] # [% foo.header %] # [% foo.header(bgcol='\#dead' title="Title Parameter") %] # [% foo.footer %] # [% foo.footer(copy="you, then") %] # " => "Header: bgcol: \#ffffff # title: New Title # view.title: Previous Title # Header: bgcol: \#ffffff # title: Title Parameter # view.title: Previous Title # © Copyright me, now # © Copyright me, now # " ok 40 - Line 477 "[% VIEW foo # title = 'My View' # author = 'Andy Wardley' # bgcol = bgcol or '\#ffffff' # -%] # [% view.arg1 = 'argument \#1' -%] # [% view.data.arg2 = 'argument \#2' -%] # [% END -%] # [% foo.title %] # [% foo.author %] # [% foo.bgcol %] # [% foo.arg1 %] # [% foo.arg2 %] # [% bar = foo.clone( title='New View', arg1='New Arg1' ) %]cloned! # [% bar.title %] # [% bar.author %] # [% bar.bgcol %] # [% bar.arg1 %] # [% bar.arg2 %] # originals: # [% foo.title %] # [% foo.arg1 %] # # " => " My View # Andy Wardley # \#ffffff # argument \#1 # argument \#2 # cloned! # New View # Andy Wardley # \#ffffff # New Arg1 # argument \#2 # originals: # My View # argument \#1 # # " ok 41 - Line 517 "[% VIEW basic title = "My Web Site" %] # [% BLOCK header -%] # This is the basic header: [% title or view.title %] # [%- END -%] # [% END -%] # # [%- VIEW fancy # title = "$basic.title" # basic = basic # %] # [% BLOCK header ; view.basic.header(title = title or view.title) %] # Fancy new part of header # [%- END %] # [% END -%] # === # [% basic.header %] # [% basic.header( title = "New Title" ) %] # === # [% fancy.header %] # [% fancy.header( title = "Fancy Title" ) %]" => "=== # This is the basic header: My Web Site # This is the basic header: New Title # === # This is the basic header: My Web Site # Fancy new part of header # This is the basic header: Fancy Title # Fancy new part of header" ok 42 - Line 545 "[% VIEW baz notfound='lost' %] # [% BLOCK lost; 'lost, not found'; END %] # [% END -%] # [% baz.any %]" => "lost, not found" ok 43 - Line 550 "[% VIEW woz prefix='outer_' %] # [% BLOCK wiz; 'The inner wiz'; END %] # [% END -%] # [% BLOCK outer_waz; 'The outer waz'; END -%] # [% woz.wiz %] # [% woz.waz %]" => "The inner wiz # The outer waz" ok 44 - Line 558 "[% VIEW foo %] # # [% BLOCK file -%] # File: [% item.name %] # [%- END -%] # # [% BLOCK directory -%] # Dir: [% item.name %] # [%- END %] # # [% END -%] # [% foo.view_file({ name => 'some_file' }) %] # [% foo.include_file(item => { name => 'some_file' }) %] # [% foo.view('directory', { name => 'some_dir' }) %]" => " File: some_file # File: some_file # Dir: some_dir" ok 45 - Line 575 "[% BLOCK parent -%] # This is the base block # [%- END -%] # [% VIEW super %] # [%- BLOCK parent -%] # [%- INCLUDE parent FILTER replace('base', 'super') -%] # [%- END -%] # [% END -%] # base: [% INCLUDE parent %] # super: [% super.parent %]" => "base: This is the base block # super: This is the super block" ok 46 - Line 587 "[% BLOCK foo -%] # public foo block # [%- END -%] # [% VIEW plain %] # [% BLOCK foo -%] # [% PROCESS foo %] # [%- END %] # [% END -%] # [% VIEW fancy %] # [% BLOCK foo -%] # [%- plain.foo | replace('plain', 'fancy') -%] # [%- END %] # [% END -%] # [% plain.foo %] # [% fancy.foo %]" => "public foo block # public foo block" ok 47 - Line 604 "[% VIEW foo %] # [% BLOCK Blessed_List -%] # This is a list: [% item.as_list.join(', ') %] # [% END -%] # [% END -%] # [% foo.print(blessed_list) %]" => "This is a list: Hello, World # " ok 48 - Line 612 "[% VIEW my.foo value=33; END -%] # n: [% my.foo.value %]" => "n: 33" ok 49 - Line 615 "[% VIEW parent -%] # [% BLOCK one %]This is base one[% END %] # [% BLOCK two %]This is base two[% END %] # [% END -%] # # [%- VIEW child1 base=parent %] # [% BLOCK one %]This is child1 one[% END %] # [% END -%] # # [%- VIEW child2 base=parent %] # [% BLOCK two %]This is child2 two[% END %] # [% END -%] # # [%- VIEW child3 base=child2 %] # [% BLOCK two %]This is child3 two[% END %] # [% END -%] # # [%- FOREACH child = [ child1, child2, child3 ] -%] # one: [% child.one %] # [% END -%] # [% FOREACH child = [ child1, child2, child3 ] -%] # two: [% child.two %] # [% END %] # " => "one: This is child1 one # one: This is base one # one: This is base one # two: This is base two # two: This is child2 two # two: This is child3 two # # " ok 50 - Line 647 "[% VIEW my.view.default # prefix = 'view/default/' # value = 3.14; # END # -%] # value: [% my.view.default.value %]" => "value: 3.14" ok 51 - Line 654 "[% VIEW my.view.default # prefix = 'view/default/' # value = 3.14; # END; # VIEW my.view.one # base = my.view.default # prefix = 'view/one/'; # END; # VIEW my.view.two # base = my.view.default # value = 2.718; # END; # -%] # [% BLOCK view/default/foo %]Default foo[% END -%] # [% BLOCK view/one/foo %]One foo[% END -%] # 0: [% my.view.default.foo %] # 1: [% my.view.one.foo %] # 2: [% my.view.two.foo %] # 0: [% my.view.default.value %] # 1: [% my.view.one.value %] # 2: [% my.view.two.value %]" => "0: Default foo # 1: One foo # 2: Default foo # 0: 3.14 # 1: 3.14 # 2: 2.718" ok 52 - Line 681 "[% VIEW foo number = 10 sealed = 0; END -%] # a: [% foo.number %] # b: [% foo.number = 20 %] # c: [% foo.number %] # d: [% foo.number(30) %] # e: [% foo.number %]" => "a: 10 # b: # c: 20 # d: 30 # e: 30" ok 53 - Line 692 "[% VIEW foo number = 10 silent = 1; END -%] # a: [% foo.number %] # b: [% foo.number = 20 %] # c: [% foo.number %] # d: [% foo.number(30) %] # e: [% foo.number %]" => "a: 10 # b: # c: 10 # d: 10 # e: 10" ### DONE ############################################ compile perl (0) ok 54 - Line 135 "[% USE v = view -%] # [[% v.prefix %]]" => "[]" ok 55 - Line 138 "[% USE v = view( map => { default='any' } ) -%] # [[% v.map.default %]]" => "[any]" ok 56 - Line 141 "[% USE view( prefix=> 'foo/', suffix => '.tt2') -%] # [[% view.prefix %]bar[% view.suffix %]] # [[% view.template_name('baz') %]]" => "[foo/bar.tt2] # [foo/baz.tt2]" ok 57 - Line 146 "[% USE view( prefix=> 'foo/', suffix => '.tt2') -%] # [[% view.prefix %]bar[% view.suffix %]] # [[% view.template_name('baz') %]]" => "[foo/bar.tt2] # [foo/baz.tt2]" ok 58 - Line 151 "[% USE view -%] # [% view.print('Hello World') %] # [% BLOCK text %]TEXT: [% item %][% END -%]" => "TEXT: Hello World # " ok 59 - Line 155 "[% USE view -%] # [% view.print( { foo => 'bar' } ) %] # [% BLOCK hash %]HASH: { # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [%- END %] # } # [% END -%]" => "HASH: { # foo => bar # } # # " ok 60 - Line 166 "[% USE view -%] # [% view = view.clone( prefix => 'my_' ) -%] # [% view.view('hash', { bar => 'baz' }) %] # [% BLOCK my_hash %]HASH: { # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [%- END %] # } # [% END -%]" => "HASH: { # bar => baz # } # # " ok 61 - Line 178 "[% USE view(prefix='my_') -%] # [% view.print( foo => 'wiz', bar => 'waz' ) %] # [% BLOCK my_hash %]KEYS: [% item.keys.sort.join(', ') %][% END %] # # " => "KEYS: bar, foo # # # " ok 62 - Line 184 "[% USE view -%] # [% view.print( view ) %] # [% BLOCK Template_View %]Printing a Template::View object[% END -%]" => "Printing a Template::View object # " ok 63 - Line 188 "[% USE view(prefix='my_') -%] # [% view.print( view ) %] # [% view.print( view, prefix='your_' ) %] # [% BLOCK my_Template_View %]Printing my Template::View object[% END -%] # [% BLOCK your_Template_View %]Printing your Template::View object[% END -%]" => "Printing my Template::View object # Printing your Template::View object # " ok 64 - Line 195 "[% USE view(prefix='my_', notfound='any' ) -%] # [% view.print( view ) %] # [% view.print( view, prefix='your_' ) %] # [% BLOCK my_any %]Printing any of my objects[% END -%] # [% BLOCK your_any %]Printing any of your objects[% END -%]" => "Printing any of my objects # Printing any of your objects # " ok 65 - Line 203 "[% USE view(prefix => 'my_', map => { default => 'catchall' } ) -%] # [% view.print( view ) %] # [% view.print( view, default='catchsome' ) %] # [% BLOCK my_catchall %]Catching all defaults[% END -%] # [% BLOCK my_catchsome %]Catching some defaults[% END -%]" => "Catching all defaults # Catching some defaults # " ok 66 - Line 211 "[% USE view(prefix => 'my_', map => { default => 'catchnone' } ) -%] # [% view.default %] # [% view.default = 'catchall' -%] # [% view.default %] # [% view.print( view ) %] # [% view.print( view, default='catchsome' ) %] # [% BLOCK my_catchall %]Catching all defaults[% END -%] # [% BLOCK my_catchsome %]Catching some defaults[% END -%]" => "catchnone # catchall # Catching all defaults # Catching some defaults # " ok 67 - Line 224 "[% USE view(prefix='my_', default='catchall' notfound='lost') -%] # [% view.print( view ) %] # [% BLOCK my_lost %]Something has been found[% END -%]" => "Something has been found # " ok 68 - Line 229 "[% USE view -%] # [% TRY ; # view.print( view ) ; # CATCH view ; # "[$error.type] $error.info" ; # END # %]" => "[view] file error - Template_View: not found" ok 69 - Line 237 "[% USE view -%] # [% view.print( foo ) %]" => "{ e => 2.718, pi => 3.14 }" ok 70 - Line 240 "[% USE view -%] # [% view.print( foo, method => 'reverse' ) %]" => "{ pi => 3.14, e => 2.718 }" ok 71 - Line 243 "[% USE view(prefix='my_', include_naked=0, view_naked=1) -%] # [% BLOCK my_foo; "Foo: $item"; END -%] # [[% view.view_foo(20) %]] # [[% view.foo(30) %]]" => "[Foo: 20] # [Foo: 30]" ok 72 - Line 249 "[% USE view(prefix='my_', include_naked=0, view_naked=0) -%] # [% BLOCK my_foo; "Foo: $item"; END -%] # [[% view.view_foo(20) %]] # [% TRY ; # view.foo(30) ; # CATCH ; # error.info ; # END # %]" => "[Foo: 20] # no such view member: foo" ok 73 - Line 260 "[% USE view(map => { HASH => 'my_hash', ARRAY => 'your_list' }) -%] # [% BLOCK text %]TEXT: [% item %][% END -%] # [% BLOCK my_hash %]HASH: [% item.keys.sort.join(', ') %][% END -%] # [% BLOCK your_list %]LIST: [% item.join(', ') %][% END -%] # [% view.print("some text") %] # [% view.print({ alpha => 'a', bravo => 'b' }) %] # [% view.print([ 'charlie', 'delta' ]) %]" => "TEXT: some text # HASH: alpha, bravo # LIST: charlie, delta" ok 74 - Line 270 "[% USE view(item => 'thing', # map => { HASH => 'my_hash', ARRAY => 'your_list' }) -%] # [% BLOCK text %]TEXT: [% thing %][% END -%] # [% BLOCK my_hash %]HASH: [% thing.keys.sort.join(', ') %][% END -%] # [% BLOCK your_list %]LIST: [% thing.join(', ') %][% END -%] # [% view.print("some text") %] # [% view.print({ alpha => 'a', bravo => 'b' }) %] # [% view.print([ 'charlie', 'delta' ]) %]" => "TEXT: some text # HASH: alpha, bravo # LIST: charlie, delta" ok 75 - Line 281 "[% USE view -%] # [% view.print('Hello World') %] # [% view1 = view.clone( prefix='my_') -%] # [% view1.print('Hello World') %] # [% view2 = view1.clone( prefix='dud_', notfound='no_text' ) -%] # [% view2.print('Hello World') %] # [% BLOCK text %]TEXT: [% item %][% END -%] # [% BLOCK my_text %]MY TEXT: [% item %][% END -%] # [% BLOCK dud_no_text %]NO TEXT: [% item %][% END -%]" => "TEXT: Hello World # MY TEXT: Hello World # NO TEXT: Hello World # " ok 76 - Line 294 "[% USE view( prefix = 'base_', default => 'any' ) -%] # [% view1 = view.clone( prefix => 'one_') -%] # [% view2 = view.clone( prefix => 'two_') -%] # [% view.default %] / [% view.map.default %] # [% view1.default = 'anyone' -%] # [% view1.default %] / [% view1.map.default %] # [% view2.map.default = 'anytwo' -%] # [% view2.default %] / [% view2.map.default %] # [% view.print("Hello World") %] / [% view.print(blessed_list) %] # [% view1.print("Hello World") %] / [% view1.print(blessed_list) %] # [% view2.print("Hello World") %] / [% view2.print(blessed_list) %] # [% BLOCK base_text %]ANY TEXT: [% item %][% END -%] # [% BLOCK one_text %]ONE TEXT: [% item %][% END -%] # [% BLOCK two_text %]TWO TEXT: [% item %][% END -%] # [% BLOCK base_any %]BASE ANY: [% item.as_list.join(', ') %][% END -%] # [% BLOCK one_anyone %]ONE ANY: [% item.as_list.join(', ') %][% END -%] # [% BLOCK two_anytwo %]TWO ANY: [% item.as_list.join(', ') %][% END -%]" => "any / any # anyone / anyone # anytwo / anytwo # ANY TEXT: Hello World / BASE ANY: Hello, World # ONE TEXT: Hello World / ONE ANY: Hello, World # TWO TEXT: Hello World / TWO ANY: Hello, World # " ok 77 - Line 318 "[% USE view( prefix => 'my_', item => 'thing' ) -%] # [% view.view('thingy', [ 'foo', 'bar'] ) %] # [% BLOCK my_thingy %]thingy: [ [% thing.join(', ') %] ][%END %]" => "thingy: [ foo, bar ] # " ok 78 - Line 323 "[% USE view -%] # [% view.map.${'Template::View'} = 'myview' -%] # [% view.print(view) %] # [% BLOCK myview %]MYVIEW[% END%]" => "MYVIEW # " ok 79 - Line 329 "[% USE view -%] # [% view.include('greeting', msg => 'Hello World!') %] # [% BLOCK greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 80 - Line 334 "[% USE view( prefix="my_" )-%] # [% view.include('greeting', msg => 'Hello World!') %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 81 - Line 339 "[% USE view( prefix="my_" )-%] # [% view.include_greeting( msg => 'Hello World!') %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 82 - Line 344 "[% USE view( prefix="my_" )-%] # [% INCLUDE $view.template('greeting') # msg = 'Hello World!' %] # [% BLOCK my_greeting %]msg: [% msg %][% END -%]" => "msg: Hello World! # " ok 83 - Line 350 "[% USE view( title="My View" )-%] # [% view.title %]" => "My View" ok 84 - Line 353 "[% USE view( title="My View" )-%] # [% newview = view.clone( col = 'Chartreuse') -%] # [% newerview = newview.clone( title => 'New Title' ) -%] # [% view.title %] # [% newview.title %] # [% newview.col %] # [% newerview.title %] # [% newerview.col %]" => "My View # My View # Chartreuse # New Title # Chartreuse" ok 85 - Line 370 "[% VIEW fred prefix='blat_' %] # This is the view # [% END -%] # [% BLOCK blat_foo; 'This is blat_foo'; END -%] # [% fred.view_foo %]" => "This is blat_foo" ok 86 - Line 376 "[% VIEW fred %] # This is the view # [% view.prefix = 'blat_' %] # [% END -%] # [% BLOCK blat_foo; 'This is blat_foo'; END -%] # [% fred.view_foo %]" => "This is blat_foo" ok 87 - Line 383 "[% VIEW fred %] # This is the view # [% view.prefix = 'blat_' %] # [% view.thingy = 'bloop' %] # [% fred.name = 'Freddy' %] # [% END -%] # [% fred.prefix %] # [% fred.thingy %] # [% fred.name %]" => "blat_ # bloop # Freddy" ok 88 - Line 395 "[% VIEW fred prefix='blat_'; view.name='Fred'; END -%] # [% fred.prefix %] # [% fred.name %] # [% TRY; # fred.prefix = 'nonblat_'; # CATCH; # error; # END # %] # [% TRY; # fred.name = 'Derek'; # CATCH; # error; # END # %]" => "blat_ # Fred # view error - cannot update config item in sealed view: prefix # view error - cannot update item in sealed view: name" ok 89 - Line 414 "[% VIEW foo prefix='blat_' default="default" notfound="notfound" # title="fred" age=23 height=1.82 %] # [% view.other = 'another' %] # [% END -%] # [% BLOCK blat_hash -%] # [% FOREACH key = item.keys.sort -%] # [% key %] => [% item.$key %] # [% END -%] # [% END -%] # [% foo.print(foo.data) %]" => " age => 23 # height => 1.82 # other => another # title => fred # " ok 90 - Line 429 "[% VIEW foo %] # [% BLOCK hello -%] # Hello World! # [% END %] # [% BLOCK goodbye -%] # Goodbye World! # [% END %] # [% END -%] # [% TRY; INCLUDE foo; CATCH; error; END %] # [% foo.include_hello %]" => "file error - foo: not found # Hello World! # " ok 91 - Line 442 "[% title = "Previous Title" -%] # [% VIEW foo # include_naked = 1 # title = title or 'Default Title' # copy = 'me, now' # -%] # # [% view.bgcol = '\#ffffff' -%] # # [% BLOCK header -%] # Header: bgcol: [% view.bgcol %] # title: [% title %] # view.title: [% view.title %] # [%- END %] # # [% BLOCK footer -%] # © Copyright [% view.copy %] # [%- END %] # # [% END -%] # [% title = 'New Title' -%] # [% foo.header %] # [% foo.header(bgcol='\#dead' title="Title Parameter") %] # [% foo.footer %] # [% foo.footer(copy="you, then") %] # " => "Header: bgcol: \#ffffff # title: New Title # view.title: Previous Title # Header: bgcol: \#ffffff # title: Title Parameter # view.title: Previous Title # © Copyright me, now # © Copyright me, now # " ok 92 - Line 477 "[% VIEW foo # title = 'My View' # author = 'Andy Wardley' # bgcol = bgcol or '\#ffffff' # -%] # [% view.arg1 = 'argument \#1' -%] # [% view.data.arg2 = 'argument \#2' -%] # [% END -%] # [% foo.title %] # [% foo.author %] # [% foo.bgcol %] # [% foo.arg1 %] # [% foo.arg2 %] # [% bar = foo.clone( title='New View', arg1='New Arg1' ) %]cloned! # [% bar.title %] # [% bar.author %] # [% bar.bgcol %] # [% bar.arg1 %] # [% bar.arg2 %] # originals: # [% foo.title %] # [% foo.arg1 %] # # " => " My View # Andy Wardley # \#ffffff # argument \#1 # argument \#2 # cloned! # New View # Andy Wardley # \#ffffff # New Arg1 # argument \#2 # originals: # My View # argument \#1 # # " ok 93 - Line 517 "[% VIEW basic title = "My Web Site" %] # [% BLOCK header -%] # This is the basic header: [% title or view.title %] # [%- END -%] # [% END -%] # # [%- VIEW fancy # title = "$basic.title" # basic = basic # %] # [% BLOCK header ; view.basic.header(title = title or view.title) %] # Fancy new part of header # [%- END %] # [% END -%] # === # [% basic.header %] # [% basic.header( title = "New Title" ) %] # === # [% fancy.header %] # [% fancy.header( title = "Fancy Title" ) %]" => "=== # This is the basic header: My Web Site # This is the basic header: New Title # === # This is the basic header: My Web Site # Fancy new part of header # This is the basic header: Fancy Title # Fancy new part of header" ok 94 - Line 545 "[% VIEW baz notfound='lost' %] # [% BLOCK lost; 'lost, not found'; END %] # [% END -%] # [% baz.any %]" => "lost, not found" ok 95 - Line 550 "[% VIEW woz prefix='outer_' %] # [% BLOCK wiz; 'The inner wiz'; END %] # [% END -%] # [% BLOCK outer_waz; 'The outer waz'; END -%] # [% woz.wiz %] # [% woz.waz %]" => "The inner wiz # The outer waz" ok 96 - Line 558 "[% VIEW foo %] # # [% BLOCK file -%] # File: [% item.name %] # [%- END -%] # # [% BLOCK directory -%] # Dir: [% item.name %] # [%- END %] # # [% END -%] # [% foo.view_file({ name => 'some_file' }) %] # [% foo.include_file(item => { name => 'some_file' }) %] # [% foo.view('directory', { name => 'some_dir' }) %]" => " File: some_file # File: some_file # Dir: some_dir" ok 97 - Line 575 "[% BLOCK parent -%] # This is the base block # [%- END -%] # [% VIEW super %] # [%- BLOCK parent -%] # [%- INCLUDE parent FILTER replace('base', 'super') -%] # [%- END -%] # [% END -%] # base: [% INCLUDE parent %] # super: [% super.parent %]" => "base: This is the base block # super: This is the super block" ok 98 - Line 587 "[% BLOCK foo -%] # public foo block # [%- END -%] # [% VIEW plain %] # [% BLOCK foo -%] # [% PROCESS foo %] # [%- END %] # [% END -%] # [% VIEW fancy %] # [% BLOCK foo -%] # [%- plain.foo | replace('plain', 'fancy') -%] # [%- END %] # [% END -%] # [% plain.foo %] # [% fancy.foo %]" => "public foo block # public foo block" ok 99 - Line 604 "[% VIEW foo %] # [% BLOCK Blessed_List -%] # This is a list: [% item.as_list.join(', ') %] # [% END -%] # [% END -%] # [% foo.print(blessed_list) %]" => "This is a list: Hello, World # " ok 100 - Line 612 "[% VIEW my.foo value=33; END -%] # n: [% my.foo.value %]" => "n: 33" ok 101 - Line 615 "[% VIEW parent -%] # [% BLOCK one %]This is base one[% END %] # [% BLOCK two %]This is base two[% END %] # [% END -%] # # [%- VIEW child1 base=parent %] # [% BLOCK one %]This is child1 one[% END %] # [% END -%] # # [%- VIEW child2 base=parent %] # [% BLOCK two %]This is child2 two[% END %] # [% END -%] # # [%- VIEW child3 base=child2 %] # [% BLOCK two %]This is child3 two[% END %] # [% END -%] # # [%- FOREACH child = [ child1, child2, child3 ] -%] # one: [% child.one %] # [% END -%] # [% FOREACH child = [ child1, child2, child3 ] -%] # two: [% child.two %] # [% END %] # " => "one: This is child1 one # one: This is base one # one: This is base one # two: This is base two # two: This is child2 two # two: This is child3 two # # " ok 102 - Line 647 "[% VIEW my.view.default # prefix = 'view/default/' # value = 3.14; # END # -%] # value: [% my.view.default.value %]" => "value: 3.14" ok 103 - Line 654 "[% VIEW my.view.default # prefix = 'view/default/' # value = 3.14; # END; # VIEW my.view.one # base = my.view.default # prefix = 'view/one/'; # END; # VIEW my.view.two # base = my.view.default # value = 2.718; # END; # -%] # [% BLOCK view/default/foo %]Default foo[% END -%] # [% BLOCK view/one/foo %]One foo[% END -%] # 0: [% my.view.default.foo %] # 1: [% my.view.one.foo %] # 2: [% my.view.two.foo %] # 0: [% my.view.default.value %] # 1: [% my.view.one.value %] # 2: [% my.view.two.value %]" => "0: Default foo # 1: One foo # 2: Default foo # 0: 3.14 # 1: 3.14 # 2: 2.718" ok 104 - Line 681 "[% VIEW foo number = 10 sealed = 0; END -%] # a: [% foo.number %] # b: [% foo.number = 20 %] # c: [% foo.number %] # d: [% foo.number(30) %] # e: [% foo.number %]" => "a: 10 # b: # c: 20 # d: 30 # e: 30" ok 105 - Line 692 "[% VIEW foo number = 10 silent = 1; END -%] # a: [% foo.number %] # b: [% foo.number = 20 %] # c: [% foo.number %] # d: [% foo.number(30) %] # e: [% foo.number %]" => "a: 10 # b: # c: 10 # d: 10 # e: 10" ### DONE ############################################ compile perl (1) ok t/20_html_template.t .... 1..250 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### VAR ############################################# compile perl (0) ok 3 - Line 94 "Foo" => "Foo" ok 4 - Line 96 "" => "FOO" ok 5 - Line 97 "" => "FOO" ok 6 - Line 98 "" => "FOO" ok 7 - Line 99 "" => "FOO" ok 8 - Line 100 "" => "FOO" ok 9 - Line 101 "" => "FOO" ok 10 - Line 102 "" => "FOO" ok 11 - Line 103 "" => "FOO" ok 12 - Line 104 "" => "FOO" ok 13 - Line 105 "" => "FOO" ok 14 - Line 106 "" => "FOO" ok 15 - Line 107 "" => "FOO" ok 16 - Line 108 "" => "FOO" ok 17 - Line 110 "" => "<>" ok 18 - Line 111 "" => "<>" ok 19 - Line 112 "" => "<>" ok 20 - Line 113 "" => "<>" ok 21 - Line 114 "" => "<>" ok 22 - Line 115 "" => "<>" ok 23 - Line 116 "" => "<>" ok 24 - Line 117 "" => "<>" ok 25 - Line 118 "" => "<>" ok 26 - Line 119 "" => "%3C%3E" ok 27 - Line 120 "" => "<>\n\r \"\'" ok 28 - Line 122 "" => "<>" ok 29 - Line 123 "" => "<>" ok 30 - Line 124 "" => "<>" ok 31 - Line 125 "" => "<>" ok 32 - Line 127 "" => "FOO" ok 33 - Line 128 "" => "FOO" ok 34 - Line 129 "" => "FOO" ok 35 - Line 130 "d" => "bard" ok 36 - Line 131 "d" => "bard" ok 37 - Line 132 "d" => "bard" ok 38 - Line 134 "" => "FOO" ok 39 - Line 135 "" => "FOO" ok 40 - Line 137 "" => "&" ### IF / ELSE / UNLESS ############################## compile perl (0) ok 41 - Line 142 "bar" => "" ok 42 - Line 143 "bar" => "bar" ok 43 - Line 144 "barbing" => "bing" ok 44 - Line 145 "barbing" => "bar" ok 45 - Line 146 "barbing" => "bar" ok 46 - Line 147 "barbing" => "bar" ok 47 - Line 148 "barbing" => "bar" ok 48 - Line 149 "barbing" => "bar" ok 49 - Line 150 "barbing" => "bar" ok 50 - Line 151 "barbing" => "bing" ok 51 - Line 152 "barbing" => "bar" ok 52 - Line 153 " "" ok 53 - Line 154 "barbing" => "bar" ok 54 - Line 155 "barbaz" => "baz" ok 55 - Line 156 "bar" => "bar" ok 56 - Line 157 "bar" => "" ok 57 - Line 158 "barbaz" => "barbaz" ok 58 - Line 159 "barbing" => "bing" ok 59 - Line 160 "barbing" => "bar" ok 60 - Line 162 "barbaz" => "" ok 61 - Line 163 "barbaz" => "" ### INCLUDE ######################################### compile perl (0) ok 62 - Line 168 "bar" => "" ok 63 - Line 169 "" => "Good Day!" ok 64 - Line 170 "" => "Good Day!" ok 65 - Line 171 "" => "Good Day!" ok 66 - Line 172 "" => "Good Day!" ok 67 - Line 173 "" => "Good Day!" ok 68 - Line 174 "" => "Good Day!" ok 69 - Line 175 "" => "" ok 70 - Line 177 "" => "" ok 71 - Line 178 "" => "" ok 72 - Line 180 "" => "Good Day!" ok 73 - Line 181 "" => "Good Day!" ok 74 - Line 182 "" => "Good Day!" ok 75 - Line 184 "" => "()" ok 76 - Line 185 "" => "(hi)" ### EXPR ############################################ compile perl (0) ok 77 - Line 190 "" => "777" ok 78 - Line 191 "" => "777" ok 79 - Line 192 "" => "777" ok 80 - Line 193 "" => "777" ok 81 - Line 194 "" => "777" ok 82 - Line 195 "" => "<>" ok 83 - Line 196 "" => "" ok 84 - Line 197 "" => "" ok 85 - Line 199 "" => "FOO" ok 86 - Line 201 "" => "&" ok 87 - Line 202 "" => "&" ### LOOP ############################################ compile perl (0) ok 88 - Line 207 "foo" => "foo" ok 89 - Line 208 "Hifoo" => "foo" ok 90 - Line 209 "Hifoo" => "Hifoo" ok 91 - Line 210 "Hifoo" => "HiHifoo" ok 92 - Line 211 "()foo" => "(1)(2)(3)foo" ok 93 - Line 212 "()foo" => "(1)(2)(3)foo" ok 94 - Line 213 "()foo" => "(1)(2)(3)foo" ok 95 - Line 215 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 96 - Line 217 "()()foo" => "(1)()(2)()(3)()foo" ok 97 - Line 218 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 98 - Line 220 "()foo" => "(1)()(3)foo" ok 99 - Line 222 " # (||||)foo" => " # (||||) # (||||) # (||||)foo" ok 100 - Line 232 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ### TT3 DIRECTIVES ################################## compile perl (0) ok 101 - Line 241 "" => "FOO" ok 102 - Line 242 "" => "" ok 103 - Line 243 "" => "" ok 104 - Line 244 "" => "10" ok 105 - Line 246 "barweebing" => "bar" ok 106 - Line 248 "()" => "(foo)" ok 107 - Line 249 "()" => "(foo)" ok 108 - Line 250 "()" => "(1)(2)(3)" ok 109 - Line 252 "()" => "(bar)" ok 110 - Line 253 "()" => "(bar)" ok 111 - Line 255 "" => "bar" ok 112 - Line 257 "You said " => "You said hello" ok 113 - Line 259 "" => "&" ok 114 - Line 260 "" => "&" ### TT3 CHOMPING #################################### compile perl (0) ok 115 - Line 265 " # " => " # FOO" ok 116 - Line 266 " # " => "FOO" ok 117 - Line 267 " # <-TMPL_GET foo>" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (0) ok 118 - Line 272 "$foo ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 119 - Line 273 "$foo ${ 1 + 2 }" => "FOO FOO 3" ok 120 - Line 274 " 1>$foo ${ 1 + 2 }" => "FOO FOO 3" ok 121 - Line 276 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 122 - Line 277 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 123 - Line 278 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 124 - Line 279 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 125 - Line 280 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 126 - Line 281 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### DONE ############################################ compile perl (0) ### VAR ############################################# compile perl (1) ok 127 - Line 94 "Foo" => "Foo" ok 128 - Line 96 "" => "FOO" ok 129 - Line 97 "" => "FOO" ok 130 - Line 98 "" => "FOO" ok 131 - Line 99 "" => "FOO" ok 132 - Line 100 "" => "FOO" ok 133 - Line 101 "" => "FOO" ok 134 - Line 102 "" => "FOO" ok 135 - Line 103 "" => "FOO" ok 136 - Line 104 "" => "FOO" ok 137 - Line 105 "" => "FOO" ok 138 - Line 106 "" => "FOO" ok 139 - Line 107 "" => "FOO" ok 140 - Line 108 "" => "FOO" ok 141 - Line 110 "" => "<>" ok 142 - Line 111 "" => "<>" ok 143 - Line 112 "" => "<>" ok 144 - Line 113 "" => "<>" ok 145 - Line 114 "" => "<>" ok 146 - Line 115 "" => "<>" ok 147 - Line 116 "" => "<>" ok 148 - Line 117 "" => "<>" ok 149 - Line 118 "" => "<>" ok 150 - Line 119 "" => "%3C%3E" ok 151 - Line 120 "" => "<>\n\r \"\'" ok 152 - Line 122 "" => "<>" ok 153 - Line 123 "" => "<>" ok 154 - Line 124 "" => "<>" ok 155 - Line 125 "" => "<>" ok 156 - Line 127 "" => "FOO" ok 157 - Line 128 "" => "FOO" ok 158 - Line 129 "" => "FOO" ok 159 - Line 130 "d" => "bard" ok 160 - Line 131 "d" => "bard" ok 161 - Line 132 "d" => "bard" ok 162 - Line 134 "" => "FOO" ok 163 - Line 135 "" => "FOO" ok 164 - Line 137 "" => "&" ### IF / ELSE / UNLESS ############################## compile perl (1) ok 165 - Line 142 "bar" => "" ok 166 - Line 143 "bar" => "bar" ok 167 - Line 144 "barbing" => "bing" ok 168 - Line 145 "barbing" => "bar" ok 169 - Line 146 "barbing" => "bar" ok 170 - Line 147 "barbing" => "bar" ok 171 - Line 148 "barbing" => "bar" ok 172 - Line 149 "barbing" => "bar" ok 173 - Line 150 "barbing" => "bar" ok 174 - Line 151 "barbing" => "bing" ok 175 - Line 152 "barbing" => "bar" ok 176 - Line 153 " "" ok 177 - Line 154 "barbing" => "bar" ok 178 - Line 155 "barbaz" => "baz" ok 179 - Line 156 "bar" => "bar" ok 180 - Line 157 "bar" => "" ok 181 - Line 158 "barbaz" => "barbaz" ok 182 - Line 159 "barbing" => "bing" ok 183 - Line 160 "barbing" => "bar" ok 184 - Line 162 "barbaz" => "" ok 185 - Line 163 "barbaz" => "" ### INCLUDE ######################################### compile perl (1) ok 186 - Line 168 "bar" => "" ok 187 - Line 169 "" => "Good Day!" ok 188 - Line 170 "" => "Good Day!" ok 189 - Line 171 "" => "Good Day!" ok 190 - Line 172 "" => "Good Day!" ok 191 - Line 173 "" => "Good Day!" ok 192 - Line 174 "" => "Good Day!" ok 193 - Line 175 "" => "" ok 194 - Line 177 "" => "" ok 195 - Line 178 "" => "" ok 196 - Line 180 "" => "Good Day!" ok 197 - Line 181 "" => "Good Day!" ok 198 - Line 182 "" => "Good Day!" ok 199 - Line 184 "" => "()" ok 200 - Line 185 "" => "(hi)" ### EXPR ############################################ compile perl (1) ok 201 - Line 190 "" => "777" ok 202 - Line 191 "" => "777" ok 203 - Line 192 "" => "777" ok 204 - Line 193 "" => "777" ok 205 - Line 194 "" => "777" ok 206 - Line 195 "" => "<>" ok 207 - Line 196 "" => "" ok 208 - Line 197 "" => "" ok 209 - Line 199 "" => "FOO" ok 210 - Line 201 "" => "&" ok 211 - Line 202 "" => "&" ### LOOP ############################################ compile perl (1) ok 212 - Line 207 "foo" => "foo" ok 213 - Line 208 "Hifoo" => "foo" ok 214 - Line 209 "Hifoo" => "Hifoo" ok 215 - Line 210 "Hifoo" => "HiHifoo" ok 216 - Line 211 "()foo" => "(1)(2)(3)foo" ok 217 - Line 212 "()foo" => "(1)(2)(3)foo" ok 218 - Line 213 "()foo" => "(1)(2)(3)foo" ok 219 - Line 215 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 220 - Line 217 "()()foo" => "(1)()(2)()(3)()foo" ok 221 - Line 218 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 222 - Line 220 "()foo" => "(1)()(3)foo" ok 223 - Line 222 " # (||||)foo" => " # (||||) # (||||) # (||||)foo" ok 224 - Line 232 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ### TT3 DIRECTIVES ################################## compile perl (1) ok 225 - Line 241 "" => "FOO" ok 226 - Line 242 "" => "" ok 227 - Line 243 "" => "" ok 228 - Line 244 "" => "10" ok 229 - Line 246 "barweebing" => "bar" ok 230 - Line 248 "()" => "(foo)" ok 231 - Line 249 "()" => "(foo)" ok 232 - Line 250 "()" => "(1)(2)(3)" ok 233 - Line 252 "()" => "(bar)" ok 234 - Line 253 "()" => "(bar)" ok 235 - Line 255 "" => "bar" ok 236 - Line 257 "You said " => "You said hello" ok 237 - Line 259 "" => "&" ok 238 - Line 260 "" => "&" ### TT3 CHOMPING #################################### compile perl (1) ok 239 - Line 265 " # " => " # FOO" ok 240 - Line 266 " # " => "FOO" ok 241 - Line 267 " # <-TMPL_GET foo>" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (1) ok 242 - Line 272 "$foo ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 243 - Line 273 "$foo ${ 1 + 2 }" => "FOO FOO 3" ok 244 - Line 274 " 1>$foo ${ 1 + 2 }" => "FOO FOO 3" ok 245 - Line 276 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 246 - Line 277 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 247 - Line 278 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 248 - Line 279 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 249 - Line 280 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 250 - Line 281 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### DONE ############################################ compile perl (1) ok t/25_text_tmp.t ......... 1..100 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### ECHO ############################################ compile perl (0) ok 3 - Line 99 "Foo" => "Foo" ok 4 - Line 101 "\#[echo $foo]\#bar" => "bar" ok 5 - Line 102 "\#[echo $foo]\#" => "FOO" ok 6 - Line 103 "\#[echo $foo $foo]\#" => "FOOFOO" ok 7 - Line 104 "\#[echo $foo "bar" $foo]\#" => "FOObarFOO" ok 8 - Line 105 "\#[echo "hi"]\#" => "hi" ok 9 - Line 106 "\#[echo 'hi']\#" => "hi" ok 10 - Line 107 "\#[echo foo]\#" => "FOO" ### COMMENT ######################################### compile perl (0) ok 11 - Line 112 "\#[comment]\# Hi there \#[endcomment]\#bar" => "bar" ok 12 - Line 113 "\#[comment]\# Hi there \#[end]\#bar" => "bar" ### IF / ELSIF / ELSE / IFN ######################### compile perl (0) ok 13 - Line 118 "\#[if $foo]\#bar\#[endif]\#bar" => "bar" ok 14 - Line 119 "\#[if "1"]\#bar\#[endif]\#" => "bar" ok 15 - Line 120 "\#[if $foo]\#bar\#[endif]\#" => "" ok 16 - Line 121 "\#[if $foo]\#bar\#[endif]\#" => "bar" ok 17 - Line 122 "\#[ifn $foo]\#bar\#[endifn]\#" => "bar" ok 18 - Line 123 "\#[ifn $foo]\#bar\#[endifn]\#" => "" ok 19 - Line 124 "\#[if foo]\#bar\#[endif]\#" => "" ok 20 - Line 125 "\#[if foo]\#bar\#[endif]\#" => "bar" ok 21 - Line 126 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bing" ok 22 - Line 127 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bar" ok 23 - Line 128 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bar" ok 24 - Line 129 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "wee" ok 25 - Line 130 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bing" ### INCLUDE ######################################### compile perl (0) ok 26 - Line 136 "\#[include "foo.tmpl"]\#" => "Good Day!" ok 27 - Line 137 "\#[include "t/25_text_tmp.t.test_dir/foo.tmpl"]\#" => "Good Day!" ok 28 - Line 139 "\#[include "bar.tmpl"]\#" => "()" ok 29 - Line 140 "\#[include "bar.tmpl"]\#" => "(hi)" ### LOOP ############################################ compile perl (0) ok 30 - Line 145 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "foo" ok 31 - Line 146 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "Hifoo" ok 32 - Line 147 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 33 - Line 148 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 34 - Line 149 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingbangfoo" ok 35 - Line 150 "\#[loop "loop1"]\#\#[echo $boop]\#\#[endloop]\#foo" => "bopfoo" ### TT3 DIRECTIVES ################################## compile perl (0) ok 36 - Line 155 "\#[GET foo]\#" => "FOO" ok 37 - Line 156 "\#[GET 1+2+3+4]\#" => "10" ok 38 - Line 158 "\#[IF foo]\#bar\#[ELSIF wow]\#wee\#[ELSE]\#bing\#[ENDIF]\#" => "bar" ok 39 - Line 160 "\#[SET i = "foo"]\#(\#[VAR i]\#)" => "(foo)" ok 40 - Line 161 "\#[SET i = "foo"]\#(\#[GET i]\#)" => "(foo)" ok 41 - Line 162 "\#[FOR i IN [1..3]]\#(\#[VAR i]\#)\#[END]\#" => "(1)(2)(3)" ok 42 - Line 164 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[PROCESS foo i="bar"]\#" => "(bar)" ok 43 - Line 165 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[SET wow = PROCESS foo i="bar"]\#\#[VAR wow]\#" => "(bar)" ok 44 - Line 167 "\#[GET template.foo]\#\#[META foo = "bar"]\#" => "bar" ok 45 - Line 169 "\#[MACRO bar(n) BLOCK]\#You said \#[VAR n]\#\#[END]\#\#[GET bar("hello")]\#" => "You said hello" ### TT3 CHOMPING #################################### compile perl (0) ok 46 - Line 174 " # \#[GET foo]\#" => " # FOO" ok 47 - Line 175 "\#[GET foo-]\# # " => "FOO" ok 48 - Line 176 " # \#[-GET foo]\#" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (0) ok 49 - Line 181 "$foo \#[GET foo]\# ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 50 - Line 182 "$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ok 51 - Line 183 "\#[CONFIG INTERPOLATE => 1]\#$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ### DONE ############################################ compile perl (0) ### ECHO ############################################ compile perl (1) ok 52 - Line 99 "Foo" => "Foo" ok 53 - Line 101 "\#[echo $foo]\#bar" => "bar" ok 54 - Line 102 "\#[echo $foo]\#" => "FOO" ok 55 - Line 103 "\#[echo $foo $foo]\#" => "FOOFOO" ok 56 - Line 104 "\#[echo $foo "bar" $foo]\#" => "FOObarFOO" ok 57 - Line 105 "\#[echo "hi"]\#" => "hi" ok 58 - Line 106 "\#[echo 'hi']\#" => "hi" ok 59 - Line 107 "\#[echo foo]\#" => "FOO" ### COMMENT ######################################### compile perl (1) ok 60 - Line 112 "\#[comment]\# Hi there \#[endcomment]\#bar" => "bar" ok 61 - Line 113 "\#[comment]\# Hi there \#[end]\#bar" => "bar" ### IF / ELSIF / ELSE / IFN ######################### compile perl (1) ok 62 - Line 118 "\#[if $foo]\#bar\#[endif]\#bar" => "bar" ok 63 - Line 119 "\#[if "1"]\#bar\#[endif]\#" => "bar" ok 64 - Line 120 "\#[if $foo]\#bar\#[endif]\#" => "" ok 65 - Line 121 "\#[if $foo]\#bar\#[endif]\#" => "bar" ok 66 - Line 122 "\#[ifn $foo]\#bar\#[endifn]\#" => "bar" ok 67 - Line 123 "\#[ifn $foo]\#bar\#[endifn]\#" => "" ok 68 - Line 124 "\#[if foo]\#bar\#[endif]\#" => "" ok 69 - Line 125 "\#[if foo]\#bar\#[endif]\#" => "bar" ok 70 - Line 126 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bing" ok 71 - Line 127 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bar" ok 72 - Line 128 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bar" ok 73 - Line 129 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "wee" ok 74 - Line 130 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bing" ### INCLUDE ######################################### compile perl (1) ok 75 - Line 136 "\#[include "foo.tmpl"]\#" => "Good Day!" ok 76 - Line 137 "\#[include "t/25_text_tmp.t.test_dir/foo.tmpl"]\#" => "Good Day!" ok 77 - Line 139 "\#[include "bar.tmpl"]\#" => "()" ok 78 - Line 140 "\#[include "bar.tmpl"]\#" => "(hi)" ### LOOP ############################################ compile perl (1) ok 79 - Line 145 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "foo" ok 80 - Line 146 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "Hifoo" ok 81 - Line 147 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 82 - Line 148 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 83 - Line 149 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingbangfoo" ok 84 - Line 150 "\#[loop "loop1"]\#\#[echo $boop]\#\#[endloop]\#foo" => "bopfoo" ### TT3 DIRECTIVES ################################## compile perl (1) ok 85 - Line 155 "\#[GET foo]\#" => "FOO" ok 86 - Line 156 "\#[GET 1+2+3+4]\#" => "10" ok 87 - Line 158 "\#[IF foo]\#bar\#[ELSIF wow]\#wee\#[ELSE]\#bing\#[ENDIF]\#" => "bar" ok 88 - Line 160 "\#[SET i = "foo"]\#(\#[VAR i]\#)" => "(foo)" ok 89 - Line 161 "\#[SET i = "foo"]\#(\#[GET i]\#)" => "(foo)" ok 90 - Line 162 "\#[FOR i IN [1..3]]\#(\#[VAR i]\#)\#[END]\#" => "(1)(2)(3)" ok 91 - Line 164 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[PROCESS foo i="bar"]\#" => "(bar)" ok 92 - Line 165 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[SET wow = PROCESS foo i="bar"]\#\#[VAR wow]\#" => "(bar)" ok 93 - Line 167 "\#[GET template.foo]\#\#[META foo = "bar"]\#" => "bar" ok 94 - Line 169 "\#[MACRO bar(n) BLOCK]\#You said \#[VAR n]\#\#[END]\#\#[GET bar("hello")]\#" => "You said hello" ### TT3 CHOMPING #################################### compile perl (1) ok 95 - Line 174 " # \#[GET foo]\#" => " # FOO" ok 96 - Line 175 "\#[GET foo-]\# # " => "FOO" ok 97 - Line 176 " # \#[-GET foo]\#" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (1) ok 98 - Line 181 "$foo \#[GET foo]\# ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 99 - Line 182 "$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ok 100 - Line 183 "\#[CONFIG INTERPOLATE => 1]\#$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ### DONE ############################################ compile perl (1) ok t/30_velocity.t ......... 1..202 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### VARIABLES ####################################### compile perl (0) ok 3 - Line 80 "Foo" => "Foo" ok 4 - Line 81 "$mud_Slinger_9" => "bar" ok 5 - Line 82 "$!mud_Slinger_9" => "bar" ok 6 - Line 83 "${mud_Slinger_9}" => "bar" ok 7 - Line 84 "$!{mud_Slinger_9}" => "bar" ok 8 - Line 85 "$mud_Slinger_9<<" => "$mud_Slinger_9<<" ok 9 - Line 86 "$!mud_Slinger_9<<" => "<<" ok 10 - Line 87 "${mud_Slinger_9}<<" => "${mud_Slinger_9}<<" ok 11 - Line 88 "$!{mud_Slinger_9}<<" => "<<" ### SET ############################################# compile perl (0) ok 12 - Line 93 "\#set($foo = "bar")$foo" => "bar" ok 13 - Line 95 "\#set($monkey = $bill)$monkey" => "Bill" ok 14 - Line 96 "\#set($monkey.Friend = 'monica')$monkey.Friend" => "monica" ok 15 - Line 97 "\#set($monkey.Blame = $whitehouse.Leak)$monkey.Blame" => "from_velocity_ref_guide" ok 16 - Line 98 "\#set($monkey.Plan = $spindoctor.weave($web))$monkey.Plan" => "(spider)" ok 17 - Line 99 "\#set($monkey.Number = 123)$monkey.Number" => "123" ok 18 - Line 100 "\#set($monkey.Numbers = [1..3])$monkey.Numbers.2" => "3" ok 19 - Line 101 "\#set($monkey.Map = {"banana" : "good"})$monkey.Map.banana" => "good" ok 20 - Line 103 "\#set($value = $foo + 1)$value" => "9" ok 21 - Line 104 "\#set($value = $bar - 1)$value" => "3" ok 22 - Line 105 "\#set($value = $foo * $bar)$value" => "32" ok 23 - Line 106 "\#set($value = $foo / $bar)$value" => "2" ok 24 - Line 107 "\#set($value = $foo % $bar)$value" => "0" ok 25 - Line 109 "\#set($!value = $foo + 1)$value" => "" ### QUOTED STRINGS ################################## compile perl (0) ok 26 - Line 114 "\#set($value = "($foo)")$value" => "(bar)" ok 27 - Line 115 "\#set($value = "(\#get($foo))")$value" => "(bar)" ok 28 - Line 116 "\#set($value = "($foo)")$value" => "(bar)" ok 29 - Line 117 "\#set($value = "(\#get($foo))")$value" => "(\#get(bar))" ok 30 - Line 118 "\#set($value = '($foo)')$value" => "($foo)" ok 31 - Line 119 "\#set($value = '(\#get($foo))')$value" => "(\#get($foo))" ok 32 - Line 121 "\#set($value = "($foo)")$value" => "($foo)" ok 33 - Line 122 "\#set($value = "(\#get($foo))")$value" => "()" ok 34 - Line 123 "\#set($value = "($foo)")$value" => "($foo)" ok 35 - Line 124 "\#set($value = "(\#get($foo))")$value" => "(\#get($foo))" ok 36 - Line 126 "\#set($value = "($!foo)")$value" => "()" ok 37 - Line 127 "\#set($value = "(\#get($!foo))")$value" => "" ok 38 - Line 128 "\#set($value = "($!foo)")$value" => "()" ok 39 - Line 129 "\#set($value = "(\#get($!foo))")$value" => "(\#get())" ### COMMENTS ######################################## compile perl (0) ok 40 - Line 134 "Foo\#\#interesting # Bar" => "FooBar" ok 41 - Line 135 "Foo\#\#interesting # # Bar" => "Foo # Bar" ok 42 - Line 136 "Foo\#\#interesting" => "Foo" ok 43 - Line 137 "Foo\#*interesting # " => "" ok 44 - Line 138 "Foo\#*interesting # # # *\#" => "Foo" ok 45 - Line 139 "Foo\#*interesting # # # *\#Bar" => "FooBar" ### ESCAPING ######################################## compile perl (0) ok 46 - Line 144 "$email" => "foo" ok 47 - Line 145 "\$email" => "$email" ok 48 - Line 146 "\\$email" => "\foo" ok 49 - Line 147 "\\\$email" => "\$email" ok 50 - Line 149 "$email" => "$email" ok 51 - Line 150 "\$email" => "$email" ok 52 - Line 151 "\\$email" => "\$email" ok 53 - Line 152 "\\\$email" => "\$email" ### IF / ELSEIF / ELSE ############################## compile perl (0) ok 54 - Line 157 "\#if($foo)bar\#{end}bar" => "bar" ok 55 - Line 158 "\#if("1")bar\#end" => "bar" ok 56 - Line 159 "\#if($foo)bar\#end" => "" ok 57 - Line 160 "\#if($foo)bar\#end" => "bar" ok 58 - Line 161 "\#if($foo)bar\#{else}baz\#end" => "bar" ok 59 - Line 162 "\#if($foo)bar\#{else}baz\#end" => "baz" ok 60 - Line 163 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "baz" ok 61 - Line 164 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "bang" ### FOREACH ######################################## compile perl (0) ok 62 - Line 169 "\#foreach( foo )bar\#{end}" => "bar" ok 63 - Line 170 "\#foreach( f IN foo )bar$f\#{end}" => "bar1bar2" ok 64 - Line 171 "\#foreach( f = foo )bar$f\#{end}" => "bar1bar2" ok 65 - Line 172 "\#foreach( f = [1,2] )bar$f\#{end}" => "bar1bar2" ok 66 - Line 173 "\#foreach( f = [1..3] )bar$f\#{end}" => "bar1bar2bar3" ok 67 - Line 174 "\#foreach( f = [{a=>'A'},{a=>'B'}] )bar$f.a\#{end}" => "barAbarB" ok 68 - Line 175 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}" => "barAbarB" ok 69 - Line 176 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}$!a" => "barAbarB" ok 70 - Line 177 "\#foreach( f = [1..3] )$loop.count/$loop.size \#{end}" => "1/3 2/3 3/3 " ### INCLUDE ######################################### compile perl (0) ok 71 - Line 183 "\#include("foo.vel")" => "Good Day!" ok 72 - Line 184 "\#parse($foo)" => "Good Day!" ok 73 - Line 185 "\#include("bar.vel")" => "($bar)" ok 74 - Line 186 "\#include("bar.vel")" => "($bar)" ### PARSE ############################################ compile perl (0) ok 75 - Line 191 "\#parse("foo.vel")" => "Good Day!" ok 76 - Line 192 "\#parse($foo)" => "Good Day!" ok 77 - Line 193 "\#parse("bar.vel")" => "($bar)" ok 78 - Line 194 "\#parse("bar.vel")" => "(foo)" ### STOP ############################################ compile perl (0) ok 79 - Line 199 "\#stop" => "" ok 80 - Line 200 "One\#{stop}Two" => "One" ok 81 - Line 201 "\#block('foo')One\#{stop}Two\#{end}First\#process('foo')Last" => "FirstOne" ok 82 - Line 202 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#end$f\#end" => "112233" ok 83 - Line 203 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#stop\#end\#end" => "1" ok 84 - Line 204 "\#foreach( $f = [1..3] )\#if(loop.first)\#stop\#end$f\#end" => "" ### EVALUATE ######################################## compile perl (0) ok 85 - Line 209 "\#set($f = '>\#try\#evaluate($f)\#{catch}caught\#end')\#evaluate($f)" => ">>>>>caught" ok 86 - Line 210 "\#set($f = '>\#try\#eval($f)\#{catch}foo\#end')\#eval($f)\#EVALUATE($f)" => ">>foo>>foo" ### MACRO ########################################### compile perl (0) ok 87 - Line 215 "\#macro(foo PROCESS bar )\#block(bar)Hi\#end$foo" => "Hi" ok 88 - Line 216 "\#macro(foo BLOCK)Hi\#end$foo" => "Hi" ok 89 - Line 217 "\#macro(foo $n BLOCK)Hi$n\#end$foo" => "Hi$n" ok 90 - Line 218 "\#macro(foo $n BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 91 - Line 219 "\#macro(foo(n) BLOCK)Hi$n\#end$foo" => "Hi$n" ok 92 - Line 220 "\#macro(foo(n) BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 93 - Line 221 "\#macro(foo $n)Hi$n\#end$foo" => "Hi$n" ok 94 - Line 222 "\#macro(foo $n)Hi$n\#end$foo(2)" => "Hi2" ok 95 - Line 223 "\#macro(foo $n)Hi$n\#end\#foo(2)" => "Hi2" ok 96 - Line 224 "\#macro(foo $n $m)Hi($n)($m)\#end\#foo(2 3)" => "Hi(2)(3)" ok 97 - Line 226 "\#macro( inner $foo ) # inner : $foo # \#end # # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo # \#end # # \#set($bar = "calltimelala") # \#outer( "\#inner($bar)" )" => " outer : inner : calltimelala" ok 98 - Line 238 "\#macro( inner $foo ) # inner : $foo # \#end # # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo|eval # \#end # # \#set($bar = "calltimelala") # \#outer( "\#inner('$bar')" )" => " outer : inner : outerlala" ### TT3 CHOMPING #################################### compile perl (0) ok 99 - Line 253 " # \#get( $foo )" => " # FOO" ok 100 - Line 254 "\#get( $foo -) # " => "FOO" ok 101 - Line 255 " # \#get(- $foo)" => "FOO" ok 102 - Line 256 " # \#get( -$foo)" => " # -7" ### DONE ############################################ compile perl (0) ### VARIABLES ####################################### compile perl (1) ok 103 - Line 80 "Foo" => "Foo" ok 104 - Line 81 "$mud_Slinger_9" => "bar" ok 105 - Line 82 "$!mud_Slinger_9" => "bar" ok 106 - Line 83 "${mud_Slinger_9}" => "bar" ok 107 - Line 84 "$!{mud_Slinger_9}" => "bar" ok 108 - Line 85 "$mud_Slinger_9<<" => "$mud_Slinger_9<<" ok 109 - Line 86 "$!mud_Slinger_9<<" => "<<" ok 110 - Line 87 "${mud_Slinger_9}<<" => "${mud_Slinger_9}<<" ok 111 - Line 88 "$!{mud_Slinger_9}<<" => "<<" ### SET ############################################# compile perl (1) ok 112 - Line 93 "\#set($foo = "bar")$foo" => "bar" ok 113 - Line 95 "\#set($monkey = $bill)$monkey" => "Bill" ok 114 - Line 96 "\#set($monkey.Friend = 'monica')$monkey.Friend" => "monica" ok 115 - Line 97 "\#set($monkey.Blame = $whitehouse.Leak)$monkey.Blame" => "from_velocity_ref_guide" ok 116 - Line 98 "\#set($monkey.Plan = $spindoctor.weave($web))$monkey.Plan" => "(spider)" ok 117 - Line 99 "\#set($monkey.Number = 123)$monkey.Number" => "123" ok 118 - Line 100 "\#set($monkey.Numbers = [1..3])$monkey.Numbers.2" => "3" ok 119 - Line 101 "\#set($monkey.Map = {"banana" : "good"})$monkey.Map.banana" => "good" ok 120 - Line 103 "\#set($value = $foo + 1)$value" => "9" ok 121 - Line 104 "\#set($value = $bar - 1)$value" => "3" ok 122 - Line 105 "\#set($value = $foo * $bar)$value" => "32" ok 123 - Line 106 "\#set($value = $foo / $bar)$value" => "2" ok 124 - Line 107 "\#set($value = $foo % $bar)$value" => "0" ok 125 - Line 109 "\#set($!value = $foo + 1)$value" => "" ### QUOTED STRINGS ################################## compile perl (1) ok 126 - Line 114 "\#set($value = "($foo)")$value" => "(bar)" ok 127 - Line 115 "\#set($value = "(\#get($foo))")$value" => "(bar)" ok 128 - Line 116 "\#set($value = "($foo)")$value" => "(bar)" ok 129 - Line 117 "\#set($value = "(\#get($foo))")$value" => "(\#get(bar))" ok 130 - Line 118 "\#set($value = '($foo)')$value" => "($foo)" ok 131 - Line 119 "\#set($value = '(\#get($foo))')$value" => "(\#get($foo))" ok 132 - Line 121 "\#set($value = "($foo)")$value" => "($foo)" ok 133 - Line 122 "\#set($value = "(\#get($foo))")$value" => "()" ok 134 - Line 123 "\#set($value = "($foo)")$value" => "($foo)" ok 135 - Line 124 "\#set($value = "(\#get($foo))")$value" => "(\#get($foo))" ok 136 - Line 126 "\#set($value = "($!foo)")$value" => "()" ok 137 - Line 127 "\#set($value = "(\#get($!foo))")$value" => "" ok 138 - Line 128 "\#set($value = "($!foo)")$value" => "()" ok 139 - Line 129 "\#set($value = "(\#get($!foo))")$value" => "(\#get())" ### COMMENTS ######################################## compile perl (1) ok 140 - Line 134 "Foo\#\#interesting # Bar" => "FooBar" ok 141 - Line 135 "Foo\#\#interesting # # Bar" => "Foo # Bar" ok 142 - Line 136 "Foo\#\#interesting" => "Foo" ok 143 - Line 137 "Foo\#*interesting # " => "" ok 144 - Line 138 "Foo\#*interesting # # # *\#" => "Foo" ok 145 - Line 139 "Foo\#*interesting # # # *\#Bar" => "FooBar" ### ESCAPING ######################################## compile perl (1) ok 146 - Line 144 "$email" => "foo" ok 147 - Line 145 "\$email" => "$email" ok 148 - Line 146 "\\$email" => "\foo" ok 149 - Line 147 "\\\$email" => "\$email" ok 150 - Line 149 "$email" => "$email" ok 151 - Line 150 "\$email" => "$email" ok 152 - Line 151 "\\$email" => "\$email" ok 153 - Line 152 "\\\$email" => "\$email" ### IF / ELSEIF / ELSE ############################## compile perl (1) ok 154 - Line 157 "\#if($foo)bar\#{end}bar" => "bar" ok 155 - Line 158 "\#if("1")bar\#end" => "bar" ok 156 - Line 159 "\#if($foo)bar\#end" => "" ok 157 - Line 160 "\#if($foo)bar\#end" => "bar" ok 158 - Line 161 "\#if($foo)bar\#{else}baz\#end" => "bar" ok 159 - Line 162 "\#if($foo)bar\#{else}baz\#end" => "baz" ok 160 - Line 163 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "baz" ok 161 - Line 164 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "bang" ### FOREACH ######################################## compile perl (1) ok 162 - Line 169 "\#foreach( foo )bar\#{end}" => "bar" ok 163 - Line 170 "\#foreach( f IN foo )bar$f\#{end}" => "bar1bar2" ok 164 - Line 171 "\#foreach( f = foo )bar$f\#{end}" => "bar1bar2" ok 165 - Line 172 "\#foreach( f = [1,2] )bar$f\#{end}" => "bar1bar2" ok 166 - Line 173 "\#foreach( f = [1..3] )bar$f\#{end}" => "bar1bar2bar3" ok 167 - Line 174 "\#foreach( f = [{a=>'A'},{a=>'B'}] )bar$f.a\#{end}" => "barAbarB" ok 168 - Line 175 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}" => "barAbarB" ok 169 - Line 176 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}$!a" => "barAbarB" ok 170 - Line 177 "\#foreach( f = [1..3] )$loop.count/$loop.size \#{end}" => "1/3 2/3 3/3 " ### INCLUDE ######################################### compile perl (1) ok 171 - Line 183 "\#include("foo.vel")" => "Good Day!" ok 172 - Line 184 "\#parse($foo)" => "Good Day!" ok 173 - Line 185 "\#include("bar.vel")" => "($bar)" ok 174 - Line 186 "\#include("bar.vel")" => "($bar)" ### PARSE ############################################ compile perl (1) ok 175 - Line 191 "\#parse("foo.vel")" => "Good Day!" ok 176 - Line 192 "\#parse($foo)" => "Good Day!" ok 177 - Line 193 "\#parse("bar.vel")" => "($bar)" ok 178 - Line 194 "\#parse("bar.vel")" => "(foo)" ### STOP ############################################ compile perl (1) ok 179 - Line 199 "\#stop" => "" ok 180 - Line 200 "One\#{stop}Two" => "One" ok 181 - Line 201 "\#block('foo')One\#{stop}Two\#{end}First\#process('foo')Last" => "FirstOne" ok 182 - Line 202 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#end$f\#end" => "112233" ok 183 - Line 203 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#stop\#end\#end" => "1" ok 184 - Line 204 "\#foreach( $f = [1..3] )\#if(loop.first)\#stop\#end$f\#end" => "" ### EVALUATE ######################################## compile perl (1) ok 185 - Line 209 "\#set($f = '>\#try\#evaluate($f)\#{catch}caught\#end')\#evaluate($f)" => ">>>>>caught" ok 186 - Line 210 "\#set($f = '>\#try\#eval($f)\#{catch}foo\#end')\#eval($f)\#EVALUATE($f)" => ">>foo>>foo" ### MACRO ########################################### compile perl (1) ok 187 - Line 215 "\#macro(foo PROCESS bar )\#block(bar)Hi\#end$foo" => "Hi" ok 188 - Line 216 "\#macro(foo BLOCK)Hi\#end$foo" => "Hi" ok 189 - Line 217 "\#macro(foo $n BLOCK)Hi$n\#end$foo" => "Hi$n" ok 190 - Line 218 "\#macro(foo $n BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 191 - Line 219 "\#macro(foo(n) BLOCK)Hi$n\#end$foo" => "Hi$n" ok 192 - Line 220 "\#macro(foo(n) BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 193 - Line 221 "\#macro(foo $n)Hi$n\#end$foo" => "Hi$n" ok 194 - Line 222 "\#macro(foo $n)Hi$n\#end$foo(2)" => "Hi2" ok 195 - Line 223 "\#macro(foo $n)Hi$n\#end\#foo(2)" => "Hi2" ok 196 - Line 224 "\#macro(foo $n $m)Hi($n)($m)\#end\#foo(2 3)" => "Hi(2)(3)" ok 197 - Line 226 "\#macro( inner $foo ) # inner : $foo # \#end # # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo # \#end # # \#set($bar = "calltimelala") # \#outer( "\#inner($bar)" )" => " outer : inner : calltimelala" ok 198 - Line 238 "\#macro( inner $foo ) # inner : $foo # \#end # # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo|eval # \#end # # \#set($bar = "calltimelala") # \#outer( "\#inner('$bar')" )" => " outer : inner : outerlala" ### TT3 CHOMPING #################################### compile perl (1) ok 199 - Line 253 " # \#get( $foo )" => " # FOO" ok 200 - Line 254 "\#get( $foo -) # " => "FOO" ok 201 - Line 255 " # \#get(- $foo)" => "FOO" ok 202 - Line 256 " # \#get( -$foo)" => " # -7" ### DONE ############################################ compile perl (1) ok All tests successful. Files=10, Tests=4571, 8 wallclock secs ( 0.75 usr + 0.05 sys = 0.80 CPU) Result: PASS RHANDOM/Template-Alloy-1.020.tar.gz dmake test TEST_VERBOSE=1 -- OK Paul Seamons <paul@seamons.com> TT2/3, HT, HTE, Tmpl, and Velocity Engine >>> (cd C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3 && tar cvf - Template-Alloy-1.020.ppd blib) | gzip -c >C:/cpanfly-5.22-32/var/REPO/R/RH/RHANDOM/Template-Alloy-1.020.tar.gz Template-Alloy-1.020.ppd blib/ blib/lib/ blib/lib/Template/ blib/lib/Template/Alloy/ blib/lib/Template/Alloy/Compile.pm blib/lib/Template/Alloy/Context.pm blib/lib/Template/Alloy/Exception.pm blib/lib/Template/Alloy/HTE.pm blib/lib/Template/Alloy/Iterator.pm blib/lib/Template/Alloy/Operator.pm blib/lib/Template/Alloy/Parse.pm blib/lib/Template/Alloy/Play.pm blib/lib/Template/Alloy/Stream.pm blib/lib/Template/Alloy/Tmpl.pm blib/lib/Template/Alloy/TT.pm blib/lib/Template/Alloy/Velocity.pm blib/lib/Template/Alloy/VMethod.pm blib/lib/Template/Alloy.pm blib/lib/Template/Alloy.pod >>> mv C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/Template-Alloy-1.020.ppd C:/cpanfly-5.22-32/var/REPO/R/RH/RHANDOM Running test for module 'Text::MultiMarkdown' Running make for B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\B\BO\BOBTFISH\Text-MultiMarkdown-1.000035.tar.gz ok Text-MultiMarkdown-1.000035/ Text-MultiMarkdown-1.000035/Changes Text-MultiMarkdown-1.000035/inc/ Text-MultiMarkdown-1.000035/lib/ Text-MultiMarkdown-1.000035/License.text Text-MultiMarkdown-1.000035/Makefile.PL Text-MultiMarkdown-1.000035/MANIFEST Text-MultiMarkdown-1.000035/MANIFEST.skip Text-MultiMarkdown-1.000035/META.yml Text-MultiMarkdown-1.000035/README Text-MultiMarkdown-1.000035/Readme.text Text-MultiMarkdown-1.000035/script/ Text-MultiMarkdown-1.000035/t/ Text-MultiMarkdown-1.000035/Todo Text-MultiMarkdown-1.000035/t/01use.t Text-MultiMarkdown-1.000035/t/02pod.t Text-MultiMarkdown-1.000035/t/03podcoverage.t Text-MultiMarkdown-1.000035/t/03podspelling.t Text-MultiMarkdown-1.000035/t/04markdown.t Text-MultiMarkdown-1.000035/t/05options.t Text-MultiMarkdown-1.000035/t/06wiki.t Text-MultiMarkdown-1.000035/t/07fulldoc.t Text-MultiMarkdown-1.000035/t/08exporter.t Text-MultiMarkdown-1.000035/t/09base_url.t Text-MultiMarkdown-1.000035/t/10use_metadata.t Text-MultiMarkdown-1.000035/t/11docment_format.t Text-MultiMarkdown-1.000035/t/12empty_element_suffix.t Text-MultiMarkdown-1.000035/t/13multimarkdown-nometadata-firstpara.t Text-MultiMarkdown-1.000035/t/14unicode.t Text-MultiMarkdown-1.000035/t/16headingsinlists.t Text-MultiMarkdown-1.000035/t/17olulreportedonlist.t Text-MultiMarkdown-1.000035/t/18codespanextra.t Text-MultiMarkdown-1.000035/t/20fulldocs-text-multimarkdown.t Text-MultiMarkdown-1.000035/t/22fulldocs-multimarkdown-todo.t Text-MultiMarkdown-1.000035/t/23afulldocs-multimarkdown.t Text-MultiMarkdown-1.000035/t/24fulldocs-pythonmarkdown2-tm.t Text-MultiMarkdown-1.000035/t/29fulldocs-maruku-unittest.t Text-MultiMarkdown-1.000035/t/30disable_multimarkdown_features.t Text-MultiMarkdown-1.000035/t/35commandlinemultimarkdown.t Text-MultiMarkdown-1.000035/t/36footnotes.t Text-MultiMarkdown-1.000035/t/37deflists.t Text-MultiMarkdown-1.000035/t/38self_url.t Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/ Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/ Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/ Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/ Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/ Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Auto_links.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Auto_links.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Backslash_escapes.html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Backslash_escapes.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Citations.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Citations.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/complex_escaping.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/complex_escaping.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Cross-References.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Cross-References.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Emphasis.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Emphasis.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Footnotes.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Footnotes.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Horizontal_rules.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Horizontal_rules.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Images.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Images.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Link_Attributes.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Link_Attributes.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_brackets.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_brackets.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_inline_style.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_inline_style.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_reference_style.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_reference_style.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Complete).text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Complete).xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).html Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Nested_blockquotes.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Nested_blockquotes.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Special_Characters.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Special_Characters.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Strong_and_em_together.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Strong_and_em_together.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tables.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tables.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tabs.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tabs.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Warnings-rt34856.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Warnings-rt34856.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Wiki_Features.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Wiki_Features.xhtml Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/XHTML_Headers.text Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/XHTML_Headers.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Backslash_escapes.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Backslash_escapes.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Footnotes.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Footnotes.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Simple).text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_comments.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_comments.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_inline_style.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_inline_style.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_reference_style.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_reference_style.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Literal_quotes_in_titles.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Nested_blockquotes.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Nested_blockquotes.xhtml Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.text Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/escapes.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/escapes.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/header.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/header.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/hr.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/hr.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/lists.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/lists.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Amps_and_angle_encoding.html Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Amps_and_angle_encoding.text Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Email_Obfuscation.html Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Email_Obfuscation.text Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Tidyness.html Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Tidyness.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/abbreviations.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/abbreviations.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/alt.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/alt.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blank.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blank.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blanks_in_code.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blanks_in_code.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_def.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_def.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_table.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_table.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code3.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code3.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/convert.pl Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/data_loss.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/data_loss.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/easy.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/easy.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/email.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/email.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/entities.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/entities.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/escaping.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/escaping.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_dl.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_dl.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_header_id.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_header_id.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_table1.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_table1.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/footnotes.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/footnotes.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/headers.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/headers.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hex_entities.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hex_entities.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hrule.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hrule.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html3.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html3.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html4.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html4.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html5.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html5.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/ie.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/ie.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/links.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/links.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list1.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list1.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list3.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list3.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list4.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list4.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists11.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists11.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists6.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists6.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7b.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7b.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists8.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists8.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists9.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists9.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_after_paragraph.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_after_paragraph.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_ol.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_ol.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/loss.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/loss.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/misc_sw.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/misc_sw.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/olist.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/olist.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/one.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/one.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraph.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraph.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraphs.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraphs.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/smartypants.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/smartypants.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/syntax_hl.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/syntax_hl.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/table_attributes.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/table_attributes.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/test.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/test.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/wrapping.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/wrapping.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml2.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml2.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml3.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml3.text Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml_instruction.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml_instruction.text Text-MultiMarkdown-1.000035/script/MultiMarkdown.pl Text-MultiMarkdown-1.000035/lib/Text/ Text-MultiMarkdown-1.000035/lib/Text/MultiMarkdown.pm Text-MultiMarkdown-1.000035/inc/Module/ Text-MultiMarkdown-1.000035/inc/Module/Install/ Text-MultiMarkdown-1.000035/inc/Module/Install.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Base.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Can.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Fetch.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Makefile.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Metadata.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Scripts.pm Text-MultiMarkdown-1.000035/inc/Module/Install/Win32.pm Text-MultiMarkdown-1.000035/inc/Module/Install/WriteAll.pm Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Warning: prerequisite Text::Markdown 1.0.26 not found. Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Text::MultiMarkdown Writing MYMETA.yml and MYMETA.json ---- Unsatisfied dependencies detected during ---- ---- BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz ---- Text::Markdown [requires] Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test Delayed until after prerequisites Running test for module 'Text::Markdown' Running make for B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\B\BO\BOBTFISH\Text-Markdown-1.000031.tar.gz ok Text-Markdown-1.000031/ Text-Markdown-1.000031/Changes Text-Markdown-1.000031/inc/ Text-Markdown-1.000031/inc/Module/ Text-Markdown-1.000031/inc/Module/Install/ Text-Markdown-1.000031/inc/Module/Install/Base.pm Text-Markdown-1.000031/inc/Module/Install/Can.pm Text-Markdown-1.000031/inc/Module/Install/CheckConflicts.pm Text-Markdown-1.000031/inc/Module/Install/Fetch.pm Text-Markdown-1.000031/inc/Module/Install/Makefile.pm Text-Markdown-1.000031/inc/Module/Install/Metadata.pm Text-Markdown-1.000031/inc/Module/Install/Scripts.pm Text-Markdown-1.000031/inc/Module/Install/Win32.pm Text-Markdown-1.000031/inc/Module/Install/WriteAll.pm Text-Markdown-1.000031/inc/Module/Install.pm Text-Markdown-1.000031/lib/ Text-Markdown-1.000031/lib/Text/ Text-Markdown-1.000031/lib/Text/Markdown.pm Text-Markdown-1.000031/License.text Text-Markdown-1.000031/Makefile.PL Text-Markdown-1.000031/MANIFEST Text-Markdown-1.000031/META.yml Text-Markdown-1.000031/README Text-Markdown-1.000031/Readme.text Text-Markdown-1.000031/script/ Text-Markdown-1.000031/script/Markdown.pl Text-Markdown-1.000031/t/ Text-Markdown-1.000031/t/02pod.t Text-Markdown-1.000031/t/03podcoverage.t Text-Markdown-1.000031/t/04ensure_1_newline_before_EOF.t Text-Markdown-1.000031/t/05markdown_in_divs.t Text-Markdown-1.000031/t/19exporter-markdown.t Text-Markdown-1.000031/t/21fulldocs-text-markdown.t Text-Markdown-1.000031/t/23fulldocs-markdown.t Text-Markdown-1.000031/t/25fulldocs-phpmarkdown.t Text-Markdown-1.000031/t/31angleedgecase.t Text-Markdown-1.000031/t/32tabwidth.t Text-Markdown-1.000031/t/33spaceinlinksandimages.t Text-Markdown-1.000031/t/34commandlinemarkdown.t Text-Markdown-1.000031/t/37anchormultilinebugs.t Text-Markdown-1.000031/t/40trustliststart.t Text-Markdown-1.000031/t/code-hr.t Text-Markdown-1.000031/t/docs-maruku-unittest/ Text-Markdown-1.000031/t/docs-maruku-unittest/abbreviations.html Text-Markdown-1.000031/t/docs-maruku-unittest/abbreviations.text Text-Markdown-1.000031/t/docs-maruku-unittest/alt.html Text-Markdown-1.000031/t/docs-maruku-unittest/alt.text Text-Markdown-1.000031/t/docs-maruku-unittest/blank.html Text-Markdown-1.000031/t/docs-maruku-unittest/blank.text Text-Markdown-1.000031/t/docs-maruku-unittest/blanks_in_code.html Text-Markdown-1.000031/t/docs-maruku-unittest/blanks_in_code.text Text-Markdown-1.000031/t/docs-maruku-unittest/bug_def.html Text-Markdown-1.000031/t/docs-maruku-unittest/bug_def.text Text-Markdown-1.000031/t/docs-maruku-unittest/bug_table.html Text-Markdown-1.000031/t/docs-maruku-unittest/bug_table.text Text-Markdown-1.000031/t/docs-maruku-unittest/code.html Text-Markdown-1.000031/t/docs-maruku-unittest/code.text Text-Markdown-1.000031/t/docs-maruku-unittest/code2.html Text-Markdown-1.000031/t/docs-maruku-unittest/code2.text Text-Markdown-1.000031/t/docs-maruku-unittest/code3.html Text-Markdown-1.000031/t/docs-maruku-unittest/code3.text Text-Markdown-1.000031/t/docs-maruku-unittest/convert.pl Text-Markdown-1.000031/t/docs-maruku-unittest/data_loss.html Text-Markdown-1.000031/t/docs-maruku-unittest/data_loss.text Text-Markdown-1.000031/t/docs-maruku-unittest/easy.html Text-Markdown-1.000031/t/docs-maruku-unittest/easy.text Text-Markdown-1.000031/t/docs-maruku-unittest/email.html Text-Markdown-1.000031/t/docs-maruku-unittest/email.text Text-Markdown-1.000031/t/docs-maruku-unittest/entities.html Text-Markdown-1.000031/t/docs-maruku-unittest/entities.text Text-Markdown-1.000031/t/docs-maruku-unittest/escaping.html Text-Markdown-1.000031/t/docs-maruku-unittest/escaping.text Text-Markdown-1.000031/t/docs-maruku-unittest/extra_dl.html Text-Markdown-1.000031/t/docs-maruku-unittest/extra_dl.text Text-Markdown-1.000031/t/docs-maruku-unittest/extra_header_id.html Text-Markdown-1.000031/t/docs-maruku-unittest/extra_header_id.text Text-Markdown-1.000031/t/docs-maruku-unittest/extra_table1.html Text-Markdown-1.000031/t/docs-maruku-unittest/extra_table1.text Text-Markdown-1.000031/t/docs-maruku-unittest/footnotes.html Text-Markdown-1.000031/t/docs-maruku-unittest/footnotes.text Text-Markdown-1.000031/t/docs-maruku-unittest/headers.html Text-Markdown-1.000031/t/docs-maruku-unittest/headers.text Text-Markdown-1.000031/t/docs-maruku-unittest/hex_entities.html Text-Markdown-1.000031/t/docs-maruku-unittest/hex_entities.text Text-Markdown-1.000031/t/docs-maruku-unittest/hrule.html Text-Markdown-1.000031/t/docs-maruku-unittest/hrule.text Text-Markdown-1.000031/t/docs-maruku-unittest/html2.html Text-Markdown-1.000031/t/docs-maruku-unittest/html2.text Text-Markdown-1.000031/t/docs-maruku-unittest/html3.html Text-Markdown-1.000031/t/docs-maruku-unittest/html3.text Text-Markdown-1.000031/t/docs-maruku-unittest/html4.html Text-Markdown-1.000031/t/docs-maruku-unittest/html4.text Text-Markdown-1.000031/t/docs-maruku-unittest/html5.html Text-Markdown-1.000031/t/docs-maruku-unittest/html5.text Text-Markdown-1.000031/t/docs-maruku-unittest/ie.html Text-Markdown-1.000031/t/docs-maruku-unittest/ie.text Text-Markdown-1.000031/t/docs-maruku-unittest/images.html Text-Markdown-1.000031/t/docs-maruku-unittest/images.text Text-Markdown-1.000031/t/docs-maruku-unittest/images2.html Text-Markdown-1.000031/t/docs-maruku-unittest/images2.text Text-Markdown-1.000031/t/docs-maruku-unittest/inline_html.html Text-Markdown-1.000031/t/docs-maruku-unittest/inline_html.text Text-Markdown-1.000031/t/docs-maruku-unittest/inline_html2.html Text-Markdown-1.000031/t/docs-maruku-unittest/inline_html2.text Text-Markdown-1.000031/t/docs-maruku-unittest/links.html Text-Markdown-1.000031/t/docs-maruku-unittest/links.text Text-Markdown-1.000031/t/docs-maruku-unittest/list1.html Text-Markdown-1.000031/t/docs-maruku-unittest/list1.text Text-Markdown-1.000031/t/docs-maruku-unittest/list2.html Text-Markdown-1.000031/t/docs-maruku-unittest/list2.text Text-Markdown-1.000031/t/docs-maruku-unittest/list3.html Text-Markdown-1.000031/t/docs-maruku-unittest/list3.text Text-Markdown-1.000031/t/docs-maruku-unittest/list4.html Text-Markdown-1.000031/t/docs-maruku-unittest/list4.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists11.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists11.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists6.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists6.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists7.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists7.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists7b.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists7b.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists8.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists8.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists9.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists9.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists_after_paragraph.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists_after_paragraph.text Text-Markdown-1.000031/t/docs-maruku-unittest/lists_ol.html Text-Markdown-1.000031/t/docs-maruku-unittest/lists_ol.text Text-Markdown-1.000031/t/docs-maruku-unittest/loss.html Text-Markdown-1.000031/t/docs-maruku-unittest/loss.text Text-Markdown-1.000031/t/docs-maruku-unittest/misc_sw.html Text-Markdown-1.000031/t/docs-maruku-unittest/misc_sw.text Text-Markdown-1.000031/t/docs-maruku-unittest/olist.html Text-Markdown-1.000031/t/docs-maruku-unittest/olist.text Text-Markdown-1.000031/t/docs-maruku-unittest/one.html Text-Markdown-1.000031/t/docs-maruku-unittest/one.text Text-Markdown-1.000031/t/docs-maruku-unittest/paragraph.html Text-Markdown-1.000031/t/docs-maruku-unittest/paragraph.text Text-Markdown-1.000031/t/docs-maruku-unittest/paragraphs.html Text-Markdown-1.000031/t/docs-maruku-unittest/paragraphs.text Text-Markdown-1.000031/t/docs-maruku-unittest/smartypants.html Text-Markdown-1.000031/t/docs-maruku-unittest/smartypants.text Text-Markdown-1.000031/t/docs-maruku-unittest/syntax_hl.html Text-Markdown-1.000031/t/docs-maruku-unittest/syntax_hl.text Text-Markdown-1.000031/t/docs-maruku-unittest/table_attributes.html Text-Markdown-1.000031/t/docs-maruku-unittest/table_attributes.text Text-Markdown-1.000031/t/docs-maruku-unittest/test.html Text-Markdown-1.000031/t/docs-maruku-unittest/test.text Text-Markdown-1.000031/t/docs-maruku-unittest/wrapping.html Text-Markdown-1.000031/t/docs-maruku-unittest/wrapping.text Text-Markdown-1.000031/t/docs-maruku-unittest/xml.html Text-Markdown-1.000031/t/docs-maruku-unittest/xml.text Text-Markdown-1.000031/t/docs-maruku-unittest/xml2.html Text-Markdown-1.000031/t/docs-maruku-unittest/xml2.text Text-Markdown-1.000031/t/docs-maruku-unittest/xml3.html Text-Markdown-1.000031/t/docs-maruku-unittest/xml3.text Text-Markdown-1.000031/t/docs-maruku-unittest/xml_instruction.html Text-Markdown-1.000031/t/docs-maruku-unittest/xml_instruction.text Text-Markdown-1.000031/t/docs-php-markdown/ Text-Markdown-1.000031/t/docs-php-markdown/Backslash_escapes.html Text-Markdown-1.000031/t/docs-php-markdown/Backslash_escapes.text Text-Markdown-1.000031/t/docs-php-markdown/Code_block_in_a_list_item.html Text-Markdown-1.000031/t/docs-php-markdown/Code_block_in_a_list_item.text Text-Markdown-1.000031/t/docs-php-markdown/Code_Spans.html Text-Markdown-1.000031/t/docs-php-markdown/Code_Spans.text Text-Markdown-1.000031/t/docs-php-markdown/Headers.html Text-Markdown-1.000031/t/docs-php-markdown/Headers.text Text-Markdown-1.000031/t/docs-php-markdown/Images_(Untitled).html Text-Markdown-1.000031/t/docs-php-markdown/Images_(Untitled).text Text-Markdown-1.000031/t/docs-php-markdown/Inline_HTML_(Simple).html Text-Markdown-1.000031/t/docs-php-markdown/Inline_HTML_(Simple).text Text-Markdown-1.000031/t/docs-php-markdown/Inline_HTML_comments.html Text-Markdown-1.000031/t/docs-php-markdown/Inline_HTML_comments.text Text-Markdown-1.000031/t/docs-php-markdown/PHP-Specific_Bugs.html Text-Markdown-1.000031/t/docs-php-markdown/PHP-Specific_Bugs.text Text-Markdown-1.000031/t/docs-php-markdown/Tight_blocks.html Text-Markdown-1.000031/t/docs-php-markdown/Tight_blocks.text Text-Markdown-1.000031/t/docs-php-markdown-extra/ Text-Markdown-1.000031/t/docs-php-markdown-extra/Abbr.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Abbr.text Text-Markdown-1.000031/t/docs-php-markdown-extra/Definition_Lists.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Definition_Lists.text Text-Markdown-1.000031/t/docs-php-markdown-extra/Emphasis.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Emphasis.text Text-Markdown-1.000031/t/docs-php-markdown-extra/Footnotes.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Footnotes.text Text-Markdown-1.000031/t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text Text-Markdown-1.000031/t/docs-php-markdown-extra/Tables.html Text-Markdown-1.000031/t/docs-php-markdown-extra/Tables.text Text-Markdown-1.000031/t/docs-php-markdown-todo/ Text-Markdown-1.000031/t/docs-php-markdown-todo/Email_auto_links.html Text-Markdown-1.000031/t/docs-php-markdown-todo/Email_auto_links.text Text-Markdown-1.000031/t/docs-php-markdown-todo/Emphasis.html Text-Markdown-1.000031/t/docs-php-markdown-todo/Emphasis.text Text-Markdown-1.000031/t/docs-php-markdown-todo/Inline_HTML_(Span).html Text-Markdown-1.000031/t/docs-php-markdown-todo/Inline_HTML_(Span).text Text-Markdown-1.000031/t/docs-php-markdown-todo/Ins_and_del.text Text-Markdown-1.000031/t/docs-php-markdown-todo/Ins_and_del.xhtml Text-Markdown-1.000031/t/docs-php-markdown-todo/Links_inline_style.html Text-Markdown-1.000031/t/docs-php-markdown-todo/Links_inline_style.text Text-Markdown-1.000031/t/docs-php-markdown-todo/Nesting.html Text-Markdown-1.000031/t/docs-php-markdown-todo/Nesting.text Text-Markdown-1.000031/t/docs-php-markdown-todo/Parens_in_URL.html Text-Markdown-1.000031/t/docs-php-markdown-todo/Parens_in_URL.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/ Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codespans.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codespans.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/escapes.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/escapes.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/header.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/header.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/hr.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/hr.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/lists.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/lists.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html Text-Markdown-1.000031/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/ Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Auto_links.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Code_Spans.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Images.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Images.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Tabs.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Tidyness.text Text-Markdown-1.000031/t/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/ Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text Text-Markdown-1.000031/t/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml Text-Markdown-1.000031/t/rt37909.t Text-Markdown-1.000031/t/rt48943.t Text-Markdown-1.000031/t/Text-Markdown.mdtest/ Text-Markdown-1.000031/t/Text-Markdown.mdtest/CoreDumps5.8.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/CoreDumps5.8.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/Emphasis.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Emphasis.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/HTML-Comment-encoding.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/HTML5-attributes.html Text-Markdown-1.000031/t/Text-Markdown.mdtest/HTML5-attributes.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_brackets.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_brackets.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_multiline_bugs_1.html Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_multiline_bugs_1.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_multiline_bugs_2.html Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_multiline_bugs_2.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_reference_style.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Links_reference_style.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/PHP-ASP_tags.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/PHP-ASP_tags.xhtml Text-Markdown-1.000031/t/Text-Markdown.mdtest/Unicode.text Text-Markdown-1.000031/t/Text-Markdown.mdtest/Unicode.xhtml Text-Markdown-1.000031/Todo Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Text::Markdown Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/Text/Markdown.pm blib\lib\Text\Markdown.pm "C:\Perl-5.22-32\bin\perl.exe" "-Iinc" -MExtUtils::Command -e cp -- script/Markdown.pl blib\script\Markdown.pl pl2bat.bat blib\script\Markdown.pl BOBTFISH/Text-Markdown-1.000031.tar.gz dmake -- OK Prepending C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'inc', 'blib\lib', 'blib\arch')" t/*.t t/02pod.t .......................... skipped: set TEST_POD to enable this test t/03podcoverage.t .................. skipped: set TEST_POD to enable this test t/04ensure_1_newline_before_EOF.t .. 1..3 ok 1 - use Text::Markdown; ok 2 - collapse multiple newlines at EOF into one ok 3 - ensure newline before EOF ok t/05markdown_in_divs.t ............. 1..21 ok 1 - use Text::Markdown; ok 2 - sanity check: markown in block elements doesn't get interpreted ok 3 - markdown on in div - generate

tags ok 4 - markdown on in h2 - no

tags in h2 ok 5 - some characters before an

make the h2 an ignored element ok 6 - adding markdown='on' if there were some characters before the h2, doesn't change anything. markdown='on' won't be removed. ok 7 -
in span-level HTML ok 8 -
in block-level HTML with markdown="on" ok 9 - don't mess with the markdown attribute if part of code span or block ok 10 - leave [div] alone, it's not
ok 11 - leave !div! alone, it's not
, and it's in code too ok 12 - start interpreting Markdown without blank line sandwiching ok 13 -
with inner list ok 14 -
with inner code block ok 15 -
with inner blockquote ok 16 -
with inner block HTML ok 17 -
with inner
, which ends with exactly one line ok 18 -
comprehensive ok 19 -
with multiple lines of attributes ok 20 -
- can put the markdown="1" attribute anywhere ok 21 - sanity check: just code ok t/19exporter-markdown.t ............ 1..7 ok 1 - use Text::Markdown; ok 2 - Functional markdown works without an exception ok 3 - exported markdown function works ok 4 - Functional markdown works without an exception, with options ok 5 - exported markdown function overrides passed options not ok 6 - Lives (class method) # TODO Broken here # Failed (TODO) test 'Lives (class method)' # at t/19exporter-markdown.t line 40. # died: Calling Text::Markdown->markdown (as a class method) is not supported. at t/19exporter-markdown.t line 39. not ok 7 - Text::Markdown->markdown() works (as class method) # TODO Broken here # Failed (TODO) test 'Text::Markdown->markdown() works (as class method)' # at t/19exporter-markdown.t line 44. # got: '' # expected: '

# Heading 1

' ok t/21fulldocs-text-markdown.t ....... 1..12 ok 1 - use Text::Markdown; ok 2 - Docs test: CoreDumps5.8 ok 3 - Docs test: Emphasis ok 4 - Docs test: HTML-Comment-encoding ok 5 - Docs test: HTML5-attributes ok 6 - Docs test: Links_brackets ok 7 - Docs test: Links_multiline_bugs_1 ok 8 - Docs test: Links_multiline_bugs_2 ok 9 - Docs test: Links_reference_style ok 10 - Docs test: Lists-multilevel-md5-edgecase ok 11 - Docs test: PHP-ASP_tags ok 12 - Docs test: Unicode ok t/23fulldocs-markdown.t ............ skipped: This test needs HTML::Tidy installed to pass correctly, skipping t/25fulldocs-phpmarkdown.t ......... skipped: This test needs HTML::Tidy installed to pass correctly, skipping t/31angleedgecase.t ................ 1..2 ok 1 - use Text::Markdown; not ok 2 # TODO Known "bug" (the no < unless next to space thing was originally by design) - but I would like to # break the spec and fix this.. # Failed (TODO) test at t/31angleedgecase.t line 17. # got: '

x # ' # expected: '

x<max(a,b)

' ok t/32tabwidth.t ..................... 1..4 ok 1 - use Text::Markdown; ok 2 - Correct (constructor) ok 3 - Correct (markdown method option) ok 4 - no HR elements when the hr is in a code block ok t/33spaceinlinksandimages.t ........ 1..2 ok 1 - use Text::Markdown; not ok 2 - as expected # TODO Proposed syntax extension (on list) to deal with spaces in URLs by quoting them # Failed (TODO) test 'as expected' # at t/33spaceinlinksandimages.t line 13. # got: '

![alternativer text]("pfad/und/eine lange/urlzu mbild.jpg" testtitle)

# ' # expected: '

alternativer text

# ' ok t/34commandlinemarkdown.t .......... 1..2 ok 1 - require Markdown.pl works ok 2 - Markdown.pl does the right thing with the syntax guide ok t/37anchormultilinebugs.t .......... 1..4 ok 1 - use Text::Markdown; ok 2 - http://bugs.debian.org/459885 - Line breaks in reference link ids (single line breaks) ok 3 - http://bugs.debian.org/459885 - Line breaks in reference link ids (multiple trailing spaces and line breaks) ok 4 - http://bugs.debian.org/459885 - Line breaks in shortcut reference link ids (multiple trailing spaces and line breaks) ok t/40trustliststart.t ............... 1..2 ok 1 - use Text::Markdown; ok 2 - we can use numbering from start marker ok t/code-hr.t ........................ 1..1 ok 1 - no HR elements when the hr is in a code block ok t/rt37909.t ........................ 1..2 ok 1 - use Text::Markdown; ok 2 ok t/rt48943.t ........................ 1..2 ok 1 - use Text::Markdown; ok 2 ok All tests successful. Files=17, Tests=64, 5 wallclock secs ( 0.20 usr + 0.05 sys = 0.25 CPU) Result: PASS BOBTFISH/Text-Markdown-1.000031.tar.gz dmake test TEST_VERBOSE=1 -- OK Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/B/BO/BOBTFISH/CHECKSUMS Tomas Doran <bobtfish@bobtfish.net> Convert Markdown syntax to (X)HTML >>> (cd C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP && tar cvf - Text-Markdown-1.000031.ppd blib) | gzip -c >C:/cpanfly-5.22-32/var/REPO/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz Text-Markdown-1.000031.ppd blib/ blib/lib/ blib/lib/Text/ blib/lib/Text/Markdown.pm blib/script/ blib/script/Markdown.bat blib/script/Markdown.pl >>> mv C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/Text-Markdown-1.000031.ppd C:/cpanfly-5.22-32/var/REPO/B/BO/BOBTFISH Running make for B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Has already been unwrapped into directory C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz >>> dmake cp lib/Text/MultiMarkdown.pm blib\lib\Text\MultiMarkdown.pm "C:\Perl-5.22-32\bin\perl.exe" "-Iinc" -MExtUtils::Command -e cp -- script/MultiMarkdown.pl blib\script\MultiMarkdown.pl pl2bat.bat blib\script\MultiMarkdown.pl BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz dmake -- OK Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'inc', 'blib\lib', 'blib\arch')" t/*.t t/01use.t ................................. 1..1 ok 1 - use Text::MultiMarkdown; ok t/02pod.t ................................. skipped: set TEST_POD to enable this test t/03podcoverage.t ......................... skipped: set TEST_POD to enable this test t/03podspelling.t ......................... skipped: Test::Spelling 0.11 not installed t/04markdown.t ............................ 1..3 ok 1 - use Text::MultiMarkdown; ok 2 ok 3 ok t/05options.t ............................. 1..3 ok 1 - use Text::MultiMarkdown; ok 2 ok 3 ok t/06wiki.t ................................ 1..9 ok 1 - use Text::MultiMarkdown; ok 2 - No link where no htmlwiki ok 3 - has a link where expected ok 4 - use wikilinks does not toggle pref ok 5 - use_wikilinks pref in ->markdown produces same out as metadata ok 6 - use_wikilinks = 0 pref in ->markdown produces same out as no metadata ok 7 - use wikiwords pref in constructor produces same out as metadata ok 8 - not use wikilinks pref in markdown produces same out as no metadata when instance has wikilinks enabled ok 9 - Wiki word escaping works as expected ok t/07fulldoc.t ............................. 1..2 ok 1 - use Text::MultiMarkdown; ok 2 - Output matches expected ok t/08exporter.t ............................ 1..5 ok 1 - use Text::MultiMarkdown; ok 2 - Functional markdown works without an exception ok 3 - exported markdown function works not ok 4 - Lives (class method) # TODO Broken here # Failed (TODO) test 'Lives (class method)' # at t/08exporter.t line 27. # died: Calling Text::MultiMarkdown->markdown (as a class method) is not supported. at t/08exporter.t line 26. not ok 5 - Text::MultiMarkdown->markdown() works (as class method) # TODO Broken here # Failed (TODO) test 'Text::MultiMarkdown->markdown() works (as class method)' # at t/08exporter.t line 31. # got: '' # expected: '

A trivial block of text

' ok t/09base_url.t ............................ 1..4 ok 1 - use Text::MultiMarkdown; ok 2 - Markdown with wiki links, no base url ok 3 - Markdown with wiki links, with base url in instance ok 4 - Markdown with wiki links, with base url in metadata ok t/10use_metadata.t ........................ 1..7 ok 1 - use Text::MultiMarkdown; ok 2 - Markdown with wiki links, and base url, metadata switched on in instance ok 3 - Markdown with wiki links, with base url in instance (no metadata) ok 4 - Markdown with wiki links, and base url, metadata switched on in options ok 5 - Markdown with wiki links, with base url in instance (no metadata) - try 2 to ensure option to markdown does not frob setting ok 6 - Markdown with wiki links, with metadata off and stripped ok 7 - Markdown with wiki links, with metadata on but stripped ok t/11docment_format.t ...................... 1..5 ok 1 - use Text::MultiMarkdown; ok 2 - Markdown ok 3 - Markdown with complete xhtml doc ok 4 - Markdown with complete xhtml doc (and metadata) ok 5 - Markdown withmetadata, but no complete doc ok t/12empty_element_suffix.t ................ 1..3 ok 1 - use Text::MultiMarkdown; ok 2 - Normal element suffix as expected ok 3 - HTML element suffix also as expected ok t/13multimarkdown-nometadata-firstpara.t .. 1..2 ok 1 - use Text::MultiMarkdown; ok 2 ok t/14unicode.t ............................. 1..3 ok 1 - use Text::MultiMarkdown; ok 2 - No exception from markdown () ok 3 ok t/16headingsinlists.t ..................... 1..3 ok 1 - use Text::MultiMarkdown; ok 2 not ok 3 # TODO Fails as lack of space between list elements means we only run span level tags, and headings are block level # Failed (TODO) test at t/16headingsinlists.t line 35. # got: '
    #
  • # Heading 1
  • #
  • ## Heading 2
  • #
# ' # expected: '
    #
  • Heading 1

  • #
  • Heading 2

  • #
# ' ok t/17olulreportedonlist.t .................. 1..2 ok 1 - use Text::MultiMarkdown; not ok 2 # TODO Does not work as expected in current Markdown, known bug. # Failed (TODO) test at t/17olulreportedonlist.t line 19. # got: '
    #
  • a
  • #
  • b

    # #
      #
    1. 1
    2. #
    3. 2
    4. #
  • #
# ' # expected: '
    #
  • a
  • #
  • b
  • #
# #
    #
  1. 1
  2. #
  3. 2
  4. #
# ' ok t/18codespanextra.t ....................... 1..4 ok 1 - use Text::MultiMarkdown; ok 2 ok 3 ok 4 ok t/20fulldocs-text-multimarkdown.t ......... 1..42 ok 1 - use Text::MultiMarkdown; ok 2 - Docs test: Amps_and_angles_encoding-advanced ok 3 - Docs test: Amps_and_angle_encoding ok 4 - Docs test: Auto_links ok 5 - Docs test: Backslash_escapes ok 6 - Docs test: Blockquotes_with_code_blocks ok 7 - Docs test: Citations ok 8 - Docs test: complex_escaping ok 9 - Docs test: Cross-References ok 10 - Docs test: Emphasis ok 11 - Docs test: Footnotes ok 12 - Docs test: Hard-wrapped_paragraphs_with_list-like_lines ok 13 - Docs test: Horizontal_rules ok 14 - Docs test: HTML-Comment-encoding ok 15 - Docs test: Images ok 16 - Docs test: Inline_HTML_(Advanced) ok 17 - Docs test: Inline_HTML_(Simple) ok 18 - Docs test: Inline_HTML_comments ok 19 - Docs test: Links_brackets ok 20 - Docs test: Links_inline_style ok 21 - Docs test: Links_multiline_bugs_1 ok 22 - Docs test: Links_multiline_bugs_2 ok 23 - Docs test: Links_reference_style ok 24 - Docs test: Link_Attributes ok 25 - Docs test: Lists-multilevel-md5-edgecase ok 26 - Docs test: Lists ok 27 - Docs test: Literal_quotes_in_titles ok 28 - Docs test: Markdown_Documentation_-_Basics ok 29 - Docs test: Markdown_Documentation_-_Syntax ok 30 - Docs test: Metadata_(Complete) ok 31 - Docs test: Metadata_(Snippet) ok 32 - Docs test: Nested_blockquotes ok 33 - Docs test: Ordered_and_unordered_lists ok 34 - Docs test: PHP-ASP_tags ok 35 - Docs test: Special_Characters ok 36 - Docs test: Strong_and_em_together ok 37 - Docs test: Tables ok 38 - Docs test: Tabs ok 39 - Docs test: Warnings-rt34856 ok 40 - Docs test: Wiki_Features ok 41 - Docs test: XHTML_Headers ok 42 - No warnings expected ok t/22fulldocs-multimarkdown-todo.t ......... 1..4 ok 1 - use Text::MultiMarkdown; ================================================================================ DIFFERENCES: + = processed version from .text, - = template from .html @@ -16,7 +16,7 @@

Here's an inline link.

-

This is not handled <<properly>>.

+

This is not handled <>.

But this <<is>>.
 
not ok 2 - Docs test: Amps_and_angle_encoding # TODO These tests are known broken # Failed (TODO) test 'Docs test: Amps_and_angle_encoding' # at C:/cpanfly-5.22-32/var/cpan/build/Text-MultiMarkdown-1.000035-K9TgRE/t/20fulldocs-text-multimarkdown.t line 27. ================================================================================ DIFFERENCES: + = processed version from .text, - = template from .html @@ -1,3 +1,3 @@

some.user@some.company.com

-

some.user@some.company.com

+

some.user@some.company.com

not ok 3 - Docs test: Email_Obfuscation # TODO These tests are known broken # Failed (TODO) test 'Docs test: Email_Obfuscation' # at C:/cpanfly-5.22-32/var/cpan/build/Text-MultiMarkdown-1.000035-K9TgRE/t/20fulldocs-text-multimarkdown.t line 27. ================================================================================ DIFFERENCES: + = processed version from .text, - = template from .html @@ -1,8 +1,9 @@
-

A list within a blockquote:

-
    -
  • asterisk 1
  • -
  • asterisk 2
  • -
  • asterisk 3
  • -
+  

A list within a blockquote:

+   +  
    +  
  • asterisk 1
  • +  
  • asterisk 2
  • +  
  • asterisk 3
  • +  
not ok 4 - Docs test: Tidyness # TODO These tests are known broken # Failed (TODO) test 'Docs test: Tidyness' # at C:/cpanfly-5.22-32/var/cpan/build/Text-MultiMarkdown-1.000035-K9TgRE/t/20fulldocs-text-multimarkdown.t line 27. ok t/23afulldocs-multimarkdown.t ............. skipped: This test needs HTML::Tidy installed to pass correctly, skipping t/24fulldocs-pythonmarkdown2-tm.t ......... skipped: This test needs HTML::Tidy installed to pass correctly, skipping t/29fulldocs-maruku-unittest.t ............ skipped: This test needs HTML::Tidy installed to pass correctly, skipping t/30disable_multimarkdown_features.t ...... 1..4 ok 1 - use Text::MultiMarkdown; ok 2 - disable_footnotes works as expected ok 3 - disable_bibliography works as expected ok 4 - disable_tables works as expected ok t/35commandlinemultimarkdown.t ............ 1..2 ok 1 - require MultiMarkdown.pl works ok 2 - MultiMarkdown.pl does the right thing with the syntax guide ok t/36footnotes.t ........................... 1..2 ok 1 - use Text::MultiMarkdown; ok 2 - underscores in code in footnotes ok t/37deflists.t ............................ 1..2 ok 1 - use Text::MultiMarkdown; ok 2 - definition lists ok t/38self_url.t ............................ 1..2 ok 1 - use Text::MultiMarkdown; ok 2 - Markdown with self_url footnotes ok All tests successful. Files=28, Tests=114, 9 wallclock secs ( 0.20 usr + 0.03 sys = 0.23 CPU) Result: PASS BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz dmake test TEST_VERBOSE=1 -- OK Tomas Doran <bobtfish@bobtfish.net> Convert MultiMarkdown syntax to (X)HTML >>> (cd C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE && tar cvf - Text-MultiMarkdown-1.000035.ppd blib) | gzip -c >C:/cpanfly-5.22-32/var/REPO/B/BO/BOBTFISH/Text-MultiMarkdown-1.000035.tar.gz Text-MultiMarkdown-1.000035.ppd blib/ blib/lib/ blib/lib/Text/ blib/lib/Text/MultiMarkdown.pm blib/script/ blib/script/MultiMarkdown.bat blib/script/MultiMarkdown.pl >>> mv C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/Text-MultiMarkdown-1.000035.ppd C:/cpanfly-5.22-32/var/REPO/B/BO/BOBTFISH Running test for module 'YAML::Tiny' Running make for E/ET/ETHER/YAML-Tiny-1.69.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/E/ET/ETHER/YAML-Tiny-1.69.tar.gz Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\E\ET\ETHER\YAML-Tiny-1.69.tar.gz ok YAML-Tiny-1.69/ YAML-Tiny-1.69/Changes YAML-Tiny-1.69/CONTRIBUTING YAML-Tiny-1.69/dist.ini YAML-Tiny-1.69/INSTALL YAML-Tiny-1.69/lib/ YAML-Tiny-1.69/LICENSE YAML-Tiny-1.69/Makefile.PL YAML-Tiny-1.69/MANIFEST YAML-Tiny-1.69/META.json YAML-Tiny-1.69/META.yml YAML-Tiny-1.69/README YAML-Tiny-1.69/t/ YAML-Tiny-1.69/xt/ YAML-Tiny-1.69/xt/author/ YAML-Tiny-1.69/xt/compare/ YAML-Tiny-1.69/xt/lib/ YAML-Tiny-1.69/xt/release/ YAML-Tiny-1.69/xt/release/changes_has_content.t YAML-Tiny-1.69/xt/release/cpan-changes.t YAML-Tiny-1.69/xt/release/distmeta.t YAML-Tiny-1.69/xt/release/minimum-version.t YAML-Tiny-1.69/xt/release/pod-coverage.t YAML-Tiny-1.69/xt/release/pod-no404s.t YAML-Tiny-1.69/xt/release/pod-syntax.t YAML-Tiny-1.69/xt/release/portability.t YAML-Tiny-1.69/xt/lib/Test.pm YAML-Tiny-1.69/xt/compare/roundtrip.t YAML-Tiny-1.69/xt/author/00-compile.t YAML-Tiny-1.69/xt/author/clean-namespaces.t YAML-Tiny-1.69/xt/author/eol.t YAML-Tiny-1.69/xt/author/kwalitee.t YAML-Tiny-1.69/xt/author/mojibake.t YAML-Tiny-1.69/xt/author/no-tabs.t YAML-Tiny-1.69/xt/author/pod-spell.t YAML-Tiny-1.69/t/00-report-prereqs.dd YAML-Tiny-1.69/t/00-report-prereqs.t YAML-Tiny-1.69/t/01_api.t YAML-Tiny-1.69/t/01_compile.t YAML-Tiny-1.69/t/10_read.t YAML-Tiny-1.69/t/11_read_string.t YAML-Tiny-1.69/t/12_write.t YAML-Tiny-1.69/t/13_write_string.t YAML-Tiny-1.69/t/20_subclass.t YAML-Tiny-1.69/t/21_yamlpm_compat.t YAML-Tiny-1.69/t/30_yaml_spec_tml.t YAML-Tiny-1.69/t/31_local_tml.t YAML-Tiny-1.69/t/32_world_tml.t YAML-Tiny-1.69/t/86_fail.t YAML-Tiny-1.69/t/data/ YAML-Tiny-1.69/t/lib/ YAML-Tiny-1.69/t/README.md YAML-Tiny-1.69/t/tml YAML-Tiny-1.69/t/tml-local/ YAML-Tiny-1.69/t/tml-spec/ YAML-Tiny-1.69/t/tml-world/ YAML-Tiny-1.69/t/tml-world/Acme-Time-Baby.tml YAML-Tiny-1.69/t/tml-world/Data-Swap.tml YAML-Tiny-1.69/t/tml-world/Games-Nintendo-Wii-Mii.tml YAML-Tiny-1.69/t/tml-world/HTML-WebDAO.tml YAML-Tiny-1.69/t/tml-world/ITS-SIN-FIDS-Content-XML.tml YAML-Tiny-1.69/t/tml-world/Plagger.tml YAML-Tiny-1.69/t/tml-world/Spreadsheet-Read.tml YAML-Tiny-1.69/t/tml-world/Template-Provider-Unicode-Japanese.tml YAML-Tiny-1.69/t/tml-world/toolbar.tml YAML-Tiny-1.69/t/tml-world/Vanilla-Perl.tml YAML-Tiny-1.69/t/tml-world/YAML-Tiny-META.tml YAML-Tiny-1.69/t/tml-world/yaml_org.tml YAML-Tiny-1.69/t/tml-spec/basic-data.tml YAML-Tiny-1.69/t/tml-spec/unicode.tml YAML-Tiny-1.69/t/tml-local/dump-error/ YAML-Tiny-1.69/t/tml-local/load-error/ YAML-Tiny-1.69/t/tml-local/load-warning/ YAML-Tiny-1.69/t/tml-local/perl-to-yaml/ YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/ YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/collection.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/comment.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/document.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/mapping.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/quoting.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/scalar.tml YAML-Tiny-1.69/t/tml-local/yaml-roundtrip/sequence.tml YAML-Tiny-1.69/t/tml-local/perl-to-yaml/quoting.tml YAML-Tiny-1.69/t/tml-local/load-warning/document.tml YAML-Tiny-1.69/t/tml-local/load-error/document.tml YAML-Tiny-1.69/t/tml-local/load-error/scalar.tml YAML-Tiny-1.69/t/tml-local/load-error/tag.tml YAML-Tiny-1.69/t/tml-local/dump-error/circular.tml YAML-Tiny-1.69/t/lib/SubtestCompat.pm YAML-Tiny-1.69/t/lib/TestBridge.pm YAML-Tiny-1.69/t/lib/TestML/ YAML-Tiny-1.69/t/lib/TestUtils.pm YAML-Tiny-1.69/t/lib/TestML/Tiny.pm YAML-Tiny-1.69/t/data/ascii.yml YAML-Tiny-1.69/t/data/latin1.yml YAML-Tiny-1.69/t/data/multibyte.yml YAML-Tiny-1.69/t/data/utf_16_le_bom.yml YAML-Tiny-1.69/t/data/utf_8_bom.yml YAML-Tiny-1.69/lib/YAML/ YAML-Tiny-1.69/lib/YAML/Tiny.pm Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building E/ET/ETHER/YAML-Tiny-1.69.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for YAML::Tiny Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/YAML/Tiny.pm blib\lib\YAML\Tiny.pm ETHER/YAML-Tiny-1.69.tar.gz dmake -- OK Prepending C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t # # Versions for all modules listed in MYMETA.json (including optional ones): # # === Configure Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.04 # # === Build Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.04 # # === Test Requires === # # Module Want Have # --------------------- ---- -------- # ExtUtils::MakeMaker any 7.04 # File::Basename any 2.85 # File::Find any 1.29 # File::Spec 0.80 3.47 # File::Spec::Functions any 3.47 # File::Temp 0.19 0.2304 # Getopt::Long any 2.47 # IO::Dir any 1.10 # JSON::PP any 2.27300 # List::Util any 1.42 # Test::More 0.88 1.001014 # base any 2.18 # lib any 0.63 # utf8 any 1.17 # vars any 1.03 # # === Test Recommends === # # Module Want Have # ------------- -------- -------- # CPAN::Meta 2.120900 2.150001 # JSON::MaybeXS 1.001000 1.003005 # # === Runtime Requires === # # Module Want Have # ------------ ---- ---- # B any 1.58 # Carp any 1.36 # Exporter any 5.72 # Fcntl any 1.13 # Scalar::Util any 1.42 # strict any 1.09 # warnings any 1.32 # # === Other Modules === # # Module Have # ------------- ---- # Pod::Coverage 0.23 # t/00-report-prereqs.t .. 1..1 ok 1 ok t/01_api.t ............. # Subtest: default exports ok 1 - Found exported Load function ok 2 - Found exported Dump function ok 3 - Load is YAML::Tiny ok 4 - Dump is YAML::Tiny ok 5 - LoadFile function not exported ok 6 - DumpFile function not exported ok 7 - freeze function not exported ok 8 - thaw functiona not exported 1..8 ok 1 - default exports # Subtest: all exports ok 1 - Found exported Load function ok 2 - Found exported Dump function ok 3 - Found exported LoadFile function ok 4 - Found exported DumpFile function ok 5 - Found exported freeze function ok 6 - Found exported thaw functiona 1..6 ok 2 - all exports # Subtest: constructor and documents ok 1 - constructor ok 2 - the object is an arrayref of documents 1..2 ok 3 - constructor and documents 1..3 ok t/01_compile.t ......... ok 1 - Your perl is new enough ok 2 - require YAML::Tiny; ok 3 - require TestUtils; ok 4 - require TestBridge; ok 5 - require TestML::Tiny; 1..5 ok t/10_read.t ............ # Subtest: UTF-8 BOM ok 1 - Found utf_8_bom.yml ok 2 - YAML::Tiny reads without exception ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - utf8 decoded ok 6 - read() object method ok 7 - objects are different ok 8 - objects have same content 1..8 ok 1 - UTF-8 BOM # Subtest: array ok 1 - Found ascii.yml ok 2 - YAML::Tiny reads without exception ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - read() object method ok 6 - objects are different ok 7 - objects have same content 1..7 ok 2 - array # Subtest: multibyte UTF-8 ok 1 - Found multibyte.yml ok 2 - YAML::Tiny reads without exception ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - utf8 decoded ok 6 - read() object method ok 7 - objects are different ok 8 - objects have same content 1..8 ok 3 - multibyte UTF-8 # Subtest: latin1.yml ok 1 - Found latin1.yml ok 2 - returned false ok 3 - Got expected error 1..3 ok 4 - latin1.yml # Subtest: utf_16_le_bom.yml ok 1 - Found utf_16_le_bom.yml ok 2 - returned false ok 3 - Got expected error 1..3 ok 5 - utf_16_le_bom.yml # Subtest: bad read arguments ok 1 - Got expected error: no filename provided to read() ok 2 - Got expected error: nonexistent filename provided to read() ok 3 - Got expected error: directory provided to read() 1..3 ok 6 - bad read arguments 1..6 ok t/11_read_string.t ..... # Subtest: read_string without arg ok 1 - Got expected error: no string provided to read_string() 1..1 ok 1 - read_string without arg # Subtest: YAML without newline ok 1 - YAML without newline is OK 1..1 ok 2 - YAML without newline # Subtest: read_string as object method ok 1 - new YAML object ok 2 - read_string object method ok 3 - objects are different ok 4 - objects have same content 1..4 ok 3 - read_string as object method # Subtest: invalid UTF-8 ok 1 - read_string should return undef ok 2 - Got expected error about invalid UTF-8 string 1..2 ok 4 - invalid UTF-8 1..4 ok t/12_write.t ........... # Subtest: no filename for write() ok 1 - No filename provided to write() 1..1 ok 1 - no filename for write() # Subtest: write ascii characters ok 1 - case ascii: write output ok 2 - case ascii: read output ok 3 - no error caught ok 4 - case ascii: Perl -> File -> Perl roundtrip ok 5 - case ascii: read_string on UTF-8 decoded output ok 6 - no error caught ok 7 - case ascii: Perl -> File -> Decoded -> Perl roundtrip ok 8 - case ascii: no warnings caught 1..8 ok 2 - write ascii characters # Subtest: write latin1 characters ok 1 - case latin1: write output ok 2 - case latin1: read output ok 3 - no error caught ok 4 - case latin1: Perl -> File -> Perl roundtrip ok 5 - case latin1: read_string on UTF-8 decoded output ok 6 - no error caught ok 7 - case latin1: Perl -> File -> Decoded -> Perl roundtrip ok 8 - case latin1: no warnings caught 1..8 ok 3 - write latin1 characters # Subtest: write wide characters ok 1 - case wide: write output ok 2 - case wide: read output ok 3 - no error caught ok 4 - case wide: Perl -> File -> Perl roundtrip ok 5 - case wide: read_string on UTF-8 decoded output ok 6 - no error caught ok 7 - case wide: Perl -> File -> Decoded -> Perl roundtrip ok 8 - case wide: no warnings caught 1..8 ok 4 - write wide characters 1..4 ok t/13_write_string.t .... # Subtest: write_string as class method ok 1 - write_string lives ok 2 - returns empty string 1..2 ok 1 - write_string as class method 1..1 ok t/20_subclass.t ........ ok 1 - Subclassing works 1..1 ok t/21_yamlpm_compat.t ... ok 1 - Functional interface: Dump to Load roundtrip works as expected ok 2 - DumpFile returned true value ok 3 - Functional interface: DumpFile to LoadFile roundtrip works as expected ok 4 - Correctly failed to load non-YAML string 1..4 ok # using JSON backend: JSON::XS 3.01 t/30_yaml_spec_tml.t ... # Subtest: YAML Spec Test; file: t/tml-spec/basic-data.tml # Subtest: basic hash ok 1 - YAML loads ok 2 - Load is accurate 1..2 ok 1 - basic hash # Subtest: double quoted keys ok 1 - YAML loads ok 2 - Load is accurate 1..2 ok 2 - double quoted keys # Subtest: basic array ok 1 - YAML loads ok 2 - Load is accurate 1..2 ok 3 - basic array 1..3 ok 1 - YAML Spec Test; file: t/tml-spec/basic-data.tml # Subtest: YAML Spec Test; file: t/tml-spec/unicode.tml # Subtest: Code point 0 - Unicode map key/value test ok 1 - Dump key and value of code point char 0 ok 2 - YAML for code point 0 YNY roundtrips ok 3 - YAML for code point 0 NYN roundtrips 1..3 ok 1 - Code point 0 - Unicode map key/value test # Subtest: Code point 1 - Unicode map key/value test ok 1 - Dump key and value of code point char 1 ok 2 - YAML for code point 1 YNY roundtrips ok 3 - YAML for code point 1 NYN roundtrips 1..3 ok 2 - Code point 1 - Unicode map key/value test # Subtest: Code point 7 - Unicode map key/value test ok 1 - Dump key and value of code point char 7 ok 2 - YAML for code point 7 YNY roundtrips ok 3 - YAML for code point 7 NYN roundtrips 1..3 ok 3 - Code point 7 - Unicode map key/value test # Subtest: Code point 8 - Unicode map key/value test ok 1 - Dump key and value of code point char 8 ok 2 - YAML for code point 8 YNY roundtrips ok 3 - YAML for code point 8 NYN roundtrips 1..3 ok 4 - Code point 8 - Unicode map key/value test # Subtest: Code point 9 - Unicode map key/value test ok 1 - Dump key and value of code point char 9 ok 2 - YAML for code point 9 YNY roundtrips ok 3 - YAML for code point 9 NYN roundtrips 1..3 ok 5 - Code point 9 - Unicode map key/value test # Subtest: Code point 10 - Unicode map key/value test ok 1 - Dump key and value of code point char 10 ok 2 - YAML for code point 10 YNY roundtrips ok 3 - YAML for code point 10 NYN roundtrips 1..3 ok 6 - Code point 10 - Unicode map key/value test # Subtest: Code point 11 - Unicode map key/value test ok 1 - Dump key and value of code point char 11 ok 2 - YAML for code point 11 YNY roundtrips ok 3 - YAML for code point 11 NYN roundtrips 1..3 ok 7 - Code point 11 - Unicode map key/value test # Subtest: Code point 12 - Unicode map key/value test ok 1 - Dump key and value of code point char 12 ok 2 - YAML for code point 12 YNY roundtrips ok 3 - YAML for code point 12 NYN roundtrips 1..3 ok 8 - Code point 12 - Unicode map key/value test # Subtest: Code point 13 - Unicode map key/value test ok 1 - Dump key and value of code point char 13 ok 2 - YAML for code point 13 YNY roundtrips ok 3 - YAML for code point 13 NYN roundtrips 1..3 ok 9 - Code point 13 - Unicode map key/value test # Subtest: Code point 27 - Unicode map key/value test ok 1 - Dump key and value of code point char 27 ok 2 - YAML for code point 27 YNY roundtrips ok 3 - YAML for code point 27 NYN roundtrips 1..3 ok 10 - Code point 27 - Unicode map key/value test # Subtest: Code point 32 - Unicode map key/value test ok 1 - Dump key and value of code point char 32 ok 2 - YAML for code point 32 YNY roundtrips ok 3 - YAML for code point 32 NYN roundtrips 1..3 ok 11 - Code point 32 - Unicode map key/value test # Subtest: Code point 33 - Unicode map key/value test ok 1 - Dump key and value of code point char 33 ok 2 - YAML for code point 33 YNY roundtrips ok 3 - YAML for code point 33 NYN roundtrips 1..3 ok 12 - Code point 33 - Unicode map key/value test # Subtest: Code point 34 - Unicode map key/value test ok 1 - Dump key and value of code point char 34 ok 2 - YAML for code point 34 YNY roundtrips ok 3 - YAML for code point 34 NYN roundtrips 1..3 ok 13 - Code point 34 - Unicode map key/value test # Subtest: Code point 35 - Unicode map key/value test ok 1 - Dump key and value of code point char 35 ok 2 - YAML for code point 35 YNY roundtrips ok 3 - YAML for code point 35 NYN roundtrips 1..3 ok 14 - Code point 35 - Unicode map key/value test # Subtest: Code point 36 - Unicode map key/value test ok 1 - Dump key and value of code point char 36 ok 2 - YAML for code point 36 YNY roundtrips ok 3 - YAML for code point 36 NYN roundtrips 1..3 ok 15 - Code point 36 - Unicode map key/value test # Subtest: Code point 37 - Unicode map key/value test ok 1 - Dump key and value of code point char 37 ok 2 - YAML for code point 37 YNY roundtrips ok 3 - YAML for code point 37 NYN roundtrips 1..3 ok 16 - Code point 37 - Unicode map key/value test # Subtest: Code point 38 - Unicode map key/value test ok 1 - Dump key and value of code point char 38 ok 2 - YAML for code point 38 YNY roundtrips ok 3 - YAML for code point 38 NYN roundtrips 1..3 ok 17 - Code point 38 - Unicode map key/value test # Subtest: Code point 39 - Unicode map key/value test ok 1 - Dump key and value of code point char 39 ok 2 - YAML for code point 39 YNY roundtrips ok 3 - YAML for code point 39 NYN roundtrips 1..3 ok 18 - Code point 39 - Unicode map key/value test # Subtest: Code point 40 - Unicode map key/value test ok 1 - Dump key and value of code point char 40 ok 2 - YAML for code point 40 YNY roundtrips ok 3 - YAML for code point 40 NYN roundtrips 1..3 ok 19 - Code point 40 - Unicode map key/value test # Subtest: Code point 41 - Unicode map key/value test ok 1 - Dump key and value of code point char 41 ok 2 - YAML for code point 41 YNY roundtrips ok 3 - YAML for code point 41 NYN roundtrips 1..3 ok 20 - Code point 41 - Unicode map key/value test # Subtest: Code point 42 - Unicode map key/value test ok 1 - Dump key and value of code point char 42 ok 2 - YAML for code point 42 YNY roundtrips ok 3 - YAML for code point 42 NYN roundtrips 1..3 ok 21 - Code point 42 - Unicode map key/value test # Subtest: Code point 43 - Unicode map key/value test ok 1 - Dump key and value of code point char 43 ok 2 - YAML for code point 43 YNY roundtrips ok 3 - YAML for code point 43 NYN roundtrips 1..3 ok 22 - Code point 43 - Unicode map key/value test # Subtest: Code point 44 - Unicode map key/value test ok 1 - Dump key and value of code point char 44 ok 2 - YAML for code point 44 YNY roundtrips ok 3 - YAML for code point 44 NYN roundtrips 1..3 ok 23 - Code point 44 - Unicode map key/value test # Subtest: Code point 45 - Unicode map key/value test ok 1 - Dump key and value of code point char 45 ok 2 - YAML for code point 45 YNY roundtrips ok 3 - YAML for code point 45 NYN roundtrips 1..3 ok 24 - Code point 45 - Unicode map key/value test # Subtest: Code point 46 - Unicode map key/value test ok 1 - Dump key and value of code point char 46 ok 2 - YAML for code point 46 YNY roundtrips ok 3 - YAML for code point 46 NYN roundtrips 1..3 ok 25 - Code point 46 - Unicode map key/value test # Subtest: Code point 47 - Unicode map key/value test ok 1 - Dump key and value of code point char 47 ok 2 - YAML for code point 47 YNY roundtrips ok 3 - YAML for code point 47 NYN roundtrips 1..3 ok 26 - Code point 47 - Unicode map key/value test # Subtest: Code point 48 - Unicode map key/value test ok 1 - Dump key and value of code point char 48 ok 2 - YAML for code point 48 YNY roundtrips ok 3 - YAML for code point 48 NYN roundtrips 1..3 ok 27 - Code point 48 - Unicode map key/value test # Subtest: Code point 58 - Unicode map key/value test ok 1 - Dump key and value of code point char 58 ok 2 - YAML for code point 58 YNY roundtrips ok 3 - YAML for code point 58 NYN roundtrips 1..3 ok 28 - Code point 58 - Unicode map key/value test # Subtest: Code point 59 - Unicode map key/value test ok 1 - Dump key and value of code point char 59 ok 2 - YAML for code point 59 YNY roundtrips ok 3 - YAML for code point 59 NYN roundtrips 1..3 ok 29 - Code point 59 - Unicode map key/value test # Subtest: Code point 60 - Unicode map key/value test ok 1 - Dump key and value of code point char 60 ok 2 - YAML for code point 60 YNY roundtrips ok 3 - YAML for code point 60 NYN roundtrips 1..3 ok 30 - Code point 60 - Unicode map key/value test # Subtest: Code point 61 - Unicode map key/value test ok 1 - Dump key and value of code point char 61 ok 2 - YAML for code point 61 YNY roundtrips ok 3 - YAML for code point 61 NYN roundtrips 1..3 ok 31 - Code point 61 - Unicode map key/value test # Subtest: Code point 62 - Unicode map key/value test ok 1 - Dump key and value of code point char 62 ok 2 - YAML for code point 62 YNY roundtrips ok 3 - YAML for code point 62 NYN roundtrips 1..3 ok 32 - Code point 62 - Unicode map key/value test # Subtest: Code point 63 - Unicode map key/value test ok 1 - Dump key and value of code point char 63 ok 2 - YAML for code point 63 YNY roundtrips ok 3 - YAML for code point 63 NYN roundtrips 1..3 ok 33 - Code point 63 - Unicode map key/value test # Subtest: Code point 64 - Unicode map key/value test ok 1 - Dump key and value of code point char 64 ok 2 - YAML for code point 64 YNY roundtrips ok 3 - YAML for code point 64 NYN roundtrips 1..3 ok 34 - Code point 64 - Unicode map key/value test # Subtest: Code point 65 - Unicode map key/value test ok 1 - Dump key and value of code point char 65 ok 2 - YAML for code point 65 YNY roundtrips ok 3 - YAML for code point 65 NYN roundtrips 1..3 ok 35 - Code point 65 - Unicode map key/value test # Subtest: Code point 78 - Unicode map key/value test ok 1 - Dump key and value of code point char 78 ok 2 - YAML for code point 78 YNY roundtrips ok 3 - YAML for code point 78 NYN roundtrips 1..3 ok 36 - Code point 78 - Unicode map key/value test # Subtest: Code point 89 - Unicode map key/value test ok 1 - Dump key and value of code point char 89 ok 2 - YAML for code point 89 YNY roundtrips ok 3 - YAML for code point 89 NYN roundtrips 1..3 ok 37 - Code point 89 - Unicode map key/value test # Subtest: Code point 91 - Unicode map key/value test ok 1 - Dump key and value of code point char 91 ok 2 - YAML for code point 91 YNY roundtrips ok 3 - YAML for code point 91 NYN roundtrips 1..3 ok 38 - Code point 91 - Unicode map key/value test # Subtest: Code point 93 - Unicode map key/value test ok 1 - Dump key and value of code point char 93 ok 2 - YAML for code point 93 YNY roundtrips ok 3 - YAML for code point 93 NYN roundtrips 1..3 ok 39 - Code point 93 - Unicode map key/value test # Subtest: Code point 94 - Unicode map key/value test ok 1 - Dump key and value of code point char 94 ok 2 - YAML for code point 94 YNY roundtrips ok 3 - YAML for code point 94 NYN roundtrips 1..3 ok 40 - Code point 94 - Unicode map key/value test # Subtest: Code point 95 - Unicode map key/value test ok 1 - Dump key and value of code point char 95 ok 2 - YAML for code point 95 YNY roundtrips ok 3 - YAML for code point 95 NYN roundtrips 1..3 ok 41 - Code point 95 - Unicode map key/value test # Subtest: Code point 96 - Unicode map key/value test ok 1 - Dump key and value of code point char 96 ok 2 - YAML for code point 96 YNY roundtrips ok 3 - YAML for code point 96 NYN roundtrips 1..3 ok 42 - Code point 96 - Unicode map key/value test # Subtest: Code point 97 - Unicode map key/value test ok 1 - Dump key and value of code point char 97 ok 2 - YAML for code point 97 YNY roundtrips ok 3 - YAML for code point 97 NYN roundtrips 1..3 ok 43 - Code point 97 - Unicode map key/value test # Subtest: Code point 110 - Unicode map key/value test ok 1 - Dump key and value of code point char 110 ok 2 - YAML for code point 110 YNY roundtrips ok 3 - YAML for code point 110 NYN roundtrips 1..3 ok 44 - Code point 110 - Unicode map key/value test # Subtest: Code point 121 - Unicode map key/value test ok 1 - Dump key and value of code point char 121 ok 2 - YAML for code point 121 YNY roundtrips ok 3 - YAML for code point 121 NYN roundtrips 1..3 ok 45 - Code point 121 - Unicode map key/value test # Subtest: Code point 123 - Unicode map key/value test ok 1 - Dump key and value of code point char 123 ok 2 - YAML for code point 123 YNY roundtrips ok 3 - YAML for code point 123 NYN roundtrips 1..3 ok 46 - Code point 123 - Unicode map key/value test # Subtest: Code point 124 - Unicode map key/value test ok 1 - Dump key and value of code point char 124 ok 2 - YAML for code point 124 YNY roundtrips ok 3 - YAML for code point 124 NYN roundtrips 1..3 ok 47 - Code point 124 - Unicode map key/value test # Subtest: Code point 125 - Unicode map key/value test ok 1 - Dump key and value of code point char 125 ok 2 - YAML for code point 125 YNY roundtrips ok 3 - YAML for code point 125 NYN roundtrips 1..3 ok 48 - Code point 125 - Unicode map key/value test # Subtest: Code point 126 - Unicode map key/value test ok 1 - Dump key and value of code point char 126 ok 2 - YAML for code point 126 YNY roundtrips ok 3 - YAML for code point 126 NYN roundtrips 1..3 ok 49 - Code point 126 - Unicode map key/value test # Subtest: Code point 127 - Unicode map key/value test ok 1 - Dump key and value of code point char 127 ok 2 - YAML for code point 127 YNY roundtrips ok 3 - YAML for code point 127 NYN roundtrips 1..3 ok 50 - Code point 127 - Unicode map key/value test # Subtest: Code point 128 - Unicode map key/value test ok 1 - Dump key and value of code point char 128 ok 2 - YAML for code point 128 YNY roundtrips ok 3 - YAML for code point 128 NYN roundtrips 1..3 ok 51 - Code point 128 - Unicode map key/value test # Subtest: Code point 133 - Unicode map key/value test ok 1 - Dump key and value of code point char 133 ok 2 - YAML for code point 133 YNY roundtrips ok 3 - YAML for code point 133 NYN roundtrips 1..3 ok 52 - Code point 133 - Unicode map key/value test # Subtest: Code point 161 - Unicode map key/value test ok 1 - Dump key and value of code point char 161 ok 2 - YAML for code point 161 YNY roundtrips ok 3 - YAML for code point 161 NYN roundtrips 1..3 ok 53 - Code point 161 - Unicode map key/value test 1..53 ok 2 - YAML Spec Test; file: t/tml-spec/unicode.tml 1..2 ok t/31_local_tml.t ....... # Subtest: TestML: t\tml-local\dump-error/circular.tml # Subtest: Circular Reference Protection ok 1 - returned false ok 2 - Got expected error 1..2 ok 1 - Circular Reference Protection 1..1 ok 1 - TestML: t\tml-local\dump-error/circular.tml # Subtest: TestML: t\tml-local\load-error/document.tml # Subtest: scalar document followed by mapping ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 1 - scalar document followed by mapping 1..1 ok 2 - TestML: t\tml-local\load-error/document.tml # Subtest: TestML: t\tml-local\load-error/scalar.tml # Subtest: multiline quote ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 1 - multiline quote # Subtest: dash dash 2 ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 2 - dash dash 2 # Subtest: dash ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 3 - dash # Subtest: leading ampersand ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 4 - leading ampersand # Subtest: leading percent ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 5 - leading percent # Subtest: trailing colon ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 6 - trailing colon # Subtest: key key value ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 7 - key key value # Subtest: backticks ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 8 - backticks # Subtest: double-dash ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 9 - double-dash # Subtest: multi-line scalar document starting on header ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 10 - multi-line scalar document starting on header 1..10 ok 3 - TestML: t\tml-local\load-error/scalar.tml # Subtest: TestML: t\tml-local\load-error/tag.tml # Subtest: version object ok 1 - read_string returns undef ok 2 - Got expected error 1..2 ok 1 - version object 1..1 ok 4 - TestML: t\tml-local\load-error/tag.tml # Subtest: TestML: t\tml-local\load-warning/document.tml # Subtest: mapping with double key ok 1 - got exactly one warning ok 2 - Got expected warning 1..2 ok 1 - mapping with double key 1..1 ok 5 - TestML: t\tml-local\load-warning/document.tml # Subtest: TestML: t\tml-local\perl-to-yaml/quoting.tml # Subtest: Quote boolean-like string (scalar) ok 1 - write_string lives ok 2 - dumped YAML correct 1..2 ok 1 - Quote boolean-like string (scalar) # Subtest: Quote boolean-like string (list) ok 1 - write_string lives ok 2 - dumped YAML correct 1..2 ok 2 - Quote boolean-like string (list) # Subtest: Quote scalars ending in colon ok 1 - write_string lives ok 2 - dumped YAML correct 1..2 ok 3 - Quote scalars ending in colon 1..3 ok 6 - TestML: t\tml-local\perl-to-yaml/quoting.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/collection.tml # Subtest: null hash in array ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - null hash in array # Subtest: null array in array ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - null array in array # Subtest: null hash in hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - null hash in hash # Subtest: null array in hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - null array in hash # Subtest: array_in_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - array_in_hash # Subtest: hash_in_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - hash_in_hash # Subtest: hash_in_array ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 7 - hash_in_array # Subtest: Non-indenting sub-list ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - Non-indenting sub-list # Subtest: inline_nested_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - inline_nested_hash # Subtest: space after hypen ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 10 - space after hypen # Subtest: colon at end of key ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 11 - colon at end of key 1..11 ok 7 - TestML: t\tml-local\yaml-roundtrip/collection.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/comment.tml # Subtest: Properly ignore comments ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Properly ignore comments # Subtest: Properly ignore comments (with otherwise illegal characters) ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - Properly ignore comments (with otherwise illegal characters) # Subtest: comment header ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - comment header # Subtest: empty_comment_in_list ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - empty_comment_in_list # Subtest: empty_comment_in_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - empty_comment_in_hash 1..5 ok 8 - TestML: t\tml-local\yaml-roundtrip/comment.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/document.tml # Subtest: simple_doctype_comment ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - simple_doctype_comment # Subtest: simple_doctype_percent ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - simple_doctype_percent # Subtest: predocument_1_0 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - predocument_1_0 # Subtest: predocument_1_1 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - predocument_1_1 # Subtest: multi_doctype_comment ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - multi_doctype_comment # Subtest: predocument_percent ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - predocument_percent # Subtest: predocument_comment ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 7 - predocument_comment # Subtest: two documents ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - two documents # Subtest: document_end_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - document_end_hash # Subtest: document_end_array ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 10 - document_end_array # Subtest: multi_document_simple ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 11 - multi_document_simple # Subtest: multi_document_space ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 12 - multi_document_space # Subtest: empty ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 13 - empty # Subtest: only_newlines ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 14 - only_newlines # Subtest: only_comment ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 15 - only_comment # Subtest: only_header ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 16 - only_header # Subtest: two_header ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 17 - two_header # Subtest: one_undef ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 18 - one_undef # Subtest: one_undef2 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 19 - one_undef2 # Subtest: two_undef ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 20 - two_undef 1..20 ok 9 - TestML: t\tml-local\yaml-roundtrip/document.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/mapping.tml # Subtest: Empty mapping ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Empty mapping # Subtest: one_hash1 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - one_hash1 # Subtest: one_hash2 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - one_hash2 # Subtest: one_hash3 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - one_hash3 # Subtest: implicit_hash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - implicit_hash # Subtest: x-foo key ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - x-foo key # Subtest: module_hash_key ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 7 - module_hash_key # Subtest: hash_indented ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - hash_indented # Subtest: empty hash keys ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - empty hash keys # Subtest: synopsis ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 10 - synopsis # Subtest: Indentation after empty hash value ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 11 - Indentation after empty hash value # Subtest: spaces in the key ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 12 - spaces in the key # Subtest: key_with_whitespace ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 13 - key_with_whitespace # Subtest: quoted_empty_key ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 14 - quoted_empty_key 1..14 ok 10 - TestML: t\tml-local\yaml-roundtrip/mapping.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/quoting.tml # Subtest: Empty double-quote ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Empty double-quote # Subtest: single_quote1 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - single_quote1 # Subtest: single_spaces ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - single_spaces # Subtest: single_null ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - single_null # Subtest: only_spaces ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - only_spaces # Subtest: leading_trailing_spaces ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - leading_trailing_spaces # Subtest: single quotes in double quotes ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 7 - single quotes in double quotes # Subtest: double quotes in single quotes ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - double quotes in single quotes # Subtest: hash-like quote ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - hash-like quote # Subtest: single quote subtleties ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 10 - single quote subtleties # Subtest: single quote subtleties ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 11 - single quote subtleties # Subtest: Multiple escaping of quote ok ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 12 - Multiple escaping of quote ok # Subtest: Multiple escaping of escape ok ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 13 - Multiple escaping of escape ok # Subtest: Multiple escaping of escape with whitespace ok ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 14 - Multiple escaping of escape with whitespace ok # Subtest: Single Dash ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 15 - Single Dash 1..15 ok 11 - TestML: t\tml-local\yaml-roundtrip/quoting.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/scalar.tml # Subtest: one_scalar ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - one_scalar # Subtest: one_scalar2 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - one_scalar2 # Subtest: two_scalar ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - two_scalar # Subtest: simple_multiline ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - simple_multiline # Subtest: indented ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - indented # Subtest: indented ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - indented # Subtest: hitchhiker scalar ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 - Serializes ok 1..10 ok 7 - hitchhiker scalar # Subtest: special characters ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - special characters # Subtest: unprintable ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - unprintable # Subtest: Pathological >< case ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 10 - Pathological >< case # Subtest: Bang in a quote ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 11 - Bang in a quote # Subtest: Ampersand in a quote ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 12 - Ampersand in a quote 1..12 ok 12 - TestML: t\tml-local\yaml-roundtrip/scalar.tml # Subtest: TestML: t\tml-local\yaml-roundtrip/sequence.tml # Subtest: Empty sequence ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Empty sequence # Subtest: one_list1 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - one_list1 # Subtest: implicit_array ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 3 - implicit_array # Subtest: one_list2 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 4 - one_list2 # Subtest: one_listundef ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 5 - one_listundef # Subtest: one_listundefs ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 6 - one_listundefs # Subtest: empty array keys ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 7 - empty array keys # Subtest: empty quote line ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 8 - empty quote line # Subtest: trailing whitespace ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 9 - trailing whitespace 1..9 ok 13 - TestML: t\tml-local\yaml-roundtrip/sequence.tml 1..13 ok t/32_world_tml.t ....... # Subtest: Real-world examples: t/tml-world/Acme-Time-Baby.tml # Subtest: Acme-Time-Baby ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Acme-Time-Baby 1..1 ok 1 - Real-world examples: t/tml-world/Acme-Time-Baby.tml # Subtest: Real-world examples: t/tml-world/Data-Swap.tml # Subtest: Data-Swap ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Data-Swap 1..1 ok 2 - Real-world examples: t/tml-world/Data-Swap.tml # Subtest: Real-world examples: t/tml-world/Games-Nintendo-Wii-Mii.tml # Subtest: Games-Nintendo-Wii-Mii ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Games-Nintendo-Wii-Mii 1..1 ok 3 - Real-world examples: t/tml-world/Games-Nintendo-Wii-Mii.tml # Subtest: Real-world examples: t/tml-world/HTML-WebDAO.tml # Subtest: HTML-WebDAO ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - HTML-WebDAO 1..1 ok 4 - Real-world examples: t/tml-world/HTML-WebDAO.tml # Subtest: Real-world examples: t/tml-world/ITS-SIN-FIDS-Content-XML.tml # Subtest: ITS-SIN-FIDS-Content-XML ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - ITS-SIN-FIDS-Content-XML 1..1 ok 5 - Real-world examples: t/tml-world/ITS-SIN-FIDS-Content-XML.tml # Subtest: Real-world examples: t/tml-world/Plagger.tml # Subtest: Plagger ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Plagger # Subtest: plagger2 ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 2 - plagger2 1..2 ok 6 - Real-world examples: t/tml-world/Plagger.tml # Subtest: Real-world examples: t/tml-world/Spreadsheet-Read.tml # Subtest: Spreadsheet-Read ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Spreadsheet-Read 1..1 ok 7 - Real-world examples: t/tml-world/Spreadsheet-Read.tml # Subtest: Real-world examples: t/tml-world/Template-Provider-Unicode-Japanese.tml # Subtest: Template-Provider-Unicode-Japanese ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - Template-Provider-Unicode-Japanese 1..1 ok 8 - Real-world examples: t/tml-world/Template-Provider-Unicode-Japanese.tml # Subtest: Real-world examples: t/tml-world/Vanilla-Perl.tml # Subtest: vanilla_perl ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - vanilla_perl 1..1 ok 9 - Real-world examples: t/tml-world/Vanilla-Perl.tml # Subtest: Real-world examples: t/tml-world/YAML-Tiny-META.tml # Subtest: YAML::Tiny ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - YAML::Tiny 1..1 ok 10 - Real-world examples: t/tml-world/YAML-Tiny-META.tml # Subtest: Real-world examples: t/tml-world/toolbar.tml # Subtest: toolbar ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - toolbar 1..1 ok 11 - Real-world examples: t/tml-world/toolbar.tml # Subtest: Real-world examples: t/tml-world/yaml_org.tml # Subtest: yaml_org_example ok 1 - YAML::Tiny parses without error ok 2 - YAML::Tiny does not modify the input string ok 3 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 4 - YAML::Tiny parses correctly ok 5 - YAML::Tiny serializes without error ok 6 - YAML::Tiny serializes to scalar ok 7 - YAML::Tiny round-trips without error ok 8 - An object of class 'YAML::Tiny' isa 'YAML::Tiny' ok 9 - YAML::Tiny round-trips correctly ok 10 # skip Shortcutting perfect serialization tests 1..10 ok 1 - yaml_org_example 1..1 ok 12 - Real-world examples: t/tml-world/yaml_org.tml 1..12 ok t/86_fail.t ............ 1..1 not ok 1 - Comments in literal scalars # TODO Failing tests for things YAML::Tiny does wrong # Failed (TODO) test 'Comments in literal scalars' # at t/86_fail.t line 27. # got: 'sub foo {} # ' # expected: '# Perl sub: # sub foo{} # ' ok All tests successful. Files=13, Tests=57, 5 wallclock secs ( 0.30 usr + 0.03 sys = 0.33 CPU) Result: PASS ETHER/YAML-Tiny-1.69.tar.gz dmake test TEST_VERBOSE=1 -- OK Karen Etheridge <ether@cpan.org> Read/Write YAML files with as little code as possible >>> (cd C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1 && tar cvf - YAML-Tiny-1.69.ppd blib) | gzip -c >C:/cpanfly-5.22-32/var/REPO/E/ET/ETHER/YAML-Tiny-1.69.tar.gz YAML-Tiny-1.69.ppd blib/ blib/lib/ blib/lib/YAML/ blib/lib/YAML/Tiny.pm >>> mv C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/YAML-Tiny-1.69.ppd C:/cpanfly-5.22-32/var/REPO/E/ET/ETHER Running test for module 'namespace::autoclean' Running make for E/ET/ETHER/namespace-autoclean-0.26.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\E\ET\ETHER\namespace-autoclean-0.26.tar.gz ok namespace-autoclean-0.26/ namespace-autoclean-0.26/Build.PL namespace-autoclean-0.26/Changes namespace-autoclean-0.26/CONTRIBUTING namespace-autoclean-0.26/dist.ini namespace-autoclean-0.26/INSTALL namespace-autoclean-0.26/lib/ namespace-autoclean-0.26/LICENSE namespace-autoclean-0.26/Makefile.PL namespace-autoclean-0.26/MANIFEST namespace-autoclean-0.26/META.json namespace-autoclean-0.26/META.yml namespace-autoclean-0.26/README namespace-autoclean-0.26/t/ namespace-autoclean-0.26/xt/ namespace-autoclean-0.26/xt/author/ namespace-autoclean-0.26/xt/basic.t namespace-autoclean-0.26/xt/class_mop.t namespace-autoclean-0.26/xt/lib/ namespace-autoclean-0.26/xt/moo.t namespace-autoclean-0.26/xt/moose-parameterized-role.t namespace-autoclean-0.26/xt/moose.t namespace-autoclean-0.26/xt/mouse.t namespace-autoclean-0.26/xt/overload.t namespace-autoclean-0.26/xt/release/ namespace-autoclean-0.26/xt/role_tiny.t namespace-autoclean-0.26/xt/release/changes_has_content.t namespace-autoclean-0.26/xt/release/cpan-changes.t namespace-autoclean-0.26/xt/release/distmeta.t namespace-autoclean-0.26/xt/release/minimum-version.t namespace-autoclean-0.26/xt/release/mojibake.t namespace-autoclean-0.26/xt/release/pod-coverage.t namespace-autoclean-0.26/xt/release/pod-no404s.t namespace-autoclean-0.26/xt/release/pod-syntax.t namespace-autoclean-0.26/xt/release/portability.t namespace-autoclean-0.26/xt/lib/ClassMOPClean.pm namespace-autoclean-0.26/xt/lib/ClassMOPDirty.pm namespace-autoclean-0.26/xt/lib/Clean.pm namespace-autoclean-0.26/xt/lib/Composer.pm namespace-autoclean-0.26/xt/lib/Dirty.pm namespace-autoclean-0.26/xt/lib/DoesNotCompile.pm namespace-autoclean-0.26/xt/lib/ExporterModule.pm namespace-autoclean-0.26/xt/lib/MooseExporter.pm namespace-autoclean-0.26/xt/lib/MooseyClean.pm namespace-autoclean-0.26/xt/lib/MooseyComposer.pm namespace-autoclean-0.26/xt/lib/MooseyDirty.pm namespace-autoclean-0.26/xt/lib/MooseyParameterizedComposer.pm namespace-autoclean-0.26/xt/lib/MooseyParameterizedRole.pm namespace-autoclean-0.26/xt/lib/MooseyRole.pm namespace-autoclean-0.26/xt/lib/MooyClean.pm namespace-autoclean-0.26/xt/lib/MooyComposer.pm namespace-autoclean-0.26/xt/lib/MooyDirty.pm namespace-autoclean-0.26/xt/lib/MooyRole.pm namespace-autoclean-0.26/xt/lib/MouseyClean.pm namespace-autoclean-0.26/xt/lib/MouseyComposer.pm namespace-autoclean-0.26/xt/lib/MouseyDirty.pm namespace-autoclean-0.26/xt/lib/MouseyRole.pm namespace-autoclean-0.26/xt/lib/Overloader.pm namespace-autoclean-0.26/xt/lib/Role.pm namespace-autoclean-0.26/xt/lib/SubClean.pm namespace-autoclean-0.26/xt/lib/SubDirty.pm namespace-autoclean-0.26/xt/lib/SubExporterModule.pm namespace-autoclean-0.26/xt/author/00-compile.t namespace-autoclean-0.26/xt/author/clean-namespaces.t namespace-autoclean-0.26/xt/author/eol.t namespace-autoclean-0.26/xt/author/kwalitee.t namespace-autoclean-0.26/xt/author/no-tabs.t namespace-autoclean-0.26/xt/author/pod-spell.t namespace-autoclean-0.26/t/00-report-prereqs.dd namespace-autoclean-0.26/t/00-report-prereqs.t namespace-autoclean-0.26/t/also.t namespace-autoclean-0.26/t/basic.t namespace-autoclean-0.26/t/broken_meta.t namespace-autoclean-0.26/t/cleanee.t namespace-autoclean-0.26/t/constant.t namespace-autoclean-0.26/t/except.t namespace-autoclean-0.26/t/matchclean.t namespace-autoclean-0.26/t/moo.t namespace-autoclean-0.26/t/moose-withoverloading.t namespace-autoclean-0.26/t/moose.t namespace-autoclean-0.26/t/mouse-pp.t namespace-autoclean-0.26/t/mouse.t namespace-autoclean-0.26/t/overload.t namespace-autoclean-0.26/t/sub-install.t namespace-autoclean-0.26/t/sub-name.t namespace-autoclean-0.26/lib/namespace/ namespace-autoclean-0.26/lib/namespace/autoclean.pm Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building E/ET/ETHER/namespace-autoclean-0.26.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Congratulations, your toolchain understands 'configure_requires'! Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for namespace::autoclean Writing MYMETA.yml and MYMETA.json ---- Unsatisfied dependencies detected during ---- ---- ETHER/namespace-autoclean-0.26.tar.gz ---- Test::Requires [build_requires] Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test Delayed until after prerequisites Running test for module 'Test::Requires' Running make for T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'get' Checksum for C:\cpanfly-5.22-32\var\cpan\sources\authors\id\T\TO\TOKUHIROM\Test-Requires-0.10.tar.gz ok Test-Requires-0.10/Changes Test-Requires-0.10/LICENSE Test-Requires-0.10/META.json Test-Requires-0.10/Makefile.PL Test-Requires-0.10/README.md Test-Requires-0.10/cpanfile Test-Requires-0.10/lib/Test/Requires.pm Test-Requires-0.10/minil.toml Test-Requires-0.10/t/00_compile.t Test-Requires-0.10/t/01_simple.t Test-Requires-0.10/t/02_no_plan.t Test-Requires-0.10/t/03_import_hashref.t Test-Requires-0.10/t/04_import_array.t Test-Requires-0.10/t/05_success.t Test-Requires-0.10/t/06_perlver.t Test-Requires-0.10/xt/02_perlcritic.t Test-Requires-0.10/xt/perlcriticrc Test-Requires-0.10/META.yml Test-Requires-0.10/MANIFEST Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'make' CPAN.pm: Building T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz >>> C:\Perl-5.22-32\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Test::Requires Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/Test/Requires.pm blib\lib\Test\Requires.pm TOKUHIROM/Test-Requires-0.10.tar.gz dmake -- OK Prepending C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/arch C:\cpanfly-5.22-32\var\cpan\build\YAML-Tiny-1.69-NPGbC1/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-MultiMarkdown-1.000035-K9TgRE/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Text-Markdown-1.000031-aeUvAP/blib/lib C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/arch C:\cpanfly-5.22-32\var\cpan\build\Template-Alloy-1.020-GjwVD3/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t # Test::More: 1.001014 t/00_compile.t ......... 1..1 ok 1 - use Test::Requires; ok t/01_simple.t .......... 1..10 ok 1 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 2 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 3 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 4 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 5 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 6 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 7 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 8 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 9 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok 10 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found ok t/02_no_plan.t ......... ok 1 # skip Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found 1..1 ok t/03_import_hashref.t .. skipped: Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found t/04_import_array.t .... skipped: Test requires module 'Acme::Unknown::Missing::Module::Name' but it's not found t/05_success.t ......... 1..1 ok 1 ok t/06_perlver.t ......... ok 1 - should reach here ok 2 # skip Perl v5.999.0 required (did you mean v5.9.0?)--this is only v5.22.0, stopped at (eval 8) line 2. # BEGIN failed--compilation aborted at (eval 8) line 2. # 1..2 ok All tests successful. Files=7, Tests=15, 1 wallclock secs ( 0.08 usr + 0.02 sys = 0.09 CPU) Result: PASS TOKUHIROM/Test-Requires-0.10.tar.gz dmake test TEST_VERBOSE=1 -- OK Can't call method "fullname" on an undefined value at C:\cpanfly-5.22-32\lib/Fly/MakePPD.pm line 166. C:\Perl-5.22-32\bin\perl.exe exits with 255.