File: 12-preprocess.t

package info (click to toggle)
libtext-template-perl 1.42-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 232 kB
  • ctags: 27
  • sloc: perl: 1,289; makefile: 46
file content (53 lines) | stat: -rw-r--r-- 1,474 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!perl
#
# Tests for PREPROCESSOR features
# These tests first appeared in version 1.25.

use lib '../blib/lib';
use Text::Template::Preprocess;

die "This is the test program for Text::Template::Preprocess version 1.42.
You are using version $Text::Template::Preprocess::VERSION instead.
That does not make sense.\n
Aborting"
  unless $Text::Template::Preprocess::VERSION == 1.42;

$TMPFILE = "tt$$";

print "1..8\n";
my $n = 1;

my $py = sub { tr/x/y/ };
my $pz = sub { tr/x/z/ };

my $t = 'xxx The value of $x is {$x}';
my $outx = 'xxx The value of $x is 119';
my $outy = 'yyy The value of $y is 23';
my $outz = 'zzz The value of $z is 5';
open TF, "> $TMPFILE" or die "Couldn't open test file: $!; aborting";
print TF $t;
close TF;

@result = ($outx, $outy, $outz, $outz);
for my $trial (1, 0) {
  for my $test (0 .. 3) {
    my $tmpl;
    if ($trial == 0) {
      $tmpl = new Text::Template::Preprocess 
	(TYPE => 'STRING', SOURCE => $t) or die;
    } else {
      open TF, "< $TMPFILE" or die "Couldn't open test file: $!; aborting";
      $tmpl = new Text::Template::Preprocess 
	(TYPE => 'FILEHANDLE', SOURCE => \*TF) or die;
    }
    $tmpl->preprocessor($py) if ($test & 1) == 1;
    my @args = ((($test & 2) == 2) ? (PREPROCESSOR => $pz) : ());
    my $o = $tmpl->fill_in(@args, 
			   HASH => {x => 119, 'y' => 23, z => 5});
#    print STDERR "$o/$result[$test]\n";
    print +(($o eq $result[$test]) ? '' : 'not '), "ok $n\n";
    $n++;
  }
}

unlink $TMPFILE;