]> gitweb.factorcode.org Git - factor.git/blob - basis/io/servers/servers-tests.factor
more test IN: cleanup.
[factor.git] / basis / io / servers / servers-tests.factor
1 USING: accessors arrays concurrency.flags fry io
2 io.encodings.ascii io.encodings.utf8 io.servers
3 io.servers.private io.sockets kernel namespaces sequences sets
4 threads tools.test ;
5
6 { t } [ ascii <threaded-server> listen-on empty? ] unit-test
7
8 { f } [
9     ascii <threaded-server>
10         25 internet-server >>insecure
11     listen-on
12     empty?
13 ] unit-test
14
15 { t } [
16     T{ inet4 f "1.2.3.4" 1234 } T{ inet4 f "1.2.3.5" 1235 }
17     [ log-connection ] 2keep
18     [ remote-address get = ] [ local-address get = ] bi*
19     and
20 ] unit-test
21
22 { } [ ascii <threaded-server> init-server drop ] unit-test
23
24 { 10 } [
25     ascii <threaded-server>
26         10 >>max-connections
27     init-server semaphore>> count>>
28 ] unit-test
29
30 { "Hello world." } [
31     ascii <threaded-server>
32         5 >>max-connections
33         0 >>insecure
34         [ "Hello world." write stop-this-server ] >>handler
35     [
36         insecure-addr ascii <client> drop stream-contents
37     ] with-threaded-server
38 ] unit-test
39
40 { } [
41     ascii <threaded-server>
42         5 >>max-connections
43         0 >>insecure
44     start-server [ '[ _ wait-for-server ] in-thread ] [ stop-server ] bi
45 ] unit-test
46
47 ipv6-supported? [
48     { f } [
49         ascii <threaded-server>
50             "localhost" 1234 inet boa >>insecure
51         listen-on
52         [ inet6? ] any?
53     ] unit-test
54 ] unless
55
56 ! Test that we can listen on several ports at once.
57 { } [
58     utf8 <threaded-server>
59         "127.0.0.1" 0 <inet4>
60         "127.0.0.1" 0 <inet4>
61         2array >>insecure
62
63         "127.0.0.1" 0 <inet4>
64         "127.0.0.1" 0 <inet4>
65         2array >>secure
66
67         start-server stop-server
68 ] unit-test
69
70 ! add-running-server
71 [
72     ascii <threaded-server> HS{ } clone 2dup adjoin
73     add-running-server
74 ] [ server-already-running? ] must-fail-with
75
76 ! stop-server
77 [
78     ascii <threaded-server> <flag> >>server-stopped
79     stop-server
80 ] [ server-not-running? ] must-fail-with