Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Release history of Test-Smoke
Perl C

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
t
ChangeLog
Changes
Configure.pl
FAQ.pod
MANIFEST
Makefile.PL
README
ReleaseNotes
W32Configure.pl
configsmoke.pl
mailrpt.pl
mkovz.pl
mktest.pl
patchtree.pl
perl56x.cfg
perlcurrent.cfg
smoke.cfg
smoke.sh
smoke56x_dfconfig
smoke58x_dfconfig
smokeperl.pl
smokew32.bat
synctree.pl
w32current.cfg

README

=head1 NAME

README - Perl Core Test Smoke Suite (1.17)

=head1 SYNOPSIS

  $ perl configsmoke.pl
  $ sh smokecurrent.sh

=head1 DESCRIPTION

The perl core test smoke suite is a set of scripts and modules that try to
run the perl core tests on as many configurations as possible and combine
the results into an easy to read report.

The basic cycle looks like:

    fetch_sourcetree
    foreach $config ( @configurations ) {
        make distclean
        ./Configure $config
        make
        make test (and log failures)
    }
    create_report()
    mail_report()

Before you start "smoking" we expect you have tried to build some of
the configurations "by hand" to check if your environment is okay.

=head1 INSTALLATION

The standard Perl installation commands:

    $ perl Makefile.PL
    $ make
    $ make test
    $ make install

The F<Makefile.PL> program will ask for a directory in which
Test::Smoke should be installed (unless you specify one yourself).

You are now ready to run the F<configsmoke.pl> configuration program:

    $ perl configsmoke.pl

You will have to answer some questions that help create a
configuration file for the Test::Smoke suite.

You should check the F<perlcurrent.cfg> build-configurations file and
remove options that are not supported for your platform.

Now you are set to go:

    $ sh smokecurrent.sh

If something useful happens, do it every night using a scheduler.

We still supply the old way to run the perl core test smoke suite, but
it is not really maintained or supported. Here is what Merijn used to
say about installing that:

  Edit F<smoke.sh> and change the PC= definition to reflect the
  location you choose as a builddir. 
  Theoretically you are now ready to go, just use B<at> to give
  it a first shot for tonight.
  Optionally delete lines from F<config.cfg> (or a local copy
  with a different name) for which you are certain your system
  doesn't support it (like threading or 64bit configurations)

=head1 CONFIGURATION

As of v1.16_10 there is more than one way to run and configure the
perl core test smoke suite.

=over 4

=item * F<configsmoke.pl>

This will ask your for:

=over 4

=item * Build directory (where the source-tree should go)

=item * Which build-configurations file to use (perlcurrent.cfg)

=item * How to sync with the repository/snapshot

=item * Which patches-to-be-applied file to use

=item * Platform specific stuff

=item * How to mail the report

=back

=item * F<Configure.pl> (unixy only, deprecated)

This will ask you for:

=over 4

=item * Build directory (where the source-tree should go)

=item * How and when to schedule smokes

=item * Which build-configurations file to use (smoke.cfg)

=item * umask

=back

After that it will change some settings in the F<smoke.sh> file.

=item Edit F<smokew32.bat> (MSWin32 only, deprecated)

Edit the F<smokew32.bat> batch file and set the right values.

=back

=head1 Note to MSWin32 users

To make it clear, the perl core test smoke suite treats B<cygwin> and
B<DJGPP> as unixy platforms and not as true MSWin32.

To keep in sync with the source-tree, it is recommended you use the
B<rsync> program. This currently seems only available with Cygwin
<http://www.cygwin.com>. (All the cygwin tools run perfectly well
under CMD.EXE, so don't let that stop you.)

Windows 95/98/ME do not seem to be ideal platforms to run Test::Smoke
on. F<COMMAND.COM> gives some problems while building perl. (See
F<README.win32>)

We have found some problems with the default windows debugger
B<Dr.Watson>. By default Dr.Watson will pop-up when the moral equivalent
of a segmentation fault happens, this will make the smoke wait for
user input. You can disable this by starting F<drwtsn32.exe> and
un-check the B<Visual Notification> and B<Sound Notification>
check-boxes and press B<OK>.

There seems to be a problem with B<Microsoft .NET/Windows XP> and
segmentation faults, even if B<drwtsn32 -i> is run to set it as the
default debugger.

=head1 Slow Systems

It can happen that your system is not able to pursue all the tests, either
because it is too slow or because some of the configurations are not
supported by the system. At first, don't worry, they are detected by the
report creation script and shown as such.

After the first run gave you some idea of how long the smoke will run on
your system,  you can create your own copy of smoke.cfg where you either
add new combinations and/or test levels, or delete lines to speed up the
run time of Test::Smoke.

At the moment there are no guidelines of how to change the configuration
best to fit the needs of perl5-porters while still getting as much smoke
out of the test as possible, simply because the needs of perl5-porters
change over time:).

This also makes Test::Smoke somewhat volatile, as we aim to please the
perl5-porters as much as possible, to help make perl even better, more
stable and as thoroughly tested as possible.

=head1 Availability and references

=over 4

=item B<Distribution>

    http://search.cpan.org/author/ABELTJE/

=item B<Archives>

=over 4

=item B<Reports>

    <daily-build-reports@perl.org> 
        [subscribe: <daily-build-reports-subscribe@perl.org>]
    http://archive.develooper.com/daily-build-reports@perl.org/
    news:nntp.perl.org/perl.daily-build.reports

=item B<Smokers>

    <daily-build@perl.org> 
        [subscribe: <daily-build-subscribe@perl.org>]
    http://archive.develooper.com/daily-build@perl.org/
    news:nntp.perl.org/perl.daily-build

=item B<Others>

  Perl general QA: perl-qa@perl.org
  Development:     perl5-porters@perl.org

=item B<The new smoke_db> (by Alain Barbet)

Alain Barbet has put a lot of effort in storing the smoke test
reports in a database and build a nice WEB-front-end:

    http://www.alianwebserver.com/cgi-bin/smoke_db

=back

=back

=head1 COPYRIGHT and LICENSE

Copyright (C) 2001-2003

  * H.Merijn Brand
  * Abe Timmerman

This suite is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, without consulting the author.

(Future) Co-Authors and or contributors should agree to this before
submitting patches.

See:

=over 4

=item * http://www.perl.com/perl/misc/Artistic.html

=item * http://www.gnu.org/copyleft/gpl.html

=back

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


=head1 AUTHOR

The perl core smoke suite is maintained by Abe Timmerman
<abeltje@cpan.org>.

H.Merijn Brand <h.m.brand@hccnet.nl> in dialogue and consultation with
Michael Schwern <schwern@pobox.com>, the Perl QA pumpkin.

Contributors and/or co-authors:

    Configurations and
      nuts and bolts	Nicholas Clark <nick@plum.flirble.org>
    smoke.sh            Jarkko Hietaniemi <jhi@cc.hut.fi>
    Portability issues	Will Coleda - IMG <wjc@infomg.com>
    Safety		Richard Soderberg <rs@oregonnet.com>
    Win32/MSC5/dmake	Mattia Barbon <mbarbon@dsi.unive.it>,
			Abe Timmerman <abeltje@cpan.org>
    Cygwin		John Peacock <jpeacock@rowman.com>
    Sharing issues	Blair Zajac <blair@orcaware.com>
    Good ideas          Jos Boumans <kane@dwim.org>

and all the people having useful suggestions and nits, starting at
YAPC::Europe-2.0.01, where Michael talked Merijn into simplifying his own
test-suite and sharing it with the community.

The Test::Smoke team.

=head1 MISC

As always, have the appropriate amount of fun

=head1 SEE ALSO

L<ReleaseNotes>, L<FAQ>

=head1 TODO

=over 4

=item * More refactoring

=item * Test-suite

=item * VMS?

=back

=cut
Something went wrong with that request. Please try again.