Let's all surprise Jarkko when he returns from his vacation ...

He's promised to drop 5.7.2 in place just before he leaves, and have a rapid
cycle of 5.8.0 RC's when he returns.

        Let's be ready for him to test those!

If you have any CPU cycles left, and a little time to set things up, combined
with just a tiny bit of perl knowledge (just changing scripts to meet your
situation), here's your chance to help 5.8.0 become the best tested version
ever released.

Below is the short story for the testbed I've created almost half a year ago
when perl-smokers started, and it since then runs every night. It has been
modified over time to better adjust to the current situation and builds and
tests over 300 Configurations of perl *every* night.

We want as many different machine architectures and operating system flavours
tested in as many combinations as possible for at least the Configurations
mentioned in mktest. (Well, since WinCE has no cron (yet), I don't thing it is
a valid candidate for smoke tests).

====== Ask if it is not clear. =============================================
Ask all kind of questions on [EMAIL PROTECTED], so others can answer too,
and since no situation is the same (at least we hope), we can all learn from
eachother)

Attached my current set.

l1:/pro/3gl/CPAN/perl-5.7.1 104 > crontab -l
#30 0 * * * /pro/3gl/CPAN/perl-5.6.1/smoke.sh 2>&1
45 22 * * * /pro/3gl/CPAN/perl-5.7.1/smoke.sh 2>&1
#0 8 * * * /pro/3gl/CPAN/perl-5.6.1/mkovz.pl 2>&1
0 9 * * * /pro/3gl/CPAN/perl-5.7.1/mkovz.pl 2>&1
l1:/pro/3gl/CPAN/perl-5.7.1 105 > tgz t /tmp/smoke
rw-rw-rw-   1 merijn   softwr       7852 Jul 11 17:30 /tmp/smoke.tgz
gzip -d </tmp/smoke.tgz | /pro/bin/ntar -t -v -f -
-rwxrwxrwx merijn/softwr  1493 2001-06-29 13:57:10 ../Policy.gcc
-rwxrwxrwx merijn/softwr  1324 2001-05-17 15:40:16 ../Policy.sh
-rwxr-xr-x merijn/softwr   585 2001-06-21 16:07:59 Rsync
-rwxr-xr-x merijn/softwr  1195 2001-06-12 13:48:00 Xsync
-rwxr-xr-x merijn/softwr  4806 2001-07-06 10:55:45 smoke.env
-rwxr-xr-x merijn/softwr  1010 2001-06-21 16:09:45 smoke.sh
-rwxr-xr-x merijn/softwr  6602 2001-06-22 11:34:10 mktest
-rwxr-xr-x merijn/softwr  6487 2001-06-28 13:59:19 mktest-gcc
-rwxr-xr-x merijn/softwr  5011 2001-07-06 15:32:40 mkovz.pl
-rwxr-xr-x merijn/softwr   116 2001-03-29 11:07:45 Conf
-rwxr-xr-x merijn/softwr   190 2001-07-10 15:31:06 Conf-gcc
l1:/pro/3gl/CPAN/perl-5.7.1 106 >


Here's my scene.

I've got 5 systems in a NFS cross-mounted configuration. a cron job starts
smoke.sh 5.7.1 (current blead) at night, just after the backup.

smoke.sh reads the environment from smoke.env (change this!) to reflect a
situation as would it just be my current daytime shell environment (except
that with 'at' or 'cron' the STDIN is not a tty, so -t tests would probably
fail (see sigaction.t change))

smoke.sh first rsyncs with the latest patches (in this version it rsyncs with
bleadperl. When the 5.8.0RC's drip in, I will have to copy the scene to use
the new address) on the primary target machine
that has internet capabilities (and rsync installed). The rsync can be done
standalone using Rsync. Then Xsyncs the secondary targets in the NFS to the
rsynced version (Xsync is a perl script that 'pushes' the changes files over
the NFS, where rsync pulls from the source). Xsync is not perfect for this,
cause it (still) fails to remove files not anymore in the latest situation
(smoke.sh creates a shell script 'rm.sh' on the main machine that would do
what rsync --delete would have done). This might change. Change smoke.sh on
the secondary targets to not rsync if you use my Xsync approach.

After all that syncing, smoke.sh starts the (perl) script mktest and puts the
results in mktest.out (short) and mktest.log (long) and creates prepared OK and
Not OK messages in perl.ok and perl.nok that can be posted to perlbug, which I
don't.

Early in the morning (assuming all tests are done), another cron job starts
mkovz.pl to gather all mktest.out reports over the NFS and create the
mktest.rpt report, the list I post on [EMAIL PROTECTED] on a regular
basis.

Files you will have to change, if you use my approach, are smoke.env (just do
something like 'env >smoke.env' and edit it to reflect the correct at-shell
syntax (don't forget to quote complicated values). Be sure to put 'export
SMOKING=YES' in there if you want to rsync), Xsync to reflect your NFS
situation (you might instead want to start rsync on the other systems,
pulling the latest source tree from either activestate or the primary target)
and mkovz.pl to format for the systems you test. mkovz.pl now scans the
reports directly over the NFS, but if you change all the smoke.sh scripts on
the secondary target machines to rcp the report to the gathering machine, it
can fetch the data from e.g. /tmp.

Now when I come in in the morning, I just look in my mailbox to see what the
night has brought me. (All machines together will do about 340 configuration
tests if I enable all, but some machines are so slow, that theywon't complete
in 24 hours if one does not disable some tests. Drat)

Conf and Conf-gcc are short scripts that I use if anyone wants extra tests.
Imagine that the report reports ext/Time/HiRes to fail for -Duse64bitall, then
I use

        # Conf -Duse64bitall
        # cd t
        # ./perl -I ../lib ../ext/Time/Hires.t

-- 
H.Merijn Brand    Amsterdam Perl Mongers (http://www.amsterdam.pm.org/)
using perl-5.6.1, 5.7.1 & 628 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
     WinNT 4, Win2K pro & WinCE 2.11 often with Tk800.022 &/| DBD-Unify
ftp://ftp.funet.fi/pub/languages/perl/CPAN/authors/id/H/HM/HMBRAND/

smoke.tgz

Reply via email to