Mercurial > hg > xemacs-beta
annotate tests/autoconf/regressiontest.pl @ 5887:6eca500211f4
Prototype for X509_check_host() has changed, detect this in configure.ac
ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* configure.ac:
If X509_check_host() is available, check the number of arguments
it takes. Don't use it if it takes any number of arguments other
than five. Also don't use it if <openssl/x509v3.h> does not
declare it, since if that is so there is no portable way to tell
how many arguments it should take, and so we would end up smashing
the stack.
* configure: Regenerate.
src/ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* tls.c:
#include <openssl/x509v3.h> for its prototype for
X509_check_host().
* tls.c (tls_open):
Pass the new fifth argument to X509_check_host().
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 09 Apr 2015 14:27:02 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
2651 | 1 #!/usr/bin/perl -w |
2 # | |
4739
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
3 # Copyright 2005 Malcolm Purvis |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
4 # |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
5 # This file is part of XEmacs. |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
6 # |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
7 # XEmacs is free software: you can redistribute it and/or modify it |
4739
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
8 # under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
9 # Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
10 # option) any later version. |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
11 # |
4739
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
12 # XEmacs is distributed in the hope that it will be useful, but WITHOUT |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
15 # for more details. |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
16 # |
4739
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
17 # You should have received a copy of the GNU General Public License |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4759
diff
changeset
|
18 # along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
4739
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
19 # |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
20 # Commentary |
679041362cd4
Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
3094
diff
changeset
|
21 # |
2651 | 22 # Try the new and old versions of configure with various command lines to see |
23 # if they produce identical output. | |
24 # | |
25 # Invocation: $0 /path/to/old/configure /path/to/new/configure | |
26 # | |
27 # Since not all tests use --srcdir, invoke this script from a directory where | |
28 # configure can automatically find its input files (Makefile.in.in, etc). If | |
29 # interrupted, it probably will leave its temporary directories behind. In | |
30 # that case, it will error on next invocation, but remove the directories. | |
31 # The next invocation will then succeed. | |
32 # | |
33 | |
34 use strict; | |
35 use File::Basename; | |
36 | |
37 # Files generated by configure. There should be no functional difference | |
38 # between these files generated by 2.13 and those generated by 2.59. | |
39 my @output_files = | |
40 ( | |
41 "Installation", | |
42 "Makefile.in", | |
43 "./Makefile", | |
44 "./GNUmakefile", | |
45 "lib-src/Makefile.in", | |
46 "lib-src/Makefile", | |
47 "lib-src/GNUmakefile", | |
48 # "lib-src/config.values", # This is specific to the version of autoconf. | |
49 "lib-src/ellcc.h", | |
50 "lwlib/Makefile.in", | |
51 "lwlib/Makefile", | |
52 "lwlib/GNUmakefile", | |
53 "lwlib/config.h", | |
54 "modules/ldap/Makefile.in", | |
55 "modules/ldap/Makefile", | |
56 "modules/ldap/GNUmakefile", | |
57 "modules/postgresql/Makefile.in", | |
58 "modules/postgresql/Makefile", | |
59 "modules/postgresql/GNUmakefile", | |
60 "netinstall/Makefile.in", | |
61 "netinstall/Makefile", | |
62 "src/Makefile.in", | |
63 "src/Makefile", | |
64 "src/GNUmakefile", | |
65 "src/config.h", | |
66 "src/paths.h", | |
67 "src/xemacs.def.in", | |
68 "src/xemacs.def", | |
69 ); | |
70 | |
71 # The list of complete command line arguments to test against. Since the | |
72 # command line arguments have changed between 2.13 and 2.59 this hash maps from | |
73 # old => new. If new is 'undef' then the old arguments are used instead. | |
74 my %config_args = | |
75 ( | |
76 " " => undef, | |
77 "--prefix=/tmp/foo" => undef, | |
78 "--with-gnome" => undef, | |
79 "--with-mule" => "--enable-mule", | |
80 # My build flags for MacOS X. Needs /sw (fink) to be present. | |
81 # "--prefix=/Users/malcolmp/prefix --site-prefixes=/sw --with-sound=none --with-database=no --without-ldap --without-postgresql" => | |
82 # "--prefix=/Users/malcolmp/prefix --with-site-prefixes=/sw --disable-sound --disable-database --without-ldap --without-postgresql", | |
83 # My build flags for Linux (powerpc64) | |
84 "--prefix=/usr/local/gcc3-world --package-path=/usr/local/lib/xemacs" => | |
85 "--prefix=/usr/local/gcc3-world --with-package-path=/usr/local/lib/xemacs", | |
86 "--use_union_type" => "--enable-union-type", | |
87 "--use_kkcc" => "--enable-kkcc", | |
88 "--xemacs-compiler=g++" => "--with-xemacs-compiler=g++", | |
89 "--lispdir=/tmp/foo" => "--with-lispdir=/tmp/foo", | |
90 "--moduledir=/tmp/foo" => "--with-moduledir=/tmp/foo", | |
91 "--etcdir=/tmp/foo" => "--with-etcdir=/tmp/foo", | |
92 "--infopath=/tmp/foo" => "--with-infopath=/tmp/foo", | |
93 "--archlibdir=/tmp/foo" => "--with-archlibdir=/tmp/foo", | |
94 "--docdir=/tmp/foo" => "--with-docdir=/tmp/foo", | |
95 "--package-prefix=/tmp/foo" => "--with-package-prefix=/tmp/foo", | |
96 "--package-path=/tmp/foo" => "--with-package-path=/tmp/foo", | |
97 "--datadir=/tmp/foo" => undef, | |
98 "--mandir=/tmp/foo" => undef, | |
99 "--infodir=/tmp/foo" => undef, | |
100 "--libdir=/tmp/foo" => undef, | |
101 "--exec-prefix=/tmp/foo" => undef, | |
102 "--with-athena=3d" => undef, | |
3094 | 103 "--with-mule --with-xft=emacs --debug --error-checking=all --with-xim=xlib --with-widgets=athena --with-athena=3d --with-dialogs=athena --memory-usage-stats --use-number-lib=gmp --site-prefixes=/opt/local:/sw --with-ldap=no --use-union-type" => "--enable-mule --with-xft=emacs --enable-debug --enable-error-checking=all --with-xim=xlib --enable-widgets=athena --with-athena=3d --enable-dialogs=athena --enable-memory-usage-stats --enable-bignum=gmp --with-site-prefixes=/opt/local:/sw --with-ldap=no --enable-union-type" |
2651 | 104 ); |
105 | |
106 die "Usage: $0 /path/to/configure-2.13 /path/to/configure-2.59\n" if scalar(@ARGV) != 2; | |
107 | |
108 my $old_configure = $ARGV[0]; | |
109 my $new_configure = $ARGV[1]; | |
110 my $old_dir = dirname($old_configure); | |
111 my $new_dir = dirname($new_configure); | |
112 | |
113 foreach my $old_arg (keys %config_args) { | |
114 mkdir "/tmp/old" or die "$0: Cannot create /tmp/old: $!\n"; | |
115 mkdir "/tmp/new" or die "$0: Cannot create /tmp/new: $!\n"; | |
116 | |
117 my $new_arg = $config_args{$old_arg}; | |
118 $new_arg = $old_arg if ! defined($new_arg); | |
119 | |
120 print "--------------------------------------------------\n"; | |
121 print "$old_configure $old_arg\n"; | |
122 print "$new_configure $new_arg\n"; | |
123 | |
124 chdir "/tmp/old" or die "$0: Cannot cd to /tmp/old: $!\n"; | |
125 system ("$old_configure $old_arg >/tmp/old-output.txt\n") == 0 or | |
126 die "$0: $old_configure $old_arg failed\n"; | |
127 | |
128 chdir "/tmp/new" or die "$0: Cannot cd to /tmp/new: $!\n"; | |
129 system ("$new_configure $new_arg >/tmp/new-output.txt\n") == 0 or | |
130 die "$0: $new_configure $new_arg failed\n"; | |
131 | |
132 foreach my $file (@output_files) { | |
133 if (-r "/tmp/old/$file" && -r "/tmp/new/$file") { | |
134 # Strip out parts that always differ: Paths and the 'Generated by configure' | |
135 # lines. | |
136 system("for i in /tmp/old/$file /tmp/new/$file ; do sed -e '/HAVE_DECL_SYS_SIGLIST/d' -e '\\!$old_configure!d' -e '\\!$new_configure!d' -e '/EMACS_CONFIG_OPTIONS/d' -e '/Generated.*configure/d' -e '\\!$old_dir!s///' -e '\\!$new_dir!s///' -e '\\!/tmp/new!s///' -e '\\!/tmp/old!s///' <\$i >\$i.processed ; done"); | |
137 # Compare the processed versions. These should be the same. | |
138 system "diff -U 0 -L old-$file -L new-$file /tmp/old/$file.processed /tmp/new/$file.processed"; | |
139 } | |
140 } | |
141 chdir "/"; | |
142 system("rm -rf /tmp/old /tmp/new"); | |
143 } | |
144 | |
145 END { | |
146 chdir "/"; | |
147 system("rm -rf /tmp/old /tmp/new"); | |
148 } |