Tag
Hash :
940f32f3
Author :
Date :
2002-03-20T22:27:11
Add support for two-dot versions. * tests/version5.test: New file. * tests/Makefile.am (TESTS): Add it. * automake.in (version_split, version_compare): New functions. (version_check): Rewrite using version_split and version_compare. (process_option_list): Adjust regex.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#! /bin/sh
# Exercise &version_compare.
. $srcdir/defs || exit 1
set -e
# FIXME: probably ought to let users override this like we do in `defs'.
amfile=../../automake
sed 1q $amfile >>automake_tmp
cat << 'END' >> automake_tmp
my $failed = 0;
sub test_version_compare
{
my ($left, $right, $result) = @_;
my @leftver = Automake::version_split ($left);
my @rightver = Automake::version_split ($right);
if ($#leftver == -1)
{
print "can't grok \"$left\"\n";
$failed = 1;
return;
}
if ($#rightver == -1)
{
print "can't grok \"$right\"\n";
$failed = 1;
return;
}
my $res = Automake::version_compare (\@leftver, \@rightver);
if ($res != $result)
{
print "version_compare (\"$left\", \"$right\") = $res! (not $result?)\n";
$failed = 1;
}
}
my @tests = (
# basics
['1.0', '2.0', -1],
['2.0', '1.0', 1],
['1.2', '1.2', 0],
['1.1', '1.2', -1],
['1.2', '1.1', 1],
# alphas
['1.4', '1.4g', -1],
['1.4g', '1.5', -1],
['1.4g', '1.4', 1],
['1.5', '1.4g', 1],
['1.4a', '1.4g', -1],
['1.5a', '1.3g', 1],
['1.6a', '1.6a', 0],
# micros
['1.5.1', '1.5', 1],
['1.5.0', '1.5', 0],
['1.5.4', '1.6.1', -1],
# micros and alphas
['1.5a', '1.5.1', 1],
['1.5a', '1.5.1a', 1],
['1.5a', '1.5.1f', 1],
['1.5', '1.5.1a', -1],
['1.5.1a', '1.5.1f', -1],
# special exceptions
['1.6-p5a', '1.6.5a', 0],
['1.6', '1.6-p5a', -1],
['1.6-p4b', '1.6-p5a', -1],
['1.6-p4b', '1.6-foo', 1],
['1.6-p4b', '1.6a-foo', -1]
);
test_version_compare (@{$_}) foreach @tests;
exit $failed;
END
cat $amfile >>automake_tmp
$PERL ./automake_tmp