diff --git a/basis/io/servers/servers-tests.factor b/basis/io/servers/servers-tests.factor index 04004ea9b03..bea66ad07a5 100644 --- a/basis/io/servers/servers-tests.factor +++ b/basis/io/servers/servers-tests.factor @@ -1,6 +1,6 @@ -USING: accessors calendar concurrency.promises fry io -io.encodings.ascii io.servers -io.servers.private io.sockets kernel namespaces +USING: accessors arrays calendar concurrency.promises fry io +io.encodings.ascii io.encodings.utf8 io.servers +io.servers.private io.sockets kernel namespaces scratchpad sequences threads tools.test ; IN: io.servers @@ -53,3 +53,20 @@ ipv6-supported? [ [ inet6? ] any? ] unit-test ] unless + + +! Test that we can listen on several ports at once. +TUPLE: my-threaded-server < threaded-server ; + +{ } [ + utf8 my-threaded-server new-threaded-server + "127.0.0.1" 0 + "127.0.0.1" 0 + 2array >>insecure + + "127.0.0.1" 0 + "127.0.0.1" 0 + 2array >>secure + + start-server stop-server +] unit-test \ No newline at end of file diff --git a/basis/io/servers/servers.factor b/basis/io/servers/servers.factor index 7cbb69097ef..0a264824f60 100755 --- a/basis/io/servers/servers.factor +++ b/basis/io/servers/servers.factor @@ -77,7 +77,7 @@ M: inet6 >insecure 1array ; M: local >insecure 1array ; M: integer >insecure internet-server 1array ; M: string >insecure internet-server 1array ; -M: array >insecure [ >insecure ] map ; +M: array >insecure [ >insecure ] map concat ; M: f >insecure ; : >secure ( addrspec -- addrspec' )