| 15 | }); |
| 16 | |
| 17 | function main({ api, type, len, algo, keylen, n }) { |
| 18 | let message; |
| 19 | let encoding; |
| 20 | switch (type) { |
| 21 | case 'asc': |
| 22 | message = 'a'.repeat(len); |
| 23 | encoding = 'ascii'; |
| 24 | break; |
| 25 | case 'utf': |
| 26 | message = '\u00fc'.repeat(len / 2); |
| 27 | encoding = 'utf8'; |
| 28 | break; |
| 29 | case 'buf': |
| 30 | message = Buffer.alloc(len, 'b'); |
| 31 | break; |
| 32 | default: |
| 33 | throw new Error(`unknown message type: ${type}`); |
| 34 | } |
| 35 | |
| 36 | const fn = api === 'stream' ? streamWrite : updateDigest; |
| 37 | const key = Buffer.alloc(keylen, 'k'); |
| 38 | |
| 39 | bench.start(); |
| 40 | fn(algo, key, message, encoding, n, len); |
| 41 | } |
| 42 | |
| 43 | function updateDigest(algo, key, message, encoding, n, len) { |
| 44 | const written = n * len; |