diff options
Diffstat (limited to 'external/perl/Text-Template-1.46/t/04-safe.t')
-rw-r--r-- | external/perl/Text-Template-1.46/t/04-safe.t | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/external/perl/Text-Template-1.46/t/04-safe.t b/external/perl/Text-Template-1.46/t/04-safe.t deleted file mode 100644 index 4c07121b44..0000000000 --- a/external/perl/Text-Template-1.46/t/04-safe.t +++ /dev/null @@ -1,161 +0,0 @@ -#!perl -# -# test apparatus for Text::Template module -# still incomplete. - -use Text::Template; - -BEGIN { - eval "use Safe"; - if ($@) { - print "1..0\n"; - exit 0; - } -} - -die "This is the test program for Text::Template version 1.46. -You are using version $Text::Template::VERSION instead. -That does not make sense.\n -Aborting" - unless $Text::Template::VERSION == 1.46; - -print "1..16\n"; - -if ($^O eq 'MacOS') { - $BADOP = qq{}; - $FAILURE = q{}; -} else { - $BADOP = qq{kill 0}; - $FAILURE = q{Program fragment at line 1 delivered error ``kill trapped by operation mask''}; -} - -$n=1; -$v = $v = 119; - -$c = new Safe or die; - -$goodtemplate = q{This should succeed: { $v }}; -$goodoutput = q{This should succeed: 119}; - -$template1 = new Text::Template ('type' => 'STRING', 'source' => $goodtemplate) - or die; -$template2 = new Text::Template ('type' => 'STRING', 'source' => $goodtemplate) - or die; - -$text1 = $template1->fill_in(); -$text2 = $template1->fill_in(SAFE => $c); -$ERR2 = $@; -$text3 = $template2->fill_in(SAFE => $c); -$ERR3 = $@; - -# (1)(2)(3) None of these should have failed. -print +(defined $text1 ? '' : 'not '), "ok $n\n"; -$n++; -print +(defined $text2 ? '' : 'not '), "ok $n\n"; -$n++; -print +(defined $text3 ? '' : 'not '), "ok $n\n"; -$n++; - -# (4) Safe and non-safe fills of different template objects with the -# same template text should yield the same result. -# print +($text1 eq $text3 ? '' : 'not '), "ok $n\n"; -# (4) voided this test: it's not true, because the unsafe fill -# uses package main, while the safe fill uses the secret safe package. -# We could alias the secret safe package to be identical to main, -# but that wouldn't be safe. If you want the aliasing, you have to -# request it explicitly with `PACKAGE'. -print "ok $n\n"; -$n++; - -# (5) Safe and non-safe fills of the same template object -# should yield the same result. -# (5) voided this test for the same reason as #4. -# print +($text1 eq $text2 ? '' : 'not '), "ok $n\n"; -print "ok $n\n"; -$n++; - -# (6) Make sure the output was actually correct -print +($text1 eq $goodoutput ? '' : 'not '), "ok $n\n"; -$n++; - - -$badtemplate = qq{This should fail: { $BADOP; 'NOFAIL' }}; -$badnosafeoutput = q{This should fail: NOFAIL}; -$badsafeoutput = q{This should fail: Program fragment delivered error ``kill trapped by operation mask at template line 1.''}; - -$template1 = new Text::Template ('type' => 'STRING', 'source' => $badtemplate) - or die; -$template2 = new Text::Template ('type' => 'STRING', 'source' => $badtemplate) - or die; - -$text1 = $template1->fill_in(); -$text2 = $template1->fill_in(SAFE => $c); -$ERR2 = $@; -$text3 = $template2->fill_in(SAFE => $c); -$ERR3 = $@; -$text4 = $template1->fill_in(); - -# (7)(8)(9)(10) None of these should have failed. -print +(defined $text1 ? '' : 'not '), "ok $n\n"; -$n++; -print +(defined $text2 ? '' : 'not '), "ok $n\n"; -$n++; -print +(defined $text3 ? '' : 'not '), "ok $n\n"; -$n++; -print +(defined $text4 ? '' : 'not '), "ok $n\n"; -$n++; - -# (11) text1 and text4 should be the same (using safe in between -# didn't change anything.) -print +($text1 eq $text4 ? '' : 'not '), "ok $n\n"; -$n++; - -# (12) text2 and text3 should be the same (same template text in different -# objects -print +($text2 eq $text3 ? '' : 'not '), "ok $n\n"; -$n++; - -# (13) text1 should yield badnosafeoutput -print +($text1 eq $badnosafeoutput ? '' : 'not '), "ok $n\n"; -$n++; - -# (14) text2 should yield badsafeoutput -$text2 =~ s/'kill'/kill/; # 5.8.1 added quote marks around the op name -print "# expected: <$badsafeoutput>\n# got : <$text2>\n"; -print +($text2 eq $badsafeoutput ? '' : 'not '), "ok $n\n"; -$n++; - - -$template = q{{$x=1}{$x+1}}; - -$template1 = new Text::Template ('type' => 'STRING', 'source' => $template) - or die; -$template2 = new Text::Template ('type' => 'STRING', 'source' => $template) - or die; - -$text1 = $template1->fill_in(); -$text2 = $template1->fill_in(SAFE => new Safe); - -# (15) Do effects persist in safe compartments? -print +($text1 eq $text2 ? '' : 'not '), "ok $n\n"; -$n++; - -# (16) Try the BROKEN routine in safe compartments -sub my_broken { - my %a = @_; $a{error} =~ s/ at.*//s; - "OK! text:$a{text} error:$a{error} lineno:$a{lineno} arg:$a{arg}" ; -} -$templateB = new Text::Template (TYPE => 'STRING', SOURCE => '{die}') - or die; -$text1 = $templateB->fill_in(BROKEN => \&my_broken, - BROKEN_ARG => 'barg', - SAFE => new Safe, - ); -$result1 = qq{OK! text:die error:Died lineno:1 arg:barg}; -print +($text1 eq $result1 ? '' : 'not '), "ok $n\n"; -$n++; - - - -exit; - |