1# parse() test for lexicals 2# $Id: lexicals.t,v 1.3 2000/07/19 23:43:25 mfowler Exp $ 3 4# This script verifies that the lexical variables that parse() introduces 5# into the configuration file do indeed exist. This test is currently 6# incomplete, as it only tests the default lexicals inserted, and not any 7# user-specified ones. 8 9 10use Parse::PerlConfig; 11use Data::Dumper; 12 13use lib qw(t); 14use parse::testconfig qw(ok); 15 16use strict; 17use vars qw($tconf %lexicals); 18 19 20%lexicals = ( 21 'scalar' => 'bar', 22 'hash' => {qw(foo bar blah doo)}, 23 'array' => [qw(qux quux quuux quuuux)], 24); 25 26 27$tconf = parse::testconfig->new('lex-test.conf'); 28 29$tconf->ok_object; 30$tconf->tests(keys(%lexicals) * 2 + $tconf->verify_parsed_default_lexicals()); 31 32 33{ 34 my $parsed = Parse::PerlConfig::parse( 35 File => $tconf->file_path, 36 Lexicals => \%lexicals, 37 ); 38 39 $tconf->verify_parsed_default_lexicals($parsed); 40 41 while (my($varname, $value) = each(%lexicals)) { 42 my $parsed_varname = "lexical_$varname"; 43 44 ok(defined $$parsed{$parsed_varname}); 45 46 my $odump = Data::Dumper->Dump([$value], ["*$varname"]); 47 my $pdump = Data::Dumper->Dump( 48 [$$parsed{$parsed_varname}], ["*$varname"] 49 ); 50 51 ok($odump eq $pdump, qq{lexical "$varname" check -- $odump eq $pdump}); 52 } 53} 54