Rewrote version.pl, and added some tests
[nasm/perl-rewrite.git] / perl / t / version-mac.t
blob0d45105a8e278df1232964c245a56c6858f6d1c3
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
5 our %test;
8 use YAML::XS;
9 my $str;
11 local $/ = undef;
12 my $filename = $0;
13 $filename =~ s/([\\\/]) [-\w]+[.]t /$1/x;
14 open my $file, '<', $filename.'version-input.yml';
15 $str = <$file>;
16 close $file;
18 %test = %{Load $str};
21 use Test::More;
22 eval "use Test::More 'tests' => ".(scalar keys %test);
23 die $@ if $@;
25 my @remove = qw'xid rc mangled tail';
26 for my $key (keys %test){
27 my $value = $test{$key};
28 $value->{version_id} = sprintf('0%08Xh',$value->{id});
29 delete $value->{id};
31 for my $rm ( @remove ){
32 delete $value->{$rm};
35 $value->{version} = qq{"$key"};
40 my %map = (
41 ver => 'version'
44 for my $test ( sort keys %test ){
45 my $expected = $test{$test};
46 my $returned = `echo $test | perl version.pl mac`;
48 my %got;
49 while( scalar $returned =~ m{
50 \G\s*
51 %define \s+ __NASM_(\w+?)__\s+(.+?)\n
52 }xgcms
54 $got{lc $1} = $2;
57 for my $key ( keys %map ){
58 if( defined $got{$key} ){
59 my $value = $map{$key};
60 $got{$value} = $got{$key} if defined $value;
61 delete $got{$key};
65 is_deeply( \%got, $expected );
68 __END__
69 %define __NASM_MAJOR__ 2
70 %define __NASM_MINOR__ 5
71 %define __NASM_SUBMINOR__ 99
72 %define __NASM_PATCHLEVEL__ 98
73 %define __NASM_SNAPSHOT__ 2009
74 %define __NASM_VERSION_ID__ 002056362h
75 %define __NASM_VER__ "2.06rc8-2009"