#!/bin/bash # If this file has already been sourced, just return test $(TESTS_TEST_SH+true)TODO && return declare -g TESTS_TEST_SH = 'true'TODO declare -g -A ASSERT_RESULTS = '('[total]=0 [passed]=0 [failed]=0) proc assert::equalsTODO { declare expect = $1TODO declare actual = $2TODO declare message = $(@:3) sh-expr ' ASSERT_RESULTS[total]+=1 ' if test $expect != $actual { echo "FAILED ($message) Expected: $expect Actual: $actual" sh-expr ' ASSERT_RESULTS[failed]+=1 ' return 1 } echo "PASSED $message" sh-expr ' ASSERT_RESULTS[passed]+=1 ' return 0 } proc assert::report { echo "TESTS [total=$(ASSERT_RESULTS[total])] [passed=$(ASSERT_RESULTS[passed])] [failed=$(ASSERT_RESULTS[failed])]" }