mirror of https://github.com/deajan/obackup.git
207 lines
6.4 KiB
Bash
207 lines
6.4 KiB
Bash
|
#! /bin/sh
|
||
|
# $Id$
|
||
|
# vim:et:ft=sh:sts=2:sw=2
|
||
|
#
|
||
|
# Copyright 2008 Kate Ward. All Rights Reserved.
|
||
|
# Released under the LGPL (GNU Lesser General Public License)
|
||
|
#
|
||
|
# Author: kate.ward@forestent.com (Kate Ward)
|
||
|
#
|
||
|
# shUnit2 unit test for assert functions
|
||
|
|
||
|
# load test helpers
|
||
|
. ./shunit2_test_helpers
|
||
|
|
||
|
#------------------------------------------------------------------------------
|
||
|
# suite tests
|
||
|
#
|
||
|
|
||
|
commonEqualsSame()
|
||
|
{
|
||
|
fn=$1
|
||
|
|
||
|
( ${fn} 'x' 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'equal' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} "${MSG}" 'x' 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'equal; with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} 'abc def' 'abc def' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'equal with spaces' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} 'x' 'y' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'not equal' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} '' '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'null values' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} arg1 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too few arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} arg1 arg2 arg3 arg4 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
commonNotEqualsSame()
|
||
|
{
|
||
|
fn=$1
|
||
|
|
||
|
( ${fn} 'x' 'y' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not same' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} "${MSG}" 'x' 'y' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not same, with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} 'x' 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'same' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} '' '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'null values' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} arg1 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too few arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( ${fn} arg1 arg2 arg3 arg4 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
testAssertEquals()
|
||
|
{
|
||
|
commonEqualsSame 'assertEquals'
|
||
|
}
|
||
|
|
||
|
testAssertNotEquals()
|
||
|
{
|
||
|
commonNotEqualsSame 'assertNotEquals'
|
||
|
}
|
||
|
|
||
|
testAssertSame()
|
||
|
{
|
||
|
commonEqualsSame 'assertSame'
|
||
|
}
|
||
|
|
||
|
testAssertNotSame()
|
||
|
{
|
||
|
commonNotEqualsSame 'assertNotSame'
|
||
|
}
|
||
|
|
||
|
testAssertNull()
|
||
|
{
|
||
|
( assertNull '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'null' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNull "${MSG}" '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'null, with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNull 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'not null' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNull >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too few arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNull arg1 arg2 arg3 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
testAssertNotNull()
|
||
|
{
|
||
|
( assertNotNull 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull "${MSG}" 'x' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null, with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull 'x"b' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null, with double-quote' $? \
|
||
|
"${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull "x'b" >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null, with single-quote' $? \
|
||
|
"${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull 'x$b' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null, with dollar' $? \
|
||
|
"${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull 'x`b' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'not null, with backtick' $? \
|
||
|
"${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertNotNull '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'null' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
# there is no test for too few arguments as $1 might actually be null
|
||
|
|
||
|
( assertNotNull arg1 arg2 arg3 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
testAssertTrue()
|
||
|
{
|
||
|
( assertTrue 0 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'true' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue "${MSG}" 0 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'true, with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue '[ 0 -eq 0 ]' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'true condition' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue 1 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'false' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue '[ 0 -eq 1 ]' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'false condition' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'null' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too few arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertTrue arg1 arg2 arg3 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
testAssertFalse()
|
||
|
{
|
||
|
( assertFalse 1 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'false' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse "${MSG}" 1 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'false, with msg' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse '[ 0 -eq 1 ]' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertTrueWithNoOutput 'false condition' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse 0 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'true' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse '[ 0 -eq 0 ]' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'true condition' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse '' >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithOutput 'true condition' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too few arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
|
||
|
( assertFalse arg1 arg2 arg3 >"${stdoutF}" 2>"${stderrF}" )
|
||
|
th_assertFalseWithError 'too many arguments' $? "${stdoutF}" "${stderrF}"
|
||
|
}
|
||
|
|
||
|
#------------------------------------------------------------------------------
|
||
|
# suite functions
|
||
|
#
|
||
|
|
||
|
oneTimeSetUp()
|
||
|
{
|
||
|
th_oneTimeSetUp
|
||
|
|
||
|
MSG='This is a test message'
|
||
|
}
|
||
|
|
||
|
# load and run shUnit2
|
||
|
[ -n "${ZSH_VERSION:-}" ] && SHUNIT_PARENT=$0
|
||
|
. ${TH_SHUNIT}
|