DejaGnu 1.6.3 release candidate 1

Jacob Bachmeyer <[email protected]> Mon, 22 Mar 2021 17:23:36 -0500
Newsgroups gmane.comp.sysutils.dejagnu.general
Message-ID <[email protected]>
Release candidate 1 for DejaGnu 1.6.3 has been uploaded to alpha.gnu.org 
at <URL:ftp://alpha.gnu.org/gnu/dejagnu/dejagnu-1.6.3-rc1.tar.gz>.

The 1.6.3 release collects the development work done over the past two 
years, fixing numerous bugs, adding new Tcl procedures under the 
"testsuite" and "testcase" multiplex entrypoints, adding a new "dejagnu" 
multiplex command for various auxiliary functions other than actually 
running tests, and significantly improving the manual.  See the NEWS 
file for a summary and the ChangeLog and Git history for the full details.

As I understand that verification testing for a DejaGnu release can take 
some time, I expect to make the 1.6.3 release in a few weeks if no 
release-blocking bugs are found.  Please report any bugs found not 
listed in the "Known Bugs" section below to <[email protected]> as the 
current development master still closely tracks the 1.6.3 branch; any 
bugs found in a 1.6.3 release candidate are likely to also affect the 
development master, and to be fixed there even if they become known bugs 
for the 1.6.3 release.

The contrib/compare_tests script has been removed.  It had been imported 
many years ago from GCC, where the upstream version has continued to 
develop.

The test script testsuite/runtest.libs/load_lib.exp has been removed.  
It was the last non-trivial code file without a GPL notice and it will 
be replaced in 1.6.4 using the new internal unit testing 
infrastructure.  This test was also found to be inadequate in any case:  
load_lib does not properly handle the libdirs list as a list, which will 
also be fixed in 1.6.4, and the test does not expose this bug.

Known Bugs
----------

Two bugs were reported after the 1.6.3 code freeze and will be present 
in the 1.6.3 release; both are expected to be fixed in 1.6.4:
    - PR44462
       - get_multilibs blindly assumes that the target compiler is GCC 
and examines GCC specs strings
    - PR44602
       - loading files fails if the full name contains spaces

Other known bugs include the incorrect handling of libdirs and 
thread-safety issues with the C unit testing support in dejagnu.h.

Future Directions
-----------------

Monkeypatching the framework is not and never was supported.  Such 
monkeypatches may break without warning and broken monkeypatches are 
bugs in the testsuite using them, not the framework.  We (mostly meaning 
"I" here) will make efforts to upstream any useful features currently 
monkeypatched or otherwise to assist in getting Free testsuites out of 
this trap.  This release obsoletes a monkeypatch on 
default_target_compile that GDB has carried for some years; 1.6.4 will 
begin efforts towards providing extensibility to prevent similar issues 
in the future.

For advanced notice, there are currently some changes planned for 1.7:
    - the XML output format will be radically revised
    - sites using local configuration files will need to update their 
configuration as default processing will be moved out of the various 
*_hook procedures
    - log file messages generated by the framework will be tagged with 
the name of the procedure emitting them
    - DejaGnu 1.7 will no longer override the ::unknown procedure; this 
mechanism is obsoleted by general Tcl error handling improvements in 
DejaGnu 1.6.3 but will be retained until 1.7
    - the unit testing support in host_execute will no longer react to 
{^Totals} and {\d{2}(:.{2}){2}} patterns in 1.7

In the nearer term, planned improvements for 1.6.4 include:
    - fixing thread-safety issues in dejagnu.h
    - reworking the TestState internals in dejagnu.h and improving the 
unit test framework tests
    - tagging development versions properly, both when running from the 
working tree and on installation
    - fixing PR44602 properly (requires auditing the code for catch(n) 
blocks and other file name usage)
    - fixing the handling of libdirs and properly testing load_lib
    - the default_target_compile procedure will be rewritten


-- Jacob