diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-04-12 09:35:18 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-04-12 09:35:18 (GMT) |
commit | 9b4213bb3f91778b852b5b3bf24904dfb7e6b04b (patch) | |
tree | 2d936efa3a46c26a2f9c39b73421666db8b0e5d9 /tests/socket.test | |
parent | cd48f2d3131be957186014e7012d9445e2bd26ff (diff) | |
parent | 0cc7fd3498bf486b2eb5bc20a67f5671f2830097 (diff) | |
download | tcl-9b4213bb3f91778b852b5b3bf24904dfb7e6b04b.zip tcl-9b4213bb3f91778b852b5b3bf24904dfb7e6b04b.tar.gz tcl-9b4213bb3f91778b852b5b3bf24904dfb7e6b04b.tar.bz2 |
merge core-8-6-branch
Diffstat (limited to 'tests/socket.test')
-rw-r--r-- | tests/socket.test | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/socket.test b/tests/socket.test index 9a09c0f..d3d56fa 100644 --- a/tests/socket.test +++ b/tests/socket.test @@ -74,7 +74,22 @@ testConstraint exec [llength [info commands exec]] # Produce a random port number in the Dynamic/Private range # from 49152 through 65535. -proc randport {} { expr {int(rand()*16383+49152)} } +proc randport {} { + # firstly try dynamic port via server-socket(0): + set port 0x7fffffff + catch { + set port [lindex [fconfigure [set s [socket -server {} 0]] -sockname] 2] + close $s + } + while {[catch { + close [socket -server {} $port] + } msg]} { + if {[incr i] > 1000} {return -code error "too many iterations to get free random port: $msg"} + # try random port: + set port [expr {int(rand()*16383+49152)}] + } + return $port +} # Check if testsocket testflags is available testConstraint testsocket_testflags [expr {![catch { |