Reworked test files for better error reporting
[nasm/perl-rewrite.git] / perl / t / version / mac.t
blobc48d981c61906eded49b35cad21e8727643b2136
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 snapshot'],
25 map=>{
26 version_id => sub{sprintf('0%08Xh',$_[3]{id})}
28 map =>{
29 version => sub{'"'.$_[1].'"'}
34 plan( tests => scalar keys %test );
37 my %map = (
38 ver => 'version'
41 for my $test ( sort keys %test ){
42 my $expected = $test{$test};
43 my $returned = `echo $test | perl version.pl mac`;
45 my %got;
46 while( $returned =~ m{
47 \G\s*
48 %define \s+ __NASM_(\w+?)__\s+(.+?)\n
49 }xgcms
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 );
65 __END__
66 %define __NASM_MAJOR__ 2
67 %define __NASM_MINOR__ 5
68 %define __NASM_SUBMINOR__ 99
69 %define __NASM_PATCHLEVEL__ 100
70 %define __NASM_VERSION_ID__ 002056364h
71 %define __NASM_VER__ "2.06rc10"