Reworked test files for better error reporting
[nasm/perl-rewrite.git] / perl / t / version / h.t
blobb6d9edb66a07d566f8cbf0aa7e109d5c575167bf
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
5 use lib qw't perl/t ..';
7 my @MODULES = (
8 'YAML::XS',
9 'version::input',
12 use Test::More;
14 # Load the testing modules
15 foreach my $MODULE ( @MODULES ) {
16 eval "use $MODULE";
17 if ( $@ ) {
18 plan( skip_all => "$MODULE not available for testing" );
23 our %test = load(
24 filter => [qw' major minor subminor patchlevel xid snapshot'],
25 map =>{
26 version => sub{'"'.$_[1].'"'}
31 plan( tests => scalar keys %test );
34 my %map = (
35 mangled_ver => 'mangled',
36 version_id => 'xid',
37 ver => 'version',
38 major_ver => 'major',
39 minor_ver => 'minor',
40 subminor_ver => 'subminor',
41 patchlevel_ver => 'patchlevel'
44 for my $test ( sort keys %test ){
45 my $expected = $test{$test};
46 my $returned = `echo $test | perl version.pl h`;
48 my %got;
49 # skip
50 $returned =~ m/#define NASM_VERSION_H\n/gc;
51 while( $returned =~ m{
52 \G\s*
53 [#] define \s+ NASM_(\w+)\s+(.+?)\n
54 }xgcs
56 $got{lc $1} = $2;
59 for my $key ( keys %map ){
60 if( defined $got{$key} ){
61 my $value = $map{$key};
62 $got{$value} = $got{$key} if defined $value;
63 delete $got{$key};
67 is_deeply(\%got,$expected,$test);
69 __END__
70 #ifndef NASM_VERSION_H
71 #define NASM_VERSION_H
72 #define NASM_MAJOR_VER 2
73 #define NASM_MINOR_VER 5
74 #define NASM_SUBMINOR_VER 99
75 #define NASM_PATCHLEVEL_VER 100
76 #define NASM_VERSION_ID 0x02056364
77 #define NASM_VER "2.06rc10"
78 #endif /* NASM_VERSION_H */