[sr #110985] "Substitute and define special characters" test fails on NetBSD 9

Zack Weinberg <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
URL:
  <https://savannah.gnu.org/support/?110985>

                 Summary: "Substitute and define special characters" test
fails on NetBSD 9
                   Group: Autoconf
               Submitter: zackw
               Submitted: Wed 20 Dec 2023 01:59:11 PM UTC
                Priority: 5 - Unprioritized
                Severity: 2 - Minor
                  Status: Need Info
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 20 Dec 2023 01:59:11 PM UTC By: Zack Weinberg <zackw>
On x86_64-unknown-netbsd9.3, running Autoconf's test suite consistently
produces this failure:


Failed tests:
 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
 270: torture.at:913     Substitute and define special characters


This test checks whether it is possible to pass a string through AC_SUBST that
includes a byte with every possible value except 0x00.

The log for the testsuite says


configure: creating ./config.status
config.status: creating Foo
config.status: creating Zardoz
config.status: creating config.h
./torture.at:987: cat Foo
./torture.at:1000: cmp allowed-chars Zardoz
--- /dev/null   2023-12-19 14:19:58.701932966 -0500
+++
/net/u/1/z/zackw/autoconf-2.72d.16-9800e-dirty/tests/testsuite.dir/at-groups
/270/stdout     2023-12-19 14:19:58.910181000 -0500
@@ -0,0 +1 @@
+allowed-chars Zardoz differ: char 256, line 2
./torture.at:1000: exit code was 1, expected 0


Comparing hex dumps of the files "allowed-chars" and "Zardoz" shows that the
problem is that an extra byte (with value 0x81) has been inserted before each
byte with a value in the range 0x81 through 0x8b.  The extra bytes are *not*
present in the value of @zardoz@ recorded in config.status, but they *are*
present in the temporary file `subs1.awk` used by config.status (to see this
file run `./config.status -d` and then look in the directory named confXXXXXX,
where XXXXXX is some random sequence of alphanumerics).  Thus, this appears to
be a bug in the handling of here documents in this system's /bin/sh.  However,
the obvious cut-down version of the code in config.status does _not_ show the
bug:


$ printf 'xxd
<<\\EOF\n\x80\x81\x82\x83\x84\x85\x86\x87\n\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\nEOF\n'
> test.sh
$ /bin/sh test.sh
00000000: 8081 8283 8485 8687 0a88 898a 8b8c 8d8e  ................
00000010: 8f0a                                     ..


We need to pin down exactly what the bug is before we can do anything about
it.

If you encounter a failure in this test on any platform _besides_
*-unknown-netbsd9*, please post a comment here.  Please attach a tarball of
the directory tests/testsuite.dir/270 (note: the number may be different if
you are testing a version of Autoconf other than 2.72).






    _______________________________________________________
File Attachments:


-------------------------------------------------------
Date: Wed 20 Dec 2023 01:59:11 PM UTC  Name: failed-test-270.tar.gz  Size:
133KiB   By: zackw

<http://savannah.gnu.org/support/download.php?file_id=55471>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?110985>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
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.