Skip to main content
  • Home
  • login
  • Browse the archive

    swh mirror partner logo
swh logo
SoftwareHeritage
Software
Heritage
Mirror
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • a0723b2
  • /
  • external
  • /
  • perl
  • /
  • Text-Template-1.56
  • /
  • t
  • /
  • preprocess.t
Raw File
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:a5faa96e1979a72f2e1486368409cd6ae76d4cb4
directory badge Iframe embedding
swh:1:dir:7f3413dd469356106299d911badbf763182377dc
preprocess.t
#!perl
#
# Tests for PREPROCESSOR features
# These tests first appeared in version 1.25.

use strict;
use warnings;
use Test::More tests => 9;
use File::Temp;

use_ok 'Text::Template::Preprocess' or exit 1;

my $tmpfile = File::Temp->new;
my $TMPFILE = $tmpfile->filename;

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 my $tfh, '>', $TMPFILE or die "Couldn't open test file: $!; aborting";
print $tfh $t;
close $tfh;

my @result = ($outx, $outy, $outz, $outz);
for my $trial (1, 0) {
    for my $test (0 .. 3) {
        my $tmpl;
        if ($trial == 0) {
            $tmpl = Text::Template::Preprocess->new(TYPE => 'STRING', SOURCE => $t) or die;
        }
        else {
            open $tfh, '<', $TMPFILE or die "Couldn't open test file: $!; aborting";
            $tmpl = Text::Template::Preprocess->new(TYPE => 'FILEHANDLE', SOURCE => $tfh) 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 });
        is $o, $result[$test];
    }
}

ENEA — Copyright (C), ENEA. License: GNU AGPLv3+.
Legal notes  ::  JavaScript license information ::  Web API

back to top