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