"Fossies" - the Fresh Open Source Software Archive

Member "openssl-1.1.1b/external/perl/Text-Template-1.46/t/02-hash.t" (26 Feb 2019, 3215 Bytes) of package /linux/misc/openssl-1.1.1b.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 #!perl
    2 #
    3 # test apparatus for Text::Template module
    4 # still incomplete.
    5 
    6 use Text::Template;
    7 
    8 die "This is the test program for Text::Template version 1.46.
    9 You are using version $Text::Template::VERSION instead.
   10 That does not make sense.\n
   11 Aborting"
   12   unless $Text::Template::VERSION == 1.46;
   13 
   14 
   15 print "1..12\n";
   16 
   17 $n=1;
   18 
   19 $template = 'We will put value of $v (which is "good") here -> {$v}';
   20 
   21 $v = 'oops (main)';
   22 $Q::v = 'oops (Q)';
   23 
   24 $vars = { 'v' => \'good' };
   25 
   26 # (1) Build template from string
   27 $template = new Text::Template ('type' => 'STRING', 'source' => $template);
   28 print +($template ? '' : 'not '), "ok $n\n";
   29 $n++;
   30 
   31 # (2) Fill in template in anonymous package
   32 $result2 = 'We will put value of $v (which is "good") here -> good';
   33 $text = $template->fill_in(HASH => $vars);
   34 print +($text eq $result2 ? '' : 'not '), "ok $n\n";
   35 $n++;
   36 
   37 # (3) Did we clobber the main variable?
   38 print +($v eq 'oops (main)' ? '' : 'not '), "ok $n\n";
   39 $n++;
   40 
   41 # (4) Fill in same template again
   42 $result4 = 'We will put value of $v (which is "good") here -> good';
   43 $text = $template->fill_in(HASH => $vars);
   44 print +($text eq $result4 ? '' : 'not '), "ok $n\n";
   45 $n++;
   46 
   47 # (5) Now with a package
   48 $result5 = 'We will put value of $v (which is "good") here -> good';
   49 $text = $template->fill_in(HASH => $vars, PACKAGE => 'Q');
   50 print +($text eq $result5 ? '' : 'not '), "ok $n\n";
   51 $n++;
   52 
   53 # (6) We expect to have clobbered the Q variable.
   54 print +($Q::v eq 'good' ? '' : 'not '), "ok $n\n";
   55 $n++;
   56 
   57 # (7) Now let's try it without a package
   58 $result7 = 'We will put value of $v (which is "good") here -> good';
   59 $text = $template->fill_in(HASH => $vars);
   60 print +($text eq $result7 ? '' : 'not '), "ok $n\n";
   61 $n++;
   62 
   63 # (8-11) Now what does it do when we pass a hash with undefined values?
   64 # Roy says it does something bad. (Added for 1.20.)
   65 my $WARNINGS = 0;
   66 {
   67   local $SIG{__WARN__} = sub {$WARNINGS++};
   68   local $^W = 1;       # Make sure this is on for this test
   69   $template8 = 'We will put value of $v (which is "good") here -> {defined $v ? "bad" : "good"}';
   70   $result8 = 'We will put value of $v (which is "good") here -> good';
   71   my $template = 
   72     new Text::Template ('type' => 'STRING', 'source' => $template8);
   73   my $text = $template->fill_in(HASH => {'v' => undef});
   74   # (8) Did we generate a warning?
   75   print +($WARNINGS == 0 ? '' : 'not '), "ok $n\n";
   76   $n++;
   77   
   78   # (9) Was the output correct?
   79   print +($text eq $result8 ? '' : 'not '), "ok $n\n";
   80   $n++;
   81 
   82   # (10-11) Let's try that again, with a twist this time
   83   $WARNINGS = 0;
   84   $text = $template->fill_in(HASH => [{'v' => 17}, {'v' => undef}]);
   85   # (10) Did we generate a warning?
   86   print +($WARNINGS == 0 ? '' : 'not '), "ok $n\n";
   87   $n++;
   88   
   89   # (11) Was the output correct?
   90   if ($] < 5.005) {
   91     print "ok $n # skipped -- not supported before 5.005\n";
   92   } else {
   93     print +($text eq $result8 ? '' : 'not '), "ok $n\n";
   94   }
   95   $n++;
   96 }
   97 
   98 
   99 # (12) Now we'll test the multiple-hash option  (Added for 1.20.)
  100 $text = Text::Template::fill_in_string(q{$v: {$v}.  @v: [{"@v"}].},
  101 				       HASH => [{'v' => 17}, 
  102 						{'v' => ['a', 'b', 'c']},
  103 						{'v' => \23},
  104 					       ]);
  105 $result = q{$v: 23.  @v: [a b c].};
  106 print +($text eq $result ? '' : 'not '), "ok $n\n";
  107 $n++;
  108 
  109 
  110 exit;
  111