[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #15937] default_names test dies on Cygwin; $port_type = 'UNIX'; sho

From: Agent Zhang
Subject: [bug #15937] default_names test dies on Cygwin; $port_type = 'UNIX'; should be 'W32'
Date: Thu, 2 Mar 2006 08:06:35 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Follow-up Comment #1, bug #15937 (project make):

> default_names attempts to avoid testing with only makefile
> and Makefile present on case-insensitive file systems
> (DOS/WIN32 platforms) by using the test:
> if ($port_type eq 'UNIX')
> Unfortunately, Cygwin was set to 'UNIX' (the default
> assignment) and failed the test.

Yeah! This is the only failing test on my Cygwin build of GNU make 3.81rc1.
To be honest, I noticed this problem in features/default_names when I was
porting GNU make 3.81beta4's test suit to my project a few weeks ago.

> Modify tests/run_make_tests.pl, as follows:
> # This is probably not specific enough.
> #
> if ($osname =~ /Windows/i || $osname =~ /MINGW32/i || $osname =~
> $port_type = 'W32';
> }

I disagree.

IMHO, your patch is not general enough. My personal fix is as following:

>   $me = $0;
>   $me =~ s/[a-z]+/uc($&)/ge or
>   $me =~ s/[A-Z]+/lc($&)/ge;
>   $CASE_SENSITIVE = not -f $me;
>   ...
>   if ($CASE_SENSITIVE) {
>        # blah blah blah...
>   }

I'm not sure if very old perl interpreters support the special variable `$0'.
In case that you know the path of your test script in advance, you can modify
the code given above without using `$0':

>   $path = 'scripts/features';
>   $me = "$path/default_names";
>   ...

The essence is: any platforms which are case-insensitive to file names should
be taken into account. So there won't be any bug reports when other
Cygwin-like monsters born out in the future. :=)



Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]