diff options
-rw-r--r-- | bench/Main.hs | 8 | ||||
-rw-r--r-- | krpc.cabal | 2 | ||||
-rw-r--r-- | tests/Network/KRPCSpec.hs | 8 |
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 #-} |
4 | module Main (main) where | 4 | module Main (main) where |
5 | import Control.Monad | 5 | import Control.Monad |
6 | import Control.Monad.Logger | ||
6 | import Control.Monad.Reader | 7 | import Control.Monad.Reader |
7 | import Criterion.Main | 8 | import Criterion.Main |
8 | import Data.ByteString as BS | 9 | import Data.ByteString as BS |
@@ -11,6 +12,9 @@ import Network.KRPC | |||
11 | instance KRPC ByteString ByteString where | 12 | instance KRPC ByteString ByteString where |
12 | method = "echo" | 13 | method = "echo" |
13 | 14 | ||
15 | instance MonadLogger IO where | ||
16 | monadLoggerLog _ _ _ _ = return () | ||
17 | |||
14 | echo :: Handler IO | 18 | echo :: Handler IO |
15 | echo = handler $ \ _ bs -> return (bs :: ByteString) | 19 | echo = 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 |
@@ -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 #-} | ||
2 | module Network.KRPCSpec (spec) where | 3 | module Network.KRPCSpec (spec) where |
4 | import Control.Monad.Logger | ||
3 | import Control.Monad.Reader | 5 | import Control.Monad.Reader |
4 | import Network.Socket (SockAddr (..)) | ||
5 | import Network.KRPC | 6 | import Network.KRPC |
6 | import Network.KRPC.MethodSpec hiding (spec) | 7 | import Network.KRPC.MethodSpec hiding (spec) |
7 | import Test.Hspec | 8 | import 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 | ||
20 | instance MonadLogger IO where | ||
21 | monadLoggerLog _ _ _ _ = return () | ||
22 | |||
19 | spec :: Spec | 23 | spec :: Spec |
20 | spec = do | 24 | spec = do |
21 | describe "query" $ do | 25 | describe "query" $ do |