Ticket Change Details
Overview

Artifact ID: b0f204aa18fbba94529f4475380aaddd3af3873a1a8c4404cd341a16bd453ce4
Ticket: 3b1ef43f51c5485668a0a56cf7bb3f5349d3d9cc
Test suite failures
User & Date: anonymous on 2025-10-15 14:54:21
Changes

  1. icomment:
    Thanks for the quick response. You were right, I switched to OpenSuSE 15.6 with is currently at openssl version:
    OpenSSL 3.1.4 24 Oct 2023 (Library: OpenSSL 3.1.4 24 Oct 2023)
    
    All the badssl test failures are now gone. What remains is:
    
    > make test
    TCL_LIBRARY=`echo /usr/local/src/SOURCES/tcl9.0.2/library` LD_LIBRARY_PATH="/usr/local/src/BUILD/x86_64-linux/tcltls-2.0b2:/usr/local/src/BUILD/x86_64-linux/tcl9.0:" PATH="/usr/local/src/BUILD/x86_64-linux/tcltls-2.0b2:/usr/local/src/BUILD/x86_64-linux/tcl9.0:/usr/local/bin:/usr/bin:/bin" TCLLIBPATH="/usr/local/src/BUILD/x86_64-linux/tcltls-2.0b2" /usr/local/src/BUILD/x86_64-linux/tcl9.0/tclsh `echo ../../../SOURCES/tcltls-2.0b2/tests/all.tcl`  \
        -load "package ifneeded tls 2.0b2 \
            [list load libtcl9tls2.0b2.so [string totitle tls]]; \
            source ../../../SOURCES/tcltls-2.0b2/library/tls.tcl}"
    Tests running in interp:  /usr/local/src/BUILD/x86_64-linux/tcl9.0/tclsh
    Tests located in:  /usr/local/src/SOURCES/tcltls-2.0b2/tests
    Tests running in:  /usr/local/src/BUILD/x86_64-linux/tcltls-2.0b2
    Temporary files stored in /usr/local/src/BUILD/x86_64-linux/tcltls-2.0b2
    Test files run in separate interpreters
    Running tests that match:  *
    Skipping test files that match:  l.*.test
    Only running test files that match:  *.test
    Tests began at Wed Oct 15 16:46:36 CEST 2025
    badssl.test
    ciphers.test
    tlsIO.test
    
    
    ==== tlsIO-8.1 testing -async flag on sockets FAILED
    ==== Contents of test case:
    
        # NOTE: This test may fail on some Solaris 2.4 systems.
        # See notes in Tcl's socket.test.
        set s [tls::socket -server accept -require 0  -certfile $serverCert -cafile $caCert -keyfile $serverKey 8830]
        proc accept {s a p} {
            global x
            # when doing an in-process client/server test, both sides need
            # to be non-blocking for the TLS handshake.  Also make sure
            # to return the channel to line buffering mode.
            fconfigure $s -blocking 0 -buffering line
            puts $s bye
            # Only OpenSSL 0.9.5a on Windows seems to need the after (delayed)
            # close, but it works just the same for all others. -hobbs
            after 500 close $s
            set x done
        }
        set s1 [tls::socket -require 0  -certfile $clientCert -cafile $caCert -keyfile $clientKey  -async localhost 8830]
        # when doing an in-process client/server test, both sides need
        # to be non-blocking for the TLS handshake  Also make sure to
        # return the channel to line buffering mode (TLS sets it to 'none').
        fconfigure $s1 -blocking 0 -buffering line
        vwait x
        # TLS handshaking needs one byte from the client...
        puts $s1 a
        # need update to complete TLS handshake in-process
        update
        fconfigure $s1 -blocking 1
        set z [gets $s1]
        close $s
        close $s1
        set z
    
    ---- Test generated error; Return code was: 1
    ---- Return code should have been one of: 0 2
    ---- errorInfo: error reading "sock2b737790": software caused connection abort
        while executing
    "gets $s1"
        ("uplevel" body line 28)
        invoked from within
    "uplevel 1 $script"
    ---- errorCode: POSIX ECONNABORTED {software caused connection abort}
    ==== tlsIO-8.1 FAILED
    
    
    
    ==== tlsIO-9.1 testing spurious (0 byte read) events FAILED
    ==== Contents of test case:
    
        set len 0
        set spurious 0
        set done 0
        proc readlittle {s} {
            global spurious done len
            set l [read $s 1]
            if {[string length $l] == 0} {
                if {![eof $s]} {
                    incr spurious
                } else {
                    close $s
                    set done 1
                }
            } else {
                incr len [string length $l]
            }
        }
        proc accept {s a p} {
            fconfigure $s -blocking 0
            fileevent $s readable [list do_handshake $s readable readlittle  -buffering none]
        }
        set s [tls::socket -server accept -require 0  -certfile $serverCert -cafile $caCert -keyfile $serverKey 8831]
        set c [tls::socket -require 0  -certfile $clientCert -cafile $caCert -keyfile $clientKey  localhost 8831]
        # This differs from socket-9.1 in that both sides need to be
        # non-blocking because of TLS' required handshake
        fconfigure $c -blocking 0
        puts -nonewline $c 01234567890123456789012345678901234567890123456789
        flush $c
        set timer [after 10000 [list set done timed_out]]
        after 1000 [list close $c]
        vwait done
        after cancel $timer
        catch {close $s}
        list $spurious $len
    
    ---- Result was:
    1 50
    ---- Result should have been (exact matching):
    0 50
    ==== tlsIO-9.1 FAILED
    
    Test file error: software caused connection abort
        while executing
    "close sock2b737010"
        ("after" script)
    
    Tests ended at Wed Oct 15 16:47:28 CEST 2025
    all.tcl:        Total   155     Passed  111     Skipped 42      Failed  2
    Sourced 3 Test Files.
    Files with failing tests: tlsIO.test
    Number of tests skipped for each constraint:
            12      doTestsWithRemoteServer
            1       mac
            20      old_api
            3       ssl2
            3       ssl3
            1       testthread
            2       unexplainedFailure
    
    Test files exiting with errors:  
    
      tlsIO.test
    
    -- end of message --
    
  2. login: "anonymous"
  3. mimetype: "text/plain"