Re: Questions, a patch and a script

[email protected] (Abe Timmerman) Sat, 18 Oct 2003 18:24:05 +0200
Newsgroups perl.daily-build
Organization ztreet
Message-ID <[email protected]>
[ Moved to the <daily-build> list, that is where we should be doing this IMO ]

Op een zonnige herfstdag (Saturday 18 October 2003 16:53), schreef David 
Landgren:

> List,

Hi David,

Welcome to the smokers!

> A few things here. I've been looking at the different reports coming in
> and so I wanted to change my config to test some of the more exotic
> variants. It seems pointless to smoke bincompat5005 for 5.9.0. So COW
> seemed like a good thing to try out.
>
> I tried adding
>
> ==
> /-DPERL_COPY_ON_WRITE/
>
> -DPERL_COPY_ON_WRITE
>
> to the end of my config but that spits out an error:
>
> make distclean ...
> Copy Policy.sh ...Policy target '-DPERL_COPY_ON_WRITE' failed to match
> at /usr/local/perlsmoke/Test/Smoke/Smoker.pm line 270

Okay, I will put something about this in the FAQ for the next release, but 
here it is (again)

Either you create a two-line section in your .cfg like this:

	=
	# The COW section starts here

	-Accflags='-DPERL_COPY_ON_WRITE'
	=
As that is the way to build with COW from the commandline

The other way is to have a F<Policy.sh> in <buildir>/.. that has (at least)

C<< ccflags='-DDEBUGGING -DPERL_COPY_ON_WRITE' >>

*together* with your substitution section in the .cfg-file.
The substitution sections can only be used to remove options from that 
ccflags-line in Policy.sh.

This all seems too much trouble, so I'll think about generating the default 
Policy.sh from the substitution sections in the .cfg, it should DWYM!

> It would be helpful if the config that was used for the smoke (sans
> comments) was tacked onto the end of the report.

If other smokers/smoke-lurkers/porters feel this is useful, just speak-up and 
I'll do that!

>                                                   Also, how can I add a
> -j switch to make, in order to run tests in parallel? My configure-fu is
> not strong enough to figure it out.

F<configsmoke.pl> offers you the {makeopt} variable for the "make" and "make 
test-prep" steps. It also offers the {testmake} variable, which defaults to 
$Config{make}, but you could try to set that to "make -j" (but I haven't 
tested that).
This deliberate split between makeoptions for different steps in the process 
was done because Alan ran into problems running the equivalent of "make -j 
_test", but remember parallel "make test" it not guaranteed to work!

> I have patched smokerstatus.pl to print out the mean smoke duration. I
> don't have a diff, but it just involves adding the following line:
>
> print "$rpt->{count} out of $ccnt configurations finished in
> $rpt->{time}.\n",
>        "Mean smoke duration: @{[time_in_hhmm(int $rpt->{avg})]}.\n";
>
> printf "$rpt->{fail} configuration%s showed failures%s.\n",
>         ($rpt->{fail} == 1 ? "" : "s"), $rpt->{stat} ? " ($rpt->{stat})"
>
> : "";

Thanks, I'll put that into the next release, seems like a useful datapoint.

> Once you have an idea of the mean smoke duration, it is possible to run
> smokerstatus.pl in a loop, to keep an eye on things:
>
> % cat smokersloop
> #! /bin/sh
> SLEEPTIME=900
> if [ "$1x" = "x" ]
> then
>      echo "No config file given on command line"
>      exit
> fi
> if [ "$2x" = "x" ]
> then
>      echo "No sleep time given, using default $SLEEPTIME"
> else
>      SLEEPTIME=$2
> fi
> while true
> do
>      /usr/local/perlsmoke/smokestatus.pl -c $1
>      sleep $SLEEPTIME
> done


Don't you just loooooove crontab ;-)
(did you look at the "-a" and the "-r" switch for smokestatus.pl?)

> And then you can see if a smoke has become wedged. And once again...
> after a successful smoke of 5.9.x, once again I have a test that is
> stuck in limbo:
>
> ./perl -I. -MTestInit ../ext/IO/t/io_multihomed.t
>
> ... has been stuck on this for six hours. All I know is that this is the
> first smoke configuration in which -Duseithreads has been issued. And
> yet my previous smoke of 21451 went through without a hitch.
>
> Anyway, my apologies for not splitting this babble up into multiple
> posts. Thanks for listening.

Sorry for not splitting the reactions into different posts ;-)

Thanks for your observations and input!

happy smokin' &&
Good luck,

Abe
-- 
Schwern> Just to appease the pedants I'll actually include a patch 
Schwern> with this email that says "PATCH".

Such attention to detail :-)
                                   -- Jarkko Hietaniemi on p5p @ 2003-04-07