bug-make
[Top][All Lists]
Advanced

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

Re: vms:test variables


From: John E. Malmberg
Subject: Re: vms:test variables
Date: Tue, 08 Apr 2014 00:28:55 -0500
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 Thunderbird/17.0.3

On 4/7/2014 4:37 PM, h.becker wrote:
On 04/06/2014 07:34 PM, John E. Malmberg wrote:
Ok, so now we have the a baseline test suite ported, what is it going to
take to get this stuff committed so that we can start working on the
bugs that have been exposed?

I don't know who will/should answer such a question. I still have no
luck nor fun with these tests:

$ @TEST_MAKE
------------------------------------------------------------------------------
                       Running tests for GNU make on VMS
                                GNU Make 4.0.90
------------------------------------------------------------------------------

Clearing work...
Finding tests...

features.dir/archives ...................................
         ^^^^^^

This is a day one bug in the older Perl on VMS versions that was fixed in about the Perl 5.10 timeframe, but the fix was not made the default behavior until Perl 5.18, as it is tied to supporting EFS character filenames.

Perl 5.18 and later suppresses the incorrect ".dir" being appended to paths by default. The incorrect behavior can be optionally turned on for existing PERL/VMS scripts that expect the buggy behavior. I did not test the script with older versions of Perl, or with the older behavior enabled.

FEATURES/ARCHIVES ....................................... Error running make (expected 0; got 512): make -f /lcl_root/make/tests/work/FEATURES/ARCHIVES.mk
<skip>
FAILED (2/10 passed)

8 features/archive tests are failing for me because the archive support is incomplete.

features.dir/comments ...................................
FEATURES/COMMENTS .................................... ok   (1 passed)

features.dir/conditionals ...............................
FEATURES/CONDITIONALS ................................ ok   (4 passed)

features.dir/default_names ..............................
FEATURES/DEFAULT_NAMES ............................... ok     (2 passed)

OK, I can run one when I specify one, but it fails due to bash's ":":

It is not failing, the warning from DCL is written out, but does not otherwise affect the execution. Rather than modify all the tests that were using ":" as null command, I changed the compare_output routine in the test harness to ignore it.

$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined
$ @TEST_MAKE -keep "variables/undefine"

VARIABLES/UNDEFINE ......................................
run_command_with_output(/lcl_root/make/tests/work/VARIABLES/UNDEFINE.log,): make -f /lcl_root/make/tests/work/VARIABLES/UNDEFINE.mk
run_command_with_output returned 0.
vms status = 1
Comparing Output ........ DIFFERENT OUTPUT

<passing tests removed>
FAILED (3/4 passed)

So it seems the tests still contain Unix/shell commands and not only VMS
commands.

I only made changes needed to test the feature. GNU Make does not care if a command is a foreign command or a native VMS command.

$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined

*** /lcl_root/make/tests/work/VARIABLES/UNDEFINE.base Wed Feb 4 23:01:01 2015 --- /lcl_root/make/tests/work/VARIABLES/UNDEFINE.log Wed Feb 4 23:01:01 2015
***************
*** 1,2 ****
  recursive simple recursive
! undefined undefined undefined
--- 1,5 ----
  recursive simple recursive
!
! undefined undefined recursive
!
! %DCL-W-NOCOMD, no command on line - reenter with alphabetic first character

Or am I missing something?

The extra lines and the "%DCL-W-NOCOMD" lines are ignored by the test harness output compare. If that compare fails, then the test harness issues a diff command on the raw output, not the cooked output used for grading the test, so every thing is present.

The actual failure appear to be that the second line should be "undefined undefined undefined" and on VMS is showing up as "undefined undefined recursive".

I have not fully investigated this issue, but it appears that this happens when make recurses or invokes itself, and on VMS, the second invocation of make is missing some information from the parent. My guess is that information is normally passed by exported shell symbols.

Regards,
-John





reply via email to

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