From b9b74fa4e0eb22461249aa16f52c01d88d36a5ff Mon Sep 17 00:00:00 2001 From: Naushadh Date: Sun, 20 Jan 2019 17:12:42 -0500 Subject: [PATCH] [stackage#4312] Relax `network` upper bound - Fixes: https://github.com/commercialhaskell/stackage/issues/4312 - Address some compiler warnings in tests (IO with unused result). - Updated deprecated/removed upstream API usage in tests with conditional blocks to support older test matrices. --- io-streams.cabal | 2 +- test/System/IO/Streams/Tests/Concurrent.hs | 2 +- test/System/IO/Streams/Tests/Network.hs | 34 +++++++++++++++++----- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/io-streams.cabal b/io-streams.cabal index e43e2c0..4fe1c64 100644 --- a/io-streams.cabal +++ b/io-streams.cabal @@ -124,7 +124,7 @@ Library attoparsec >= 0.10 && <0.14, bytestring >= 0.9 && <0.11, bytestring-builder >= 0.10 && <0.11, - network >= 2.3 && <2.9, + network >= 2.3 && <3.1, primitive >= 0.2 && <0.7, process >= 1.1 && <1.7, text >= 0.10 && <1.3, diff --git a/test/System/IO/Streams/Tests/Concurrent.hs b/test/System/IO/Streams/Tests/Concurrent.hs index 10ee136..68df43f 100644 --- a/test/System/IO/Streams/Tests/Concurrent.hs +++ b/test/System/IO/Streams/Tests/Concurrent.hs @@ -47,7 +47,7 @@ testConcurrentMerge = testCase "concurrent/concurrentMerge" $ do chans inputs <- mapM Streams.chanToInput chans resultMVar <- newEmptyMVar - forkIO (Streams.concurrentMerge inputs >>= Streams.toList + _ <- forkIO (Streams.concurrentMerge inputs >>= Streams.toList >>= putMVar resultMVar) putMVar firstMVar 0 result <- takeMVar resultMVar diff --git a/test/System/IO/Streams/Tests/Network.hs b/test/System/IO/Streams/Tests/Network.hs index 45b981d..b8e5a19 100644 --- a/test/System/IO/Streams/Tests/Network.hs +++ b/test/System/IO/Streams/Tests/Network.hs @@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE CPP #-} module System.IO.Streams.Tests.Network (tests) where @@ -13,6 +14,10 @@ import System.Timeout (timeout) import Test.Framework import Test.Framework.Providers.HUnit import Test.HUnit hiding (Test) +#if MIN_VERSION_network(2,7,0) +#else +import Data.List (intercalate) +#endif ------------------------------------------------------------------------------ import qualified System.IO.Streams.Internal as Streams import qualified System.IO.Streams.Internal.Network as Streams @@ -32,10 +37,23 @@ testSocket = testCase "network/socket" $ assertEqual "ok" (Just ()) x where + -- compats +#if MIN_VERSION_network(2,7,0) + mkAddr = pure . N.tupleToHostAddress + defaultPort = N.defaultPort + close = N.close + bind = N.bind +#else + mkAddr (o1,o2,o3,o4) = N.inet_addr . intercalate "." $ map show [o1,o2,o3,o4] + defaultPort = N.aNY_PORT + close = N.sClose + bind = N.bindSocket +#endif + go = do portMVar <- newEmptyMVar resultMVar <- newEmptyMVar - forkIO $ client portMVar resultMVar + _ <- forkIO $ client portMVar resultMVar server portMVar l <- takeMVar resultMVar assertEqual "testSocket" l ["ok"] @@ -43,28 +61,28 @@ testSocket = testCase "network/socket" $ client mvar resultMVar = do port <- takeMVar mvar sock <- N.socket N.AF_INET N.Stream N.defaultProtocol - addr <- N.inet_addr "127.0.0.1" + addr <- mkAddr (127, 0, 0, 1) let saddr = N.SockAddrInet port addr N.connect sock saddr (is, os) <- Streams.socketToStreams sock Streams.fromList ["", "ok"] >>= Streams.connectTo os N.shutdown sock N.ShutdownSend Streams.toList is >>= putMVar resultMVar - N.sClose sock + close sock server mvar = do sock <- N.socket N.AF_INET N.Stream N.defaultProtocol - addr <- N.inet_addr "127.0.0.1" - let saddr = N.SockAddrInet N.aNY_PORT addr - N.bindSocket sock saddr + addr <- mkAddr (127, 0, 0, 1) + let saddr = N.SockAddrInet defaultPort addr + bind sock saddr N.listen sock 5 port <- N.socketPort sock putMVar mvar port (csock, _) <- N.accept sock (is, os) <- Streams.socketToStreams csock Streams.toList is >>= flip Streams.writeList os - N.sClose csock - N.sClose sock + close csock + close sock testSocketWithError :: Test testSocketWithError = testCase "network/socket-error" $ N.withSocketsDo $ do