mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-03-11 23:14:01 +00:00
Config debug flags are now represented as individual items, eg: servald config set debug.verbose yes servald config set debug.rhizome yes instead of aggregated, eg: servald config set debug verbose,rhizome <-- no longer works Added a debug flag "debug.all" that can be set and cleared, over which individual flag sets/clears take priority. Slimmed down dna.c by moving some globals and functions to the files where they are used. Default command line (help message) is now the new style, not the deprecated style.
149 lines
4.5 KiB
Bash
Executable File
149 lines
4.5 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_dna
|
|
}
|
|
|
|
doc_GetCreateInstanceDir="Get creates instance directory"
|
|
setup_GetCreateInstanceDir() {
|
|
setup_dna --no-mkdir
|
|
assert [ ! -d $SERVALINSTANCE_PATH ]
|
|
}
|
|
test_GetCreateInstanceDir() {
|
|
executeOk $dna config get
|
|
assert [ -d $SERVALINSTANCE_PATH ]
|
|
}
|
|
|
|
doc_SetCreateInstanceDir="Set creates instance directory"
|
|
setup_SetCreateInstanceDir() {
|
|
setup_dna --no-mkdir
|
|
assert [ ! -d $SERVALINSTANCE_PATH ]
|
|
}
|
|
test_SetCreateInstanceDir() {
|
|
executeOk $dna config set foo bar
|
|
assert [ -d $SERVALINSTANCE_PATH ]
|
|
}
|
|
|
|
doc_GetNull="Get an unset config item"
|
|
test_GetNull() {
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_SetGet="Set and get a single config item"
|
|
test_SetGet() {
|
|
executeOk $dna config set foo bar
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
}
|
|
|
|
doc_GetAll="Get all config items"
|
|
test_GetAll() {
|
|
executeOk $dna config set foo bar
|
|
executeOk $dna config set hello world
|
|
executeOk $dna 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 $dna config set foo bar
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
executeOk $dna config set foo wah
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=wah$'
|
|
}
|
|
|
|
doc_DelNull="Delete an unset config item"
|
|
test_DelNull() {
|
|
executeOk $dna config del foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_Del="Delete single config item"
|
|
test_Del() {
|
|
executeOk $dna config set foo bar
|
|
executeOk $dna config set hello world
|
|
executeOk $dna config get
|
|
assertStdoutLineCount '==' 2
|
|
executeOk $dna config del foo
|
|
executeOk $dna config get
|
|
assertStdoutLineCount '==' 1
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 0
|
|
}
|
|
|
|
doc_CaseInsensitive="Config item names are case insensitive"
|
|
test_CaseInsensitive() {
|
|
executeOk $dna config set foo bar
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
executeOk $dna config get Foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo=bar$'
|
|
executeOk $dna config set FOO wah
|
|
executeOk $dna config get foo
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^FOO=wah$'
|
|
}
|
|
|
|
doc_DotsInNames="Config item names can have internal dots"
|
|
test_DotsInNames() {
|
|
executeOk $dna config set foo.bar yes
|
|
executeOk $dna config get foo.bar
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo\.bar=yes$'
|
|
execute $dna config set foo. yes
|
|
assertExitStatus '!=' 0
|
|
execute $dna config set .foo yes
|
|
assertExitStatus '!=' 0
|
|
execute $dna config set foo..bar yes
|
|
assertExitStatus '!=' 0
|
|
executeOk $dna config set foo.x.bar yes
|
|
executeOk $dna config get foo.x.bar
|
|
assertStdoutLineCount '==' 1
|
|
assertStdoutGrep --stdout --stderr --matches=1 '^foo\.x\.bar=yes$'
|
|
}
|
|
|
|
doc_DebugFlags="Debug flags affect verbosity"
|
|
test_DebugFlags() {
|
|
executeOk $dna echo one two three
|
|
assertStderrGrep --matches=0 '\<echo:argv\['
|
|
executeOk $dna config set debug.verbose true
|
|
executeOk $dna echo one two three
|
|
assertStderrGrep --matches=3 '\<echo:argv\['
|
|
executeOk $dna config set debug.verbose false
|
|
executeOk $dna echo one two three
|
|
assertStderrGrep --matches=0 '\<echo:argv\['
|
|
}
|
|
|
|
runTests "$@"
|