summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bench/Main.hs8
-rw-r--r--krpc.cabal2
-rw-r--r--tests/Network/KRPCSpec.hs8
3 files changed, 14 insertions, 4 deletions
diff --git a/bench/Main.hs b/bench/Main.hs
index 97f97425..13727ff9 100644
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -3,6 +3,7 @@
3{-# OPTIONS_GHC -fno-warn-orphans #-} 3{-# OPTIONS_GHC -fno-warn-orphans #-}
4module Main (main) where 4module Main (main) where
5import Control.Monad 5import Control.Monad
6import Control.Monad.Logger
6import Control.Monad.Reader 7import Control.Monad.Reader
7import Criterion.Main 8import Criterion.Main
8import Data.ByteString as BS 9import Data.ByteString as BS
@@ -11,6 +12,9 @@ import Network.KRPC
11instance KRPC ByteString ByteString where 12instance KRPC ByteString ByteString where
12 method = "echo" 13 method = "echo"
13 14
15instance MonadLogger IO where
16 monadLoggerLog _ _ _ _ = return ()
17
14echo :: Handler IO 18echo :: Handler IO
15echo = handler $ \ _ bs -> return (bs :: ByteString) 19echo = handler $ \ _ bs -> return (bs :: ByteString)
16 20
@@ -26,7 +30,7 @@ main = withManager addr [echo] $ \ m -> (`runReaderT` m) $ do
26 repetitions = [1, 10, 100, 1000] 30 repetitions = [1, 10, 100, 1000]
27 benchmarks m = [mkbench m r s | r <- repetitions, s <- sizes] 31 benchmarks m = [mkbench m r s | r <- repetitions, s <- sizes]
28 where 32 where
29 mkbench m r n = 33 mkbench action r n =
30 bench (show r ++ "times" ++ "/" ++ show n ++ "bytes") $ nfIO $ 34 bench (show r ++ "times" ++ "/" ++ show n ++ "bytes") $ nfIO $
31 replicateM r $ 35 replicateM r $
32 runReaderT (query addr (BS.replicate n 0)) m 36 runReaderT (query addr (BS.replicate n 0)) action
diff --git a/krpc.cabal b/krpc.cabal
index 7b0cafa2..b5004026 100644
--- a/krpc.cabal
+++ b/krpc.cabal
@@ -70,6 +70,7 @@ test-suite spec
70 , bytestring 70 , bytestring
71 , network 71 , network
72 , mtl 72 , mtl
73 , monad-logger
73 , hspec 74 , hspec
74 , QuickCheck 75 , QuickCheck
75 , quickcheck-instances 76 , quickcheck-instances
@@ -84,6 +85,7 @@ benchmark bench
84 build-depends: base == 4.* 85 build-depends: base == 4.*
85 , bytestring 86 , bytestring
86 , mtl 87 , mtl
88 , monad-logger
87 , criterion 89 , criterion
88 , krpc 90 , krpc
89 ghc-options: -O2 -fforce-recomp \ No newline at end of file 91 ghc-options: -O2 -fforce-recomp \ No newline at end of file
diff --git a/tests/Network/KRPCSpec.hs b/tests/Network/KRPCSpec.hs
index 27148682..7f5b2794 100644
--- a/tests/Network/KRPCSpec.hs
+++ b/tests/Network/KRPCSpec.hs
@@ -1,7 +1,8 @@
1{-# LANGUAGE OverloadedStrings #-} 1{-# LANGUAGE OverloadedStrings #-}
2{-# OPTIONS_GHC -fno-warn-orphans #-}
2module Network.KRPCSpec (spec) where 3module Network.KRPCSpec (spec) where
4import Control.Monad.Logger
3import Control.Monad.Reader 5import Control.Monad.Reader
4import Network.Socket (SockAddr (..))
5import Network.KRPC 6import Network.KRPC
6import Network.KRPC.MethodSpec hiding (spec) 7import Network.KRPC.MethodSpec hiding (spec)
7import Test.Hspec 8import Test.Hspec
@@ -16,6 +17,9 @@ handlers =
16 , handler $ \ _ (Echo a) -> return (Echo (a :: Int)) 17 , handler $ \ _ (Echo a) -> return (Echo (a :: Int))
17 ] 18 ]
18 19
20instance MonadLogger IO where
21 monadLoggerLog _ _ _ _ = return ()
22
19spec :: Spec 23spec :: Spec
20spec = do 24spec = do
21 describe "query" $ do 25 describe "query" $ do