mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-01-29 15:43:56 +00:00
Improve test framework: tfw_cmp_version()
Also add unit tests for test framework itself
This commit is contained in:
parent
0437e4adbb
commit
ef2cc1404c
@ -840,6 +840,20 @@ tfw_quietly() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Compare the two arguments as dotted ascii decimal version strings.
|
||||
# Return 0 if they are equal, 1 if arg1 < arg2, 2 if arg1 > arg2
|
||||
tfw_cmp_version() {
|
||||
local IFS=.
|
||||
local i=0 a=($1) b=($2)
|
||||
for (( i=0; i < ${#a[@]} || i < ${#b[@]}; ++i )); do
|
||||
local ai="${a[i]:-0}"
|
||||
local bi="${b[i]:-0}"
|
||||
(( 10#$ai < 10#$bi )) && return 1
|
||||
(( 10#$ai > 10#$bi )) && return 2
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
# Append the contents of a file to the test case's stdout log. A normal 'cat'
|
||||
# to stdout would also do this, but tfw_cat echoes header and footer delimiter
|
||||
# lines around to content to help distinguish it, and also works even in a
|
||||
|
47
tests/framework
Executable file
47
tests/framework
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Tests for Serval rhizome operations.
|
||||
#
|
||||
# Copyright 2012 Serval Project, Inc.
|
||||
#
|
||||
# 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"
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
test_tfw_cmp_version() {
|
||||
execute --exit-status=1 tfw_cmp_version 1 2
|
||||
execute --exit-status=2 tfw_cmp_version 1.0.1 1.0.0
|
||||
execute --exit-status=1 tfw_cmp_version 1.0 1.1
|
||||
execute --exit-status=0 tfw_cmp_version 1 1
|
||||
execute --exit-status=1 tfw_cmp_version 2.1 2.2
|
||||
execute --exit-status=2 tfw_cmp_version 3.0.4.10 3.0.4.2
|
||||
execute --exit-status=1 tfw_cmp_version 4.08 4.08.01
|
||||
execute --exit-status=2 tfw_cmp_version 3.2.1.9.8144 3.2
|
||||
execute --exit-status=1 tfw_cmp_version 3.2 3.2.1.9.8144
|
||||
execute --exit-status=1 tfw_cmp_version 1.2 2.1
|
||||
execute --exit-status=2 tfw_cmp_version 2.1 1.2
|
||||
execute --exit-status=0 tfw_cmp_version 5.6.7 5.6.7
|
||||
execute --exit-status=0 tfw_cmp_version 1.01.1 1.1.1
|
||||
execute --exit-status=0 tfw_cmp_version 1.1.1 1.01.1
|
||||
execute --exit-status=0 tfw_cmp_version 1 1.0
|
||||
execute --exit-status=0 tfw_cmp_version 1.0 1
|
||||
execute --exit-status=0 tfw_cmp_version 1.0.2.0 1.0.2
|
||||
execute --exit-status=0 tfw_cmp_version 1..0 1.0
|
||||
execute --exit-status=0 tfw_cmp_version 1.0 1..0
|
||||
}
|
||||
|
||||
runTests "$@"
|
Loading…
x
Reference in New Issue
Block a user