Re: Smoking on Win32

[email protected] ("Mattia Barbon")
Newsgroups perl.daily-build
Message-ID <3BA67738.21825.30D29FB@localhost>
> Not that I agree with all, but gaining more smoke power is valued over full
> coverage (I'm trying to build blead with both DJGPP (bad things happen) and
> Cygwin (96% pass on make miniperl), and neither would pass the "dmake", since
> I don't have it)
Well, the patch was flagged for discussion: I meant,
discuss it, then I will implement the things that are required...
so it was quite limited. Thanks for rewieving all of this!
 
> > +sub make ($) {
<snip>
> > +}
> 
> in as
> sub make ($)
> {
>     my $cmd = shift;
> 
>     is_win32 () or return run ("make $cmd");
> 
>     my $kill_err;
>     # don't capture STDERR
>     $cmd =~ s{2\s*>\s*/dev/null\s*$}{} and $kill_err = 1; 
>     # Better detection of make vs. nmake vs. dmake required here
>     # dmake + MSVC5, make + DJGPP, make + Cygwin

I can test dmake + MinGW, dmake + MSVC5, nmake + MSVC5,
make + Cygwin, if you want. What I needed ( and still need )
to know is the metod of specifying them:
paramtere to the script? ( perl smoke.pl MAKE=dmake CCTYPD=MSVC5 
CCHOME=...
a config file?
psudo options in smoke .cfg?
( like
=
CCTYPE=MSVC5
CCHOME=...
=

That's why the patch was for discussion: it lacked the 
configurability, among the other things

>     $cmd = "dmake -f smoke.mk $cmd";
>     chdir "win32" or die "unable to chdir () into 'win32'";
>     run ($kill_err ? qq{$^X -e "close STDERR; system '$cmd'"} : $cmd);
>     chdir ".." or die "unable to chdir() out of 'win32'";
>     } #make
 
<snip>

> > -	unless ($norun or (-f "Makefile" && -s "config.sh")) {
> > +	unless ($norun or ( is_win32() ?
> > +                            -f 'win32/smoke.mk' :
> > +                            -f "Makefile" && -s "config.sh")) {
> 
> Does dmake/MSVC5 *not* create config.sh ???
I don't remember, but if it does so, it creates it *after*
miniperl, and here you are checking for it to confirm
*configuration* was successful

<snip>

> > On win32 all text results point to ../somedir/sometext,
> > however for harness to work properly, tests in 
> > lib/ and ext/ need to be prefixed with ../, while
> > the ones in t/ must not.
> 
> Hrmmm, OK, but you forgot the obvious
> 		    push @nok, "\n",
> 			grep !m:\bFAILED tests\b: &&
> -			    !m:% okay$: => run "./perl t/harness @harness";
> +			    !m:% okay$: => run "./perl t/harness $harness";
Ick. You're right.

> > The sub below takes a ./Configure command line and makes some
> > modifications to win32/makefile.mk, writing them to smoke.mk
> > 
> > +
> > +sub Configure {
> > :
> > Comments?
> 
> Yep, how/where is this called? Should it need another option?
> Just defining a sub won't make it called ;)

> > + run "./Configure $config_args -des", 
> > +          is_win32() ? \&Configure : undef;
I suspect you missed this above; when the second parameter to 
run() is a coderef it calls it.

> > diff -b -u -r Test-Smoke-1.06.orig/mkovz.pl Test-Smoke-1.06/mkovz.pl
> > --- Test-Smoke-1.06.orig/mkovz.pl	Mon Sep 03 12:32:50 2001
> > +++ Test-Smoke-1.06/mkovz.pl	Sun Sep 09 00:02:17 2001
> 
> Sensible patch.
> 
> > On win32 I found some of that in 'make test' output
> > ..\lib/File/Find/t/taint..............dubious
> > 	Test returned status 1 (wstat 256, 0x100)
> > DIED. FAILED test 28
> > 	Failed 1/45 tests, 97.78% okay (-18 skipped tests: 26 okay, 57.78%)
> > 
> > and this ends up as
> > DIED. FAILED test 28
> > in mktest.rpt, without any mention of the test script
> > so if I ges a "DIED" or "FAILED" at the beginning of the line,
> > I look back the last 5 lines for something containing '..'
> > ( the line with the test name )

> Do you want to peruse/test the new set before I make it world available?
If you spell out the CCTYPE, etc configuration method you
prefer, I can implement it and test it in the above platforms.
Anyway, whatever you decide to do I am glad to test it.

> Where do you want to /create/ the win32 subfolder /if/ in win32? During
> Makefile.PL?

If you are referring to this win32 subdir
> > called as 'make "test";' or 'make "foo 2>/dev/null";'
> > Win32 makefiles reside
> > in the win32/ subdir.
           ^^^^^^
then it is the win32 subdir in the perl source tree

Thanks!
Mattia
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.