mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-23 15:02:27 +00:00
9149c80297
The assert command now supports leading '!' args in its command, each negating the sense of the following command.
165 lines
5.2 KiB
Bash
Executable File
165 lines
5.2 KiB
Bash
Executable File
#!/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
|
|
}
|
|
|
|
doc_GetCreateInstanceDir="Get creates instance directory"
|
|
setup_GetCreateInstanceDir() {
|
|
setup
|
|
assert ! [ -d "$SERVALINSTANCE_PATH" ]
|
|
}
|
|
test_GetCreateInstanceDir() {
|
|
executeOk_servald config get
|
|
assert [ -d "$SERVALINSTANCE_PATH" ]
|
|
}
|
|
|
|
doc_SetCreateInstanceDir="Set creates instance directory"
|
|
setup_SetCreateInstanceDir() {
|
|
setup
|
|
assert ! [ -d "$SERVALINSTANCE_PATH" ]
|
|
}
|
|
test_SetCreateInstanceDir() {
|
|
executeOk_servald config set foo bar
|
|
assert [ -d "$SERVALINSTANCE_PATH" ]
|
|
}
|
|
|
|
doc_GetNull="Get an unset config item"
|
|
test_GetNull() {
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_SetGet="Set and get a single config item"
|
|
test_SetGet() {
|
|
executeOk_servald config set foo bar
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
}
|
|
|
|
doc_GetAll="Get all config items"
|
|
test_GetAll() {
|
|
executeOk_servald config set foo bar
|
|
executeOk_servald config set hello world
|
|
executeOk_servald config get
|
|
assertStdoutLineCount '==' 2
|
|
assertStdoutGrep --stdout --matches=1 '^foo=bar$'
|
|
assertStdoutGrep --stdout --matches=1 '^hello=world$'
|
|
}
|
|
|
|
doc_SetTwice="Set a single config item twice"
|
|
test_SetTwice() {
|
|
executeOk_servald config set foo bar
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
executeOk_servald config set foo wah
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=wah$'
|
|
}
|
|
|
|
doc_DelNull="Delete an unset config item"
|
|
test_DelNull() {
|
|
executeOk_servald config del foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_Del="Delete single config item"
|
|
test_Del() {
|
|
executeOk_servald config set foo bar
|
|
executeOk_servald config set hello world
|
|
executeOk_servald config get
|
|
assertStdoutLineCount '==' 2
|
|
executeOk_servald config del foo
|
|
executeOk_servald config get
|
|
assertStdoutLineCount '==' 1
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_CaseInsensitive="Config item names are case insensitive"
|
|
test_CaseInsensitive() {
|
|
executeOk_servald config set foo bar
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
executeOk_servald config get Foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^Foo=bar$'
|
|
executeOk_servald config set FOO wah
|
|
executeOk_servald config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=wah$'
|
|
}
|
|
|
|
doc_DotsInNames="Config item names can have internal dots"
|
|
test_DotsInNames() {
|
|
executeOk_servald config set foo.bar yes
|
|
executeOk_servald config get foo.bar
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo\.bar=yes$'
|
|
execute $servald config set foo. yes
|
|
assertExitStatus '!=' 0
|
|
execute $servald config set .foo yes
|
|
assertExitStatus '!=' 0
|
|
execute $servald config set foo..bar yes
|
|
assertExitStatus '!=' 0
|
|
executeOk_servald config set foo.x.bar yes
|
|
executeOk_servald config get foo.x.bar
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo\.x\.bar=yes$'
|
|
}
|
|
|
|
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\['
|
|
}
|
|
|
|
doc_DebugFlagAll="Debug config options override debug.all"
|
|
test_DebugFlagAll() {
|
|
executeOk_servald config set debug.all yes
|
|
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\['
|
|
executeOk_servald config set debug.verbose true
|
|
executeOk_servald echo one two three
|
|
assertStderrGrep --matches=3 '\<echo:argv\['
|
|
executeOk_servald config set debug.all off
|
|
executeOk_servald echo one two three
|
|
assertStderrGrep --matches=3 '\<echo:argv\['
|
|
}
|
|
|
|
runTests "$@"
|