serval-dna/tests/config

152 lines
4.9 KiB
Plaintext
Raw Normal View History

2012-04-12 08:06:27 +00:00
#!/bin/bash
# Tests for Serval DNA configuration operations.
#
# Copyright 2012 Paul Gardner-Stephen
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
source "${0%/*}/../testframework.sh"
source "${0%/*}/../testdefs.sh"
setup() {
setup_servald
2012-04-12 08:06:27 +00:00
}
doc_GetCreateInstanceDir="Get creates instance directory"
setup_GetCreateInstanceDir() {
setup
assert ! [ -d "$SERVALINSTANCE_PATH" ]
2012-04-12 08:06:27 +00:00
}
test_GetCreateInstanceDir() {
executeOk_servald config get
assert [ -d "$SERVALINSTANCE_PATH" ]
2012-04-12 08:06:27 +00:00
}
doc_SetCreateInstanceDir="Set creates instance directory"
setup_SetCreateInstanceDir() {
setup
assert ! [ -d "$SERVALINSTANCE_PATH" ]
2012-04-12 08:06:27 +00:00
}
test_SetCreateInstanceDir() {
executeOk_servald config set debug.verbose 0
assert [ -d "$SERVALINSTANCE_PATH" ]
2012-04-12 08:06:27 +00:00
}
doc_GetNull="Get an unset config item"
test_GetNull() {
executeOk_servald config get debug.verbose
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 0
}
doc_SetGet="Set and get a single config item"
test_SetGet() {
executeOk_servald config set debug.verbose yes
executeOk_servald config get debug.verbose
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 1
assertStdoutGrep --stdout --stderr --matches=1 '^debug\.verbose=yes$'
2012-04-12 08:06:27 +00:00
}
doc_GetAll="Get all config items"
test_GetAll() {
executeOk_servald config set debug.verbose true
executeOk_servald config set log.show_pid true
executeOk_servald config set server.chdir /tmp/nothing
executeOk_servald config set rhizome.enable no
executeOk_servald config get
assertStdoutLineCount '==' 4
assertStdoutGrep --stdout --matches=1 '^debug\.verbose=true$'
assertStdoutGrep --stdout --matches=1 '^log\.show_pid=true$'
assertStdoutGrep --stdout --matches=1 '^server\.chdir=/tmp/nothing$'
assertStdoutGrep --stdout --matches=1 '^rhizome\.enable=no$'
2012-04-12 08:06:27 +00:00
}
doc_SetTwice="Set a single config item twice"
test_SetTwice() {
executeOk_servald config set debug.verbose yes
executeOk_servald config get debug.verbose
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 1
assertStdoutGrep --stdout --stderr --matches=1 '^debug\.verbose=yes$'
executeOk_servald config set debug.verbose false
executeOk_servald config get debug.verbose
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 1
assertStdoutGrep --stdout --stderr --matches=1 '^debug\.verbose=false$'
2012-04-12 08:06:27 +00:00
}
doc_DelNull="Delete an unset config item"
test_DelNull() {
executeOk_servald config del debug.verbose
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 0
}
doc_Del="Delete single config item"
test_Del() {
executeOk_servald config set debug.verbose yes
executeOk_servald config set log.show_pid true
executeOk_servald config get
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 2
executeOk_servald config del debug.verbose
executeOk_servald config get
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 1
executeOk_servald config del log.show_pid
2012-04-12 08:06:27 +00:00
assertStdoutLineCount '==' 0
}
doc_CaseSensitive="Config item names are case sensitive"
test_CaseSensitive() {
execute $servald config set Debug.verbose yes
assertExitStatus --stderr '!=' 0
2012-04-12 08:06:27 +00:00
}
doc_OptionNames="Config item names must be well formed"
test_OptionNames() {
execute $servald config set debug. yes
assertExitStatus --stderr '!=' 0
execute $servald config set .verbose yes
assertExitStatus --stderr '!=' 0
execute $servald config set debug..verbose yes
assertExitStatus --stderr '!=' 0
}
2012-05-15 00:19:40 +00:00
doc_DebugFlags="Debug config options affect verbosity"
test_DebugFlags() {
executeOk_servald echo one two three
assertStderrGrep --matches=0 '\<echo:argv\['
executeOk_servald config set debug.verbose true
executeOk_servald echo one two three
assertStderrGrep --matches=3 '\<echo:argv\['
executeOk_servald config set debug.verbose false
executeOk_servald echo one two three
assertStderrGrep --matches=0 '\<echo:argv\['
}
2012-05-15 00:19:40 +00:00
doc_DebugFlagAll="Debug config options override debug.all"
test_DebugFlagAll() {
executeOk_servald config set debug.all yes
executeOk_servald echo one two three
2012-05-15 00:19:40 +00:00
assertStderrGrep --matches=3 '\<echo:argv\['
executeOk_servald config set debug.verbose false
executeOk_servald echo one two three
2012-05-15 00:19:40 +00:00
assertStderrGrep --matches=0 '\<echo:argv\['
executeOk_servald config set debug.verbose true
executeOk_servald echo one two three
2012-05-15 00:19:40 +00:00
assertStderrGrep --matches=3 '\<echo:argv\['
executeOk_servald config set debug.all off
executeOk_servald echo one two three
2012-05-15 00:19:40 +00:00
assertStderrGrep --matches=3 '\<echo:argv\['
}
2012-04-12 08:06:27 +00:00
runTests "$@"