Skip to content

Commit 6db9696

Browse files
committed
defining tcpTest6 and udpTest6.
1 parent 917c0b6 commit 6db9696

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

tests/Network/SocketSpec.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec = do
3131
connect' (8080 :: Int) `shouldThrow` anyIOException
3232

3333
it "successfully connects to a socket with no exception" $ do
34-
withPort $ \portVar -> test (tcp return portVar)
34+
withPort $ \portVar -> test (tcp serverAddr return portVar)
3535
{ clientSetup = readMVar portVar >>= connect'
3636
}
3737

tests/Network/Test/Common.hs

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ module Network.Test.Common
1515
-- * Run a ClientServer configuration
1616
, test
1717
, tcpTest
18+
, tcpTest6
1819
, udpTest
20+
, udpTest6
1921
-- * Common constants
2022
, serverAddr
2123
, serverAddr6
@@ -94,13 +96,16 @@ unix address cleanupAct serverAct = defaultClientServer
9496
-- client and server. 'tcpTest' makes sure that the 'Socket' is
9597
-- closed after the actions have run.
9698
tcpTest :: (Socket -> IO a) -> (Socket -> IO b) -> IO ()
97-
tcpTest client server = withPort $ test . setClientAction client . tcp server
99+
tcpTest client server = withPort $ test . setClientAction client . tcp serverAddr server
98100

99-
tcp :: (Socket -> IO b) -> MVar PortNumber -> ClientServer Socket ()
100-
tcp serverAct portVar = defaultClientServer
101+
tcpTest6 :: (Socket -> IO a) -> (Socket -> IO b) -> IO ()
102+
tcpTest6 client server = withPort $ test . setClientAction client . tcp serverAddr6 server
103+
104+
tcp :: HostName -> (Socket -> IO b) -> MVar PortNumber -> ClientServer Socket ()
105+
tcp serverAddress serverAct portVar = defaultClientServer
101106
{ clientSetup = do
102107
serverPort <- readMVar portVar
103-
addr <- resolveClient Stream serverAddr serverPort
108+
addr <- resolveClient Stream serverAddress serverPort
104109
sock <- socketWithAddrInfo addr
105110
#if !defined(mingw32_HOST_OS)
106111
withFdSocket sock $ \fd -> do
@@ -110,7 +115,7 @@ tcp serverAct portVar = defaultClientServer
110115
connect sock $ addrAddress addr
111116
return sock
112117
, serverSetup = do
113-
addr <- resolveServer Stream serverAddr
118+
addr <- resolveServer Stream serverAddress
114119
sock <- socketWithAddrInfo addr
115120
withFdSocket sock $ \fd -> do
116121
#if !defined(mingw32_HOST_OS)
@@ -142,22 +147,27 @@ tcp serverAct portVar = defaultClientServer
142147
-- datagrams and then run 'clientAct' and 'serverAct'.
143148
udpTest :: (Socket -> SockAddr -> IO a) -> (Socket -> IO b) -> IO ()
144149
udpTest client server =
145-
withPort $ test . setServerAction server . udp client
150+
withPort $ test . setServerAction server . udp serverAddr client
151+
152+
udpTest6 :: (Socket -> SockAddr -> IO a) -> (Socket -> IO b) -> IO ()
153+
udpTest6 client server =
154+
withPort $ test . setServerAction server . udp serverAddr6 client
146155

147156
udp
148-
:: (Socket -> SockAddr -> IO a)
157+
:: HostName
158+
-> (Socket -> SockAddr -> IO a)
149159
-> MVar PortNumber
150160
-> ClientServer a Socket
151-
udp clientAct portVar = defaultClientServer
161+
udp serverAddress clientAct portVar = defaultClientServer
152162
{ clientSetup = do
153-
addr <- resolveClient Datagram serverAddr 8000 -- dummy port
163+
addr <- resolveClient Datagram serverAddress 8000 -- dummy port
154164
socketWithAddrInfo addr
155165
, clientAction = \sock -> do
156166
serverPort <- readMVar portVar
157-
addr <- resolveClient Datagram serverAddr serverPort
167+
addr <- resolveClient Datagram serverAddress serverPort
158168
clientAct sock $ addrAddress addr
159169
, serverSetup = do
160-
addr <- resolveServer Datagram serverAddr
170+
addr <- resolveServer Datagram serverAddress
161171
sock <- socketWithAddrInfo addr
162172
setSocketOption sock ReuseAddr 1
163173
bind sock $ addrAddress addr

0 commit comments

Comments
 (0)