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