Reworked test files for better error reporting
[nasm/perl-rewrite.git] / perl / t / version / nsis.t
blob8ef364cae8fdeb0df45f6c97f125aa02b684143c
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
5 use lib qw't perl/t ..';
7 my %MODULES = (
8 'YAML::XS', 'qw[:all]',
9 'version::input', '',
12 use Test::More;
14 # Load the testing modules
15 foreach my $MODULE ( keys %MODULES ) {
16 eval "use $MODULE $MODULES{$MODULE}";
17 if ( $@ ) {
18 plan( skip_all => "$MODULE not available for testing" );
23 our %test = load(
24 filter =>[qw'major minor subminor patchlevel'],
25 map =>{
26 version => sub{'"'.$_[1].'"'}
31 plan( tests => scalar keys %test );
34 my %map = (
35 major_ver => 'major',
36 minor_ver => 'minor',
37 subminor_ver => 'subminor',
38 patchlevel_ver => 'patchlevel'
41 for my $test ( sort keys %test ){
42 my $expected = $test{$test};
43 my $returned = `echo $test | perl version.pl nsis`;
45 my %got;
46 while( $returned =~ m{
47 \G\s*
48 !define \s+ (\w+) \s+ (.*?)\n
49 }xgcs
51 $got{lc $1} = $2;
54 for my $key ( keys %map ){
55 if( defined $got{$key} ){
56 my $value = $map{$key};
57 $got{$value} = $got{$key} if defined $value;
58 delete $got{$key};
62 is_deeply(\%got,$expected,$test);
64 __END__
65 !define VERSION "2.06rc10"
66 !define MAJOR_VER 2
67 !define MINOR_VER 5
68 !define SUBMINOR_VER 99
69 !define PATCHLEVEL_VER 100