b0e3b6588f 2019-09-17 rkeene: #! /usr/bin/env tclsh
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set LIB_SUFFIX [info sharedlibextension]
b0e3b6588f 2019-09-17 rkeene: load -global ./xvfs${LIB_SUFFIX}; # Optional, uses a dispatcher
b0e3b6588f 2019-09-17 rkeene: load ./example-flexible${LIB_SUFFIX} Xvfs_example
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set benchmarkFormat "%-6s %-5s: %s"
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: proc benchmark {type name code} {
b0e3b6588f 2019-09-17 rkeene: time $code 100
b0e3b6588f 2019-09-17 rkeene: set time [time $code 10000]
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: puts [format $::benchmarkFormat $type $name $time]
b0e3b6588f 2019-09-17 rkeene: }
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set rootDirMap(xvfs) "//xvfs:/example"
b0e3b6588f 2019-09-17 rkeene: set rootDirMap(native) [file join [pwd] example]
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set test(CD) {
b0e3b6588f 2019-09-17 rkeene: cd $::rootDir
b0e3b6588f 2019-09-17 rkeene: pwd
b0e3b6588f 2019-09-17 rkeene: }
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set test(Read) {
b0e3b6588f 2019-09-17 rkeene: set fd [open ${::rootDir}/main.tcl]
b0e3b6588f 2019-09-17 rkeene: read $fd
b0e3b6588f 2019-09-17 rkeene: close $fd
b0e3b6588f 2019-09-17 rkeene: }
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: set test(Glob) {
b0e3b6588f 2019-09-17 rkeene: glob -directory ${::rootDir} *
b0e3b6588f 2019-09-17 rkeene: }
b0e3b6588f 2019-09-17 rkeene:
b0e3b6588f 2019-09-17 rkeene: foreach {testName testBody} [lsort -stride 2 -dictionary [array get test]] {
b0e3b6588f 2019-09-17 rkeene: foreach rootDirType {xvfs native} {
b0e3b6588f 2019-09-17 rkeene: set rootDir $rootDirMap($rootDirType)
b0e3b6588f 2019-09-17 rkeene: benchmark $rootDirType $testName $testBody
b0e3b6588f 2019-09-17 rkeene: }
b0e3b6588f 2019-09-17 rkeene: }