]>
Commit | Line | Data |
---|---|---|
f6781456 JT |
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 | ] |