Tcl Source Code

View Ticket
Login
Ticket UUID: 255c116110151b78349ccb7cc82cd55a20ceb0b9
Title: freebsd: test failures
Type: Bug Version: core-8-6-branch
Submitter: bll Created on: 2020-07-23 17:02:21
Subsystem: 29. http Package Assigned To: nobody
Priority: 5 Medium Severity: Minor
Status: Open Last Modified: 2024-05-24 09:19:01
Resolution: None Closed By: nobody
    Closed on:
Description:
As reported in:

 https://groups.google.com/d/topic/comp.lang.tcl/SG8nCmH1JGE/discussion

there are two test failures on FreeBSD.
I tested with core-8-6-branch and a fully updated FreeBSD 12.1.
Test results attached.
User Comments: dkf added on 2024-05-24 09:19:01:

I'm not really sure that we want to make that test much more specific like that. It might be better to change it to demand that it "fails" but not that it fails in a specific way. (Mind you, with my ISP it "fails" in a bad way: a connection is formed because of some damn proxy they use. I normally exclude the HTTP tests because of that sort of nonsense.)

I suspect that the other bug is best dealt with through adjusting the test constraints. Which is to say: rather than having contorted code, just make the test not run if the -readonly attribute gives ENOTSUP on read.


bll added on 2020-07-23 19:52:12:
I think the socket test was just a mis-configuration of ipv6.
Adding 'fe80::1 freebsd12' to /etc/hosts fixed the socket test.

But after doing that, an http test fails:

==== http-4.14 http::Event FAILED
==== Contents of test case:

    set token [http::geturl $badurl/?timeout=10 -timeout 10000 -command \#]
    if {$token eq ""} {
	error "bogus return from http::geturl"
    }
    http::wait $token
    lindex [http::error $token] 0

---- Result was:

---- Result should have been (exact matching):
connect failed connection refused
==== http-4.14 FAILED


The other test can modified as below:

test unixFCmd-20.1 {SetReadOnlyAttribute} -match regexp -setup {
    catch {file delete -force -- foo.test}
} -constraints {unix notRoot readonlyAttr} -body {
    close [open foo.test w]
    catch {file attributes foo.test -readonly 1} err res
    if { [lindex [dict get $res -errorcode] 1] eq "ENOTSUP" } {
      set result ENOTSUP
    } else {
      set result [list [catch {file attributes foo.test -readonly 1} msg] $msg \
	    [catch {file attribute foo.test -readonly} msg] $msg \
	    [catch {file delete -force -- foo.test}] \
	    [catch {file attributes foo.test -readonly 0} msg] $msg \
	    [catch {file attribute foo.test -readonly} msg] $msg]
    }
    set result
} -cleanup {
    file delete -force -- foo.test
} -result "^(ENOTSUP|[list 0 {} 0 1 1 0 {} 0 0])\$"

bll added on 2020-07-23 19:20:37:
This is relevant:

   https://bugs.python.org/issue15747

Yes, my FreeBSD VM is configured to use ZFS.

-code 1 -level 0 -errorstack {INNER invokeReplace} -errorcode {POSIX ENOTSUP {operation not supported}} -errorinfo {could not set flags for file "foo.test": operation not supported

The test needs to be modified to check for ENOTSUP.

Attachments: