210 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			210 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #! /bin/sh
 | |
| # $Id: shunit2_test_asserts.sh 312 2011-03-14 22:41:29Z kate.ward@forestent.com $
 | |
| # 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()
 | |
| {
 | |
|   tmpDir="${__shunit_tmpDir}/output"
 | |
|   mkdir "${tmpDir}"
 | |
|   stdoutF="${tmpDir}/stdout"
 | |
|   stderrF="${tmpDir}/stderr"
 | |
| 
 | |
|   MSG='This is a test message'
 | |
| }
 | |
| 
 | |
| # load and run shUnit2
 | |
| [ -n "${ZSH_VERSION:-}" ] && SHUNIT_PARENT=$0
 | |
| . ${TH_SHUNIT}
 |