summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtest/main49
1 files changed, 34 insertions, 15 deletions
diff --git a/test/main b/test/main
index 29b6af8..cfd318c 100755
--- a/test/main
+++ b/test/main
@@ -1,12 +1,21 @@
#!/usr/bin/env zsh
setopt err_exit
-typeset envstore=${1-envstore}
+typeset -i benchmark=0 apionly=0
+
+while [[ $1 == --* ]] {
+ case $1 in
+ --benchmark) benchmark=1 ;;
+ --api-only) apionly=1 ;;
+ esac
+ shift
+}
+typeset envstore=${1-envstore}
trap "print -P '\n%N:%i: %B%F{red}Test faild!%F{default}%b\nrm -rf $testdir'" ZERR
trap "$envstore clear" INT
cat <<- ente
- Usage: $0 [path to envstore]
+ Usage: $0 [--benchmark] [--api-only] [path to envstore]
Note: this script will remove/overwrite your envstore store file.
The envstore script needs to be compatible with the original envstore API,
that is, it should implement the commends "clear", "rm", "eval",
@@ -81,19 +90,29 @@ eval $($envstore eval)
unset hello
$envstore clear
-print -P '\n%F{green}Test passed%F{default}\n'
+if ((apionly == 0)) {
+ echo "# invalid invocations"
+ ! $envstore save
+ unset nonexistent
+ ! $envstore save nonexistent
+ ! $envstore rm
+}
-trap '' ZERR
-echo "## some benchmarks now..."
-TIMEFMT='%*E real, %*U user, %*S system - %P%% CPU - %J'
+print -P '\n%F{green}Test passed%F{default}\n'
-echo "# adding 5000 vars (this could take a _long_ time)"
-for i in {0..5000}; {
- (( i % 500 )) || echo "# $((5000-i)) to go"
- $envstore save $i $i$i$i
+if ((benchmark)) {
+ trap '' ZERR
+ echo "## some benchmarks now..."
+ TIMEFMT='%*E real, %*U user, %*S system - %P%% CPU - %J'
+
+ echo "# adding 5000 vars (this could take a _long_ time)"
+ for i in {0..5000}; {
+ (( i % 500 )) || echo "# $((5000-i)) to go"
+ $envstore save $i $i$i$i
+ }
+ echo
+
+ repeat 2 {time $envstore eval > /dev/null}
+ time $envstore rm 999 > /dev/null
+ repeat 2 {time $envstore clear}
}
-echo
-
-repeat 2 {time $envstore eval > /dev/null}
-time $envstore rm 999 > /dev/null
-repeat 2 {time $envstore clear}