1# -*- tcl -*-
2# Tcl Benchmark File
3#
4# This file contains a number of benchmarks for the 'sha2' module.
5# This allow developers to monitor/gauge/track package performance.
6#
7# (c) 2005 Andreas Kupries <andreas_kupries@users.sourceforge.net>
8
9# We need at least version 8.2 for the package and thus the
10# benchmarks.
11
12if {![package vsatisfies [package provide Tcl] 8.2]} {
13    return
14}
15
16# ### ### ### ######### ######### ######### ###########################
17## Setting up the environment ...
18
19set moddir [file dirname [file dirname [info script]]]
20lappend auto_path $moddir
21
22package forget sha256
23catch {namespace delete ::sha2}
24source [file join [file dirname [info script]] sha256.tcl]
25
26set key "01234567abcdefgh01234567abcdefgh01234567abcdefgh01234567abcdefgh=="
27
28# ### ### ### ######### ######### ######### ###########################
29## Benchmarks.
30
31foreach n {1 10 100 1000} {
32    bench -desc "SHA256 sha_ $n" -pre {
33	set str [string repeat " " $n]
34    } -body {
35	sha2::sha256 $str
36    }
37
38    bench -desc "SHA224 sha_ $n" -pre {
39	set str [string repeat " " $n]
40    } -body {
41	sha2::sha224 $str
42    }
43
44    bench -desc "SHA256 hmac $n" -pre {
45	set str [string repeat " " $n]
46    } -body {
47	sha2::hmac $key $str
48    }
49}
50
51# ### ### ### ######### ######### ######### ###########################
52## Complete
53