bug-make
[Top][All Lists]
Advanced

[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.

> --- SOLUTION:
>
> Modify tests/run_make_tests.pl, as follows:
>
> # This is probably not specific enough.
> #
> if ($osname =~ /Windows/i || $osname =~ /MINGW32/i || $osname =~
/CYGWIN_NT/i) {
> $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. :=)

Agent

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=15937>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

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