kward / shunit2

shUnit2 is a xUnit based unit test framework for Bourne based shell scripts.
Apache License 2.0
1.58k stars 212 forks source link

shunit2 has not been tested with the proper shell (and the current actual test has been failing) #121

Open ko1nksm opened 5 years ago

ko1nksm commented 5 years ago

shunit2_misc_test.sh is tested with the shell that set in the environment variable $SHELL.

e.g.

# Note: the test script is prefixed with '#' chars so that shUnit2 does not
# incorrectly interpret the embedded functions as real functions.
testUnboundVariable() {
  unittestF="${SHUNIT_TMPDIR}/unittest"
  sed 's/^#//' >"${unittestF}" <<EOF
## Treat unset variables as an error when performing parameter expansion.
#set -u
#
#boom() { x=\$1; }  # This function goes boom if no parameters are passed!
#test_boom() {
#  assertEquals 1 1
#  boom  # No parameter given
#  assertEquals 0 \$?
#}
#SHUNIT_COLOR='none'
#. ${TH_SHUNIT}
EOF
  ( exec "${SHELL:-sh}" "${unittestF}" >"${stdoutF}" 2>"${stderrF}" )
  assertFalse 'expected a non-zero exit value' $?
  grep '^ASSERT:unknown failure' "${stdoutF}" >/dev/null
  assertTrue 'assert message was not generated' $?

However $SHELL is not the current running shell, but the shell when login.

test_runner tries to test all installed shells, but it test only login shell (probably bash only).

I did a quick hack to test, then the current (ba130d6 and v2.1.7) test failed.

(note: $SHUNIT_SHELL was used instead of $SHELL on v2.1.7)

$ git diff
diff --git a/test_runner b/test_runner
index a9871e3..60fde40 100755
--- a/test_runner
+++ b/test_runner
@@ -129,6 +129,7 @@ EOF

     # Check for existence of shell.
     shell_bin=${shell}
+    export SHELL=${shell} # or SHUNIT_SHELL=${shell} on v2.1.7
     shell_name=''
     shell_present=${RUNNER_FALSE}
     case ${shell} in
Result of ./test_runner ```console $ ./test_runner #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Linux 5.0.0-25-generic #26-Ubuntu SMP Thu Aug 1 12:04:58 UTC 2019 x86_64 x86_64 OS Name: Linux OS Version: Ubuntu 19.04 ### Test run info. shells: /bin/sh ash /bin/bash /bin/dash /bin/ksh /bin/pdksh /bin/zsh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/sh. # shell name: sh shell version: unknown --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue69 testIssue77 testIssue84 ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue84() returned non-zero return code. testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. FAILED (failures=2) --- Executing the 'shunit2_standalone' test suite. --- #------------------------------------------------------------------------------ # Running the test suite with ash. # shell name: ash shell version: 1.27.2 --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue69 testIssue77 testIssue84 ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue84() returned non-zero return code. testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. FAILED (failures=2) --- Executing the 'shunit2_standalone' test suite. --- #------------------------------------------------------------------------------ # Running the test suite with /bin/bash. # shell name: bash shell version: 5.0.3(1)-release --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue69 testIssue77 testIssue84 testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. OK --- Executing the 'shunit2_standalone' test suite. --- #------------------------------------------------------------------------------ # Running the test suite with /bin/dash. # shell name: dash shell version: 0.5.10.2-4ubuntu1 --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue69 testIssue77 testIssue84 ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue84() returned non-zero return code. testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. FAILED (failures=2) --- Executing the 'shunit2_standalone' test suite. --- #------------------------------------------------------------------------------ # Running the test suite with /bin/ksh. # shell name: ksh shell version: AJM-93u+-2012-08-01-$ --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:expected a non-zero exit value ASSERT:assert message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 testIssue69 testIssue77 testIssue84 ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue84() returned non-zero return code. testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. FAILED (failures=6) --- Executing the 'shunit2_standalone' test suite. --- #------------------------------------------------------------------------------ # Running the test suite with /bin/pdksh. # runner:WARN unable to run tests with the pdksh shell #------------------------------------------------------------------------------ # Running the test suite with /bin/zsh. # shell name: zsh shell version: 5.5.1 --- Executing the 'shunit2_args' test suite. --- non_default_test test_non_default_ran Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse Ran 10 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailNotEquals testFailSame Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNull was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue84() returned non-zero return code. testPrepForSourcing testEscapeCharInStr testEscapeCharInStr_specialChars testExtractTestFunctions testIssue54 testColors testColorsWitoutTERM Ran 13 tests. FAILED (failures=21) --- Executing the 'shunit2_standalone' test suite. --- ```
osamuaoki commented 4 years ago

Actually, $SHELL is set by bash and some shells but not set by dash. So controlled build environment with cleaned environment variable under dash has undefined $SHELL.

This patch fixed error for testIssue84 for me for bash build-test started on dash. But dash still fails for dash build-test started on dash.

Key difference in set -x log is BASH is lead by 3 +++

+++ assertTrue 'failure message for assertFalse was not generated' 0

DASH is lead by +

+ assertTrue failure message for assertFalse was not generated 1

Also right most value is different.

FULL LOG

BASH (with set -x):

testIssue84
+++ unittestF=/tmp/shunit.b5sPS5/tmp/unittest
+++ sed 's/^#//'
+++ exec /bin/bash /tmp/shunit.b5sPS5/tmp/unittest
+++ grep '^FAILED' /tmp/shunit.b5sPS5/tmp/stdout
+++ assertTrue 'failure message for assertFalse was not generated' 0
+++ eval '__shunit_lineno="";' if command '[' '"${1:-}"' = '"--lineno"' '];' then command '[' -n '"$2"' ']' '&&' '__shunit_lineno="[$2]' '";' shift '2;' fi
++++ __shunit_lineno=
++++ command '[' 'failure message for assertFalse was not generated' = --lineno ']'
++++ '[' 'failure message for assertFalse was not generated' = --lineno ']'
+++ command '[' 2 -lt 1 -o 2 -gt 2 ']'
+++ '[' 2 -lt 1 -o 2 -gt 2 ']'
+++ _shunit_shouldSkip
+++ command '[' 1 -eq 1 ']'
+++ '[' 1 -eq 1 ']'
+++ return 1
+++ shunit_message_=
+++ command '[' 2 -eq 2 ']'
+++ '[' 2 -eq 2 ']'
+++ shunit_message_='failure message for assertFalse was not generated'
+++ shift
+++ shunit_condition_=0
++++ expr 0 : '\([0-9]*\)'
+++ shunit_match_=0
+++ shunit_return=0
+++ command '[' -z 0 ']'
+++ '[' -z 0 ']'
+++ command '[' -n 0 -a 0 = 0 ']'
+++ '[' -n 0 -a 0 = 0 ']'
+++ command '[' 0 -ne 0 ']'
+++ '[' 0 -ne 0 ']'
+++ command '[' 0 -eq 0 ']'
+++ '[' 0 -eq 0 ']'
+++ _shunit_assertPass
++++ expr 18 + 1
+++ __shunit_assertsPassed=19
++++ expr 18 + 1
+++ __shunit_assertsTotal=19
+++ unset shunit_message_ shunit_condition_ shunit_match_
+++ return 0
+++ set +x

DASH:

testIssue84
+ unittestF=/tmp/shunit.y5DlXm/tmp/unittest
+ sed s/^#//
+ exec /bin/dash /tmp/shunit.y5DlXm/tmp/unittest
+ grep ^FAILED /tmp/shunit.y5DlXm/tmp/stdout
+ assertTrue failure message for assertFalse was not generated 1
+ eval __shunit_lineno=""; if command [ "${1:-}" = "--lineno" ]; then command [ -n "$2" ] && __shunit_lineno="[$2] "; shift 2; fi
+ __shunit_lineno=
+ command [ failure message for assertFalse was not generated = --lineno ]
+ command [ 2 -lt 1 -o 2 -gt 2 ]
+ _shunit_shouldSkip
+ command [ 1 -eq 1 ]
+ return 1
+ shunit_message_=
+ command [ 2 -eq 2 ]
+ shunit_message_=failure message for assertFalse was not generated
+ shift
+ shunit_condition_=1
+ expr 1 : \([0-9]*\)
+ shunit_match_=1
+ shunit_return=0
+ command [ -z 1 ]
+ command [ -n 1 -a 1 = 1 ]
+ command [ 1 -ne 0 ]
+ shunit_return=1
+ command [ 1 -eq 0 ]
+ _shunit_assertFail failure message for assertFalse was not generated
+ __shunit_testSuccess=1
+ _shunit_incFailedCount
+ expr 0 + 1
+ __shunit_assertsFailed=1
+ expr 18 + 1
+ __shunit_assertsTotal=19
+ [ 1 -gt 0 ]
+ echo \033[1;31mASSERT:\033[0mfailure message for assertFalse was not generated
ASSERT:failure message for assertFalse was not generated
+ unset shunit_message_ shunit_condition_ shunit_match_
+ return 1
+ set +x
osamuaoki commented 4 years ago

I have problem sourcing following script;

SH="/bin/dash"                                                                            
echo "SHELL='$SHELL'"
env -i SHELL=$SHELL bash ./test_runner -s${SH} -tshunit2_misc_test.sh
env -i SHELL=$SHELL dash ./test_runner -s${SH} -tshunit2_misc_test.sh
env -i SHELL=$SHELL  ksh ./test_runner -s${SH} -tshunit2_misc_test.sh
env -i SHELL=$SHELL mksh ./test_runner -s${SH} -tshunit2_misc_test.sh

By changing first line to use /bin/bash, this thing works like charm.

osamuaoki commented 4 years ago

Hmmm... even without patch, bash doesn't fail. even with patch, dash fails. Maybe I am getting confused.

I decided to test shunit2_misc_test.sh only for bash for Debian packaging for now. All others are tested for 5 shells: /bin/bash /bin/dash /bin/ksh /bin/mksh /bin/zsh

Is it OK to release 2.1.8pre to Debian unstable repository? Debian has 2.1.6 variant now.

Thanks for your nice package.

osamuaoki commented 4 years ago

Now I see what was happening.

The strange ${SHELL-sh} in shunit2_misc_test.sh is almost meant to use bash no matter what shell test_runner requests. That means cheating on testing code for each shell. That is not right thing to do.

When this is invoked from interactive bash shell $SHELL is already set as bash and bash is used.

But it it is started from other shell like:

 $ env -i dash ./test_runner -tshunit2_misc_test.sh

Things get bad nowadays.

This cheating worked mostly on old Ubuntu/Debian where /bin/sh was linked to bash. No more. /bin/sh is linked to dash now. So if you still want to cheat like this, ${SHELL-bash} needs to be here.

But that cheating fails on ksh since:

So if we really have to cheat, use "bash" there.

I think this cheating seems to beat the purpose of having these test scripts.

dash:

...
TestIssue84
ASSERT:failure message for assertFalse was not generated
shunit2:ERROR testIssue84() returned non-zero return code.
...
testColors
ASSERT:expected:<16> but was:<256>
shunit2:ERROR testColors() returned non-zero return code.
...

ksh:

shell name: ksh
shell version: AJM-93u+-2012-08-01-$

--- Executing the 'shunit2_misc' test suite. ---
./shunit2_misc_test.sh[315]: .: line 1282: PATH: parameter not set
./shunit2_misc_test.sh[970]: tearDown: not found [No such file or directory]
shunit2:WARN tearDown() returned non-zero return code.
./shunit2_misc_test.sh[973]: oneTimeTearDown: not found [No such file or directory]
shunit2:WARN oneTimeTearDown() returned non-zero return code.
ASSERT:unknown failure encountered running a test

Ran 0 tests.

FAILED (failures=1)

mksh, zsh -- looks same as dash since it uses dash by cheating under modern Debian.

(If I set SHELL to something, more errors come out from non-bash shells.)

I think we need to make test case for dash at least.

williamdes commented 3 years ago

On Ubuntu

$ ./shunit2_misc_test.sh
testUnboundVariable
testIssue7
testIssue29
testIssue69
testIssue77
testIssue84
Shell : /bin/bash
/bin/bash /tmp/shunit.RUnlAy/tmp/unittest /tmp/shunit.RUnlAy/tmp/stdout /tmp/shunit.RUnlAy/tmp/stderr
----------- stdoutf -----------
--- test_syntax_error

Ran 1 test.

FAILED (failures=1)
----------- stdoutfend -----------
----------- stderrF -----------
/tmp/shunit.RUnlAy/tmp/unittest: ligne 2: ${!#3442} : mauvaise substitution
shunit2:ERROR test_syntax_error() returned non-zero return code.
----------- stderrFend -----------
testPrepForSourcing
testEscapeCharInStr
testEscapeCharInStr_specialChars
testExtractTestFunctions
testIssue54
testColors
testColorsWitoutTERM

Ran 13 tests.

OK

On Alpine

/app/shunit2-2.1.8 # ./shunit2_misc_test.sh 
testUnboundVariable
testIssue7
testIssue29
testIssue69
testIssue77
testIssue84
Shell : sh
sh /tmp/shunit.PdGOOP/tmp/unittest /tmp/shunit.PdGOOP/tmp/stdout /tmp/shunit.PdGOOP/tmp/stderr
----------- stdoutf -----------
--- test_syntax_error

Ran 1 test.

OK
----------- stdoutfend -----------
----------- stderrF -----------
/tmp/shunit.PdGOOP/tmp/unittest: eval: line 2: -334: not found
----------- stderrFend -----------
ASSERT:failure message for assertFalse was not generated
shunit2:ERROR testIssue84() returned non-zero return code.
testPrepForSourcing
testEscapeCharInStr
testEscapeCharInStr_specialChars
testExtractTestFunctions
testIssue54
testColors
testColorsWitoutTERM

Ran 13 tests.

FAILED (failures=2)

SHELL="/bin/bash" ./test_runner made it work, thank you ! Ref: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/15811

For the colors error

env -i dash ./test_runner -tshunit2_misc_test.sh did help me reproduce it

#------------------------------------------------------------------------------
# Running the test suite with /bin/zsh.
#
shell name: zsh
shell version: 5.8

--- Executing the 'shunit2_misc' test suite. ---
testUnboundVariable
testIssue7
testIssue29
testIssue69
testIssue77
testIssue84
Shell : sh
sh /tmp/shunit.OpClAb/tmp/unittest /tmp/shunit.OpClAb/tmp/stdout /tmp/shunit.OpClAb/tmp/stderr
----------- stdoutf -----------
--- test_syntax_error

Ran 1 test.

OK
----------- stdoutfend -----------
----------- stderrF -----------
/tmp/shunit.OpClAb/tmp/unittest: eval: line 2: -334: not found
----------- stderrFend -----------
ASSERT:failure message for assertFalse was not generated
shunit2:ERROR testIssue84() returned non-zero return code.
testPrepForSourcing
testEscapeCharInStr
testEscapeCharInStr_specialChars
testExtractTestFunctions
testIssue54
testColors
------- testColors ------------
got: 16
want: 16
------- testColorsend------------
------- testColors ------------
got: 
want: 256
------- testColorsend------------
ASSERT:expected:<> but was:<256>
shunit2:ERROR testColors() returned non-zero return code.
[: out of range
testColorsWitoutTERM

Ran 13 tests.

FAILED (failures=4)
williamdes commented 3 years ago

https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/15811/diffs#diff-content-c0aacc0b408cf0f93eef08eee49f4095d558e0d8 will fix shunit2_macros_test

kward commented 2 years ago

Could you let me know if these are still broken on HEAD?

ko1nksm commented 2 years ago

It's still broken.

I am using zsh as my interactive shell on macOS. In other words, SHELL=/bin/zsh. When I run ./test_runner, the test fails.

``` $ echo "$SHELL" /bin/zsh $ ./test_runner #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/sh ash /bin/bash /bin/dash /bin/ksh /bin/mksh /bin/zsh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/sh. # shell name: sh shell version: 3.2.57(1)-release --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/sh not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16) runner:WARN /bin/sh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK #------------------------------------------------------------------------------ # Running the test suite with ash. # runner:WARN unable to run tests with the ash shell #------------------------------------------------------------------------------ # Running the test suite with /bin/bash. # shell name: bash shell version: 3.2.57(1)-release --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/bash not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16) runner:WARN /bin/bash not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK #------------------------------------------------------------------------------ # Running the test suite with /bin/dash. # shell name: dash shell version: unknown --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/dash not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16,skipped=1) runner:WARN /bin/dash not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK #------------------------------------------------------------------------------ # Running the test suite with /bin/ksh. # shell name: ksh shell version: Version AJM 93u+ 2012-08-01 --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/ksh not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16,skipped=1) runner:WARN /bin/ksh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK #------------------------------------------------------------------------------ # Running the test suite with /bin/mksh. # runner:WARN unable to run tests with the mksh shell #------------------------------------------------------------------------------ # Running the test suite with /bin/zsh. # shell name: zsh shell version: 5.8 --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/zsh not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16,skipped=1) runner:WARN /bin/zsh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
ko1nksm commented 2 years ago

Additional test results.

SHELL=/bin/sh ./test_runner -s /bin/sh [OK] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/sh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/sh. # shell name: sh shell version: 3.2.57(1)-release --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage testStartSkippingWithoutMessage Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue54 testIssue69 testIssue77 testIssue84 testIssue123 testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. OK --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
SHELL=/bin/bash ./test_runner -s /bin/bash [OK] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/bash tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/bash. # shell name: bash shell version: 3.2.57(1)-release --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage testStartSkippingWithoutMessage Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue54 testIssue69 testIssue77 testIssue84 testIssue123 testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. OK --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
SHELL=/bin/dash ./test_runner -s /bin/dash [FAILED] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/dash tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/dash. # shell name: dash shell version: unknown --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage testStartSkippingWithoutMessage Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue54 testIssue69 testIssue77 testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=1,skipped=1) runner:WARN /bin/dash not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
SHELL=/bin/ksh ./test_runner -s /bin/ksh [FAILED] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/ksh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/ksh. # shell name: ksh shell version: Version AJM 93u+ 2012-08-01 --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage testStartSkippingWithoutMessage Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:expected a non-zero exit value ASSERT:assert message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 testIssue54 testIssue69 testIssue77 testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=4,skipped=1) runner:WARN /bin/ksh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
SHELL=/bin/zsh ./test_runner -s /bin/zsh [FAILED] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /bin/zsh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /bin/zsh. # shell name: zsh shell version: 5.8 --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage ASSERT:skipping message was not generated testStartSkippingWithoutMessage Ran 3 tests. FAILED (failures=1) runner:WARN /bin/zsh not passing --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable ASSERT:assert message was not generated ASSERT:test count message was not generated ASSERT:failure message was not generated shunit2:ERROR testUnboundVariable() returned non-zero return code. testIssue7 testIssue29 ASSERT:expected:<0> but was:<1> testIssue54 testIssue69 ASSERT:failure message for assertEquals was not generated ASSERT:failure message for assertNotEquals was not generated ASSERT:failure message for assertNotNull was not generated ASSERT:failure message for assertSame was not generated ASSERT:failure message for assertNotSame was not generated ASSERT:failure message for assertTrue was not generated ASSERT:failure message for assertFalse was not generated shunit2:ERROR testIssue69() returned non-zero return code. testIssue77 ASSERT:failure of oneTimeSetUp() did not end test ASSERT:failure of setUp() did not end test ASSERT:failure of tearDown() did not end test ASSERT:failure of oneTimeTearDown() did not end test shunit2:ERROR testIssue77() returned non-zero return code. testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=16,skipped=1) runner:WARN /bin/zsh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
SHELL=/usr/local/bin/mksh ./test_runner -s /usr/local/bin/mksh [FAILED] ``` #------------------------------------------------------------------------------ # System data. # $ uname -mprsv Darwin 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64 i386 OS Name: macOS Big Sur OS Version: 11.6 ### Test run info. shells: /usr/local/bin/mksh tests: shunit2_args_test.sh shunit2_asserts_test.sh shunit2_failures_test.sh shunit2_general_test.sh shunit2_macros_test.sh shunit2_misc_test.sh shunit2_shopt_test.sh shunit2_standalone_test.sh #------------------------------------------------------------------------------ # Running the test suite with /usr/local/bin/mksh. # shell name: mksh shell version: @(#)MIRBSD KSH R59 2020/10/31 --- Executing the 'shunit2_args' test suite. --- custom_test testCustomTestRan Ran 2 tests. OK --- Executing the 'shunit2_asserts' test suite. --- testAssertEquals testAssertNotEquals testAssertSame testAssertNotSame testAssertContains testAssertNotContains testAssertNull testAssertNotNull testAssertTrue testAssertFalse testTooFewArguments testTooManyArguments Ran 12 tests. OK --- Executing the 'shunit2_failures' test suite. --- testFail testFailsWithArgs testTooFewArguments testTooManyArguments Ran 4 tests. OK --- Executing the 'shunit2_general' test suite. --- testSkipping testStartSkippingWithMessage testStartSkippingWithoutMessage Ran 3 tests. OK --- Executing the 'shunit2_macros' test suite. --- test:WARN ${LINENO} is not working for this shell. Tests will be skipped. testAssertEquals testAssertNotEquals testSame testNotSame testNull testNotNull testAssertTrue testAssertFalse testFail testFailNotEquals testFailSame testFailNotSame Ran 12 tests. OK (skipped=24) --- Executing the 'shunit2_misc' test suite. --- testUnboundVariable testIssue7 testIssue29 testIssue54 testIssue69 testIssue77 testIssue84 ASSERT:failure message was not generated shunit2:ERROR testIssue84() returned non-zero return code. testIssue123 shunit2:WARN [skipping] The ${BASH_SUBSHELL} variable is unavailable in this shell. testPrepForSourcing testExtractTestFunctions testColors testColorsWitoutTERM Ran 12 tests. FAILED (failures=1,skipped=1) runner:WARN /usr/local/bin/mksh not passing --- Executing the 'shunit2_shopt' test suite. --- testNullglob Ran 1 test. OK (skipped=2) --- Executing the 'shunit2_standalone' test suite. --- testStandalone Ran 1 test. OK ```
williamdes commented 2 years ago

Can someone help me fixing this error ? I am trying to package shunit2 into Debian (https://github.com/kward/shunit2/issues/155)

On my workstation tests pass but not on a CI: https://salsa.debian.org/debian/shunit2/-/jobs/2774040#L1015

shunit2:ERROR testIssue84() returned non-zero return code.

PS: https://github.com/cezanne/shunit2/commit/e736e3e789a7f8fc04aa8959aec55356554b9ea8 does not work