@@ -3,12 +3,11 @@ module Main where
33import TestTransport
44import Network.Transport
55import Network.Transport.TCP (createTransport)
6−{-
76import Data.Int (Int32)
87import Data.Maybe (fromJust)
98import Control.Concurrent (forkIO)
109import Control.Concurrent.MVar (MVar, newEmptyMVar, putMVar, takeMVar, readMVar)
11−import Network.Transport.TCP (decodeEndPointAddress, EndPointId, ControlHeader(..))
10+import Network.Transport.TCP (decodeEndPointAddress, EndPointId, ControlHeader(..), ConnectionRequestResponse(..))
1211import Network.Transport.Internal (encodeInt32, prependLength)
1312import Network.Transport.Internal.TCP (recvInt32)
1413import qualified Network.Socket as N ( getAddrInfo
@@ -25,11 +24,10 @@ import qualified Network.Socket as N ( getAddrInfo
2524 , ServiceName
2625 )
2726import Network.Socket.ByteString (sendMany)
28−-}
2927
28+-- Test that the server gets a ConnectionClosed message when the client closes
29+-- the socket without sending an explicit control message to the server first
3030testEarlyDisconnect :: IO ()
31−testEarlyDisconnect = return ()
32−{-
3331testEarlyDisconnect = do
3432 serverAddr <- newEmptyMVar
3533 serverDone <- newEmptyMVar
@@ -63,7 +61,7 @@ testEarlyDisconnect = do
6361 sendMany sock (encodeInt32 endPointIx : prependLength [myAddress])
6462
6563 -- Wait for acknowledgement
66− ValidEndPoint <- recvInt32 sock
64+ ConnectionRequestAccepted <- recvInt32 sock
6765
6866 -- Request a new connection, but don't wait for the response
6967 let reqId = 0 :: Int32
@@ -72,13 +70,14 @@ testEarlyDisconnect = do
7270 -- Close the socket without closing the connection explicitly
7371 -- The server should still receive a ConnectionClosed message
7472 N.sClose sock
75−-}
7673
74+-- | Test the creation of a transport with an invalid address
7775testInvalidAddress :: IO ()
7876testInvalidAddress = do
7977 Left _ <- createTransport "invalidHostName" "8082"
8078 return ()
8179
80+-- | Test connecting to invalid or non-existing endpoints
8281testInvalidConnect :: IO ()
8382testInvalidConnect = do
8483 Right transport <- createTransport "127.0.0.1" "8083"
@@ -104,7 +103,7 @@ testInvalidConnect = do
104103
105104main :: IO ()
106105main = do
107− -- runTestIO "EarlyDisconnect" testEarlyDisconnect
106+ runTestIO "EarlyDisconnect" testEarlyDisconnect
108107 runTestIO "InvalidAddress" testInvalidAddress
109108 runTestIO "InvalidConnect" testInvalidConnect
110109 Right transport <- createTransport "127.0.0.1" "8080"