diff options
Diffstat (limited to 'bench')
-rw-r--r-- | bench/bench.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/bench/bench.hs b/bench/bench.hs new file mode 100644 index 0000000..e66dadd --- /dev/null +++ b/bench/bench.hs | |||
@@ -0,0 +1,35 @@ | |||
1 | {-#LANGUAGE OverloadedStrings #-} | ||
2 | |||
3 | import Data.ByteString (ByteString) | ||
4 | import Criterion.Main | ||
5 | |||
6 | import Crypto.Macaroon | ||
7 | import Crypto.Macaroon.Internal | ||
8 | |||
9 | |||
10 | loc :: ByteString | ||
11 | loc = "http://mybank/" | ||
12 | |||
13 | ident :: ByteString | ||
14 | ident = "we used our secret key" | ||
15 | |||
16 | key :: ByteString | ||
17 | key = "this is our super secret key; only we should know it" | ||
18 | |||
19 | cav :: ByteString | ||
20 | cav = "test = caveat" | ||
21 | |||
22 | |||
23 | {-#INLINE benchCreate#-} | ||
24 | benchCreate :: (Key, Key, Location) -> Macaroon | ||
25 | benchCreate (secret, ident, loc) = create secret ident loc | ||
26 | |||
27 | {-#INLINE benchMint #-} | ||
28 | benchMint :: ((Key, Key, Location), ByteString) -> Macaroon | ||
29 | benchMint (ms,c) = addFirstPartyCaveat c (benchCreate ms) | ||
30 | |||
31 | main = defaultMain [ | ||
32 | bgroup "Crypto.Macaroon" [ bench "create" $ nf benchCreate (key,ident,loc) | ||
33 | , bench "mint" $ nf benchMint ((key,ident,loc),cav) | ||
34 | ] | ||
35 | ] | ||