Merge branch 'master' of git://git.exim.org/exim
[users/jgh/exim.git] / test / patchexim
1 #! /usr/bin/perl -w
2
3 ###############################################################################
4 # This is an auxiliary script that is part of the Exim test suite. It must be #
5 # run as root, and is normally called from the main controlling script. Its   #
6 # job is to make a copy of Exim, suitably patched so that it can run in the   #
7 # test harness. See further comments in the main script.                      #
8 #                                                                             #
9 # The only argument to this script is the name of the Exim binary that is to  #
10 # be copied. The script must be run in the correct current directory.         #
11 ###############################################################################
12
13 open(IN, "$ARGV[0]") || die "** Failed to open $ARGV[0]: $!\n";
14 open(OUT, ">eximdir/exim") || die "** Failed to open eximdir/exim: $!\n";
15
16 while(<IN>)
17   {
18   s/>>>running<<</<<<testing>>>/;
19   s/(\d+\.\d+(?:[_.]\d+)?([_-]RC\d+|[_-]dev)?(?:[0-9a-fA-F-]*)(?:-XX)?\0<<eximversion>>)/"x.yz\0" . ("*" x (length($1) - 5))/e;
20   print OUT;
21   }
22
23 close(IN);
24 close(OUT);
25
26 chmod 04755, "eximdir/exim";
27
28 # End of patchexim script