Tcl Source Code

View Ticket
Login
Ticket UUID: fe57ad096d97623e220326c13ed9424406f4c8f3
Title: Fix test http-4.14 for tcl-8.6.11rc0
Type: Patch Version: 8.6.11rc0
Submitter: kjnash Created on: 2020-12-14 02:07:56
Subsystem: 29. http Package Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Important
Status: Closed Last Modified: 2020-12-14 08:15:12
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2020-12-14 08:15:12
Description:
Test http-4.14 fails for tcl-8.6.11rc0, and also for tcl-8.6.10.

The problem is the test's use of [info hostname] as the host name.  The system interprets this correctly when connecting to a port that has a listening socket.  When attempting to connect to a non-existent listener, the system reports [info hostname] as an "invalid argument" (perhaps because it has attempted and failed DNS lookup?).

Using [socket] without the -async option, the problem can be seen at the command line:

% socket 127.0.0.1 45678
couldn't open socket: connection refused

% socket localhost 45678
couldn't open socket: connection refused

% socket [info hostname] 45678
couldn't open socket: invalid argument

% socket [info hostname] 22 ;# works with a valid listening port
sock2781730

% info hostname
argent.home

File tests/http.test notes earlier problems with name resolution on OSX.  Name resolution is not the focus of the http package or its tests; so I suggest adopting the same solution as for OSX and setting the host name to "localhost" rather than [info hostname].

Because the httpd simple server clobbers the value of HOST the change is mode in three files:
* tests/http.test
* tests/httpold.test
* tests/httpd
User Comments: jan.nijtmans added on 2020-12-14 08:15:12:

Fixed now in core-8-6-branch and up.

Thanks for the analysis and fix!


Attachments: