Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 583:55c024c809ca
Begin unittests for farray.sh using "cram"
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 18 Sep 2024 00:46:17 +0200 |
| parents | 22d35878f6f8 |
| children | 7bf729bec285 |
| files | tests/farray-array.t tests/testsetup.sh |
| diffstat | 2 files changed, 91 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/farray-array.t Wed Sep 18 00:46:17 2024 +0200 @@ -0,0 +1,72 @@ +Basic tests of farray.sh's farray_XXX functions + +Shell is /bin/sh. + +Setup +===== + + $ . "${TESTDIR}/testsetup.sh" + $ _p_datadir="${TESTDIR}/../share/local-bsdtools" + $ . "${_p_datadir}/farray.sh" + +Create an empty array + + $ farray_create EMPTY + $ farray_print_length EMPTY + 0 (no-eol) + $ farray_length _var EMPTY + $ test ${_var} -eq 0 + $ farray_debug EMPTY + DEBUG: array `EMPTY' has length 0 + $ farray_destroy EMPTY + $ check_no_array_artifacts + +Create and destroy an array + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'90 ' + $ farray_print_length TEST + 5 (no-eol) + $ farray_length _var TEST + $ test ${_var} -eq 5 + $ farray_debug TEST + DEBUG: array `TEST' has length 5 + DEBUG: its contents: + DEBUG: 1: `0' + DEBUG: 2: `1' + DEBUG: 3: `2' + DEBUG: 4: `3 4 5' + DEBUG: 5: `" 678" \'90 ' + $ farray_destroy TEST + $ check_no_array_artifacts + +Create, clear and destroy an array + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'90 ' + $ farray_print_length TEST + 5 (no-eol) + $ farray_length _var TEST + $ test ${_var} -eq 5 + $ farray_debug TEST + DEBUG: array `TEST' has length 5 + DEBUG: its contents: + DEBUG: 1: `0' + DEBUG: 2: `1' + DEBUG: 3: `2' + DEBUG: 4: `3 4 5' + DEBUG: 5: `" 678" \'90 ' + $ farray_clear TEST + $ farray_print_length TEST + 0 (no-eol) + $ farray_length _var TEST + $ test ${_var} -eq 0 + $ farray_destroy TEST + $ check_no_array_artifacts + +Duplicate destruction + + $ farray_create TEST 1 2 3 + $ farray_destroy TEST + $ farray_destroy TEST + ERROR: farray `TEST' does not exist: token empty + [1] + $ check_no_array_artifacts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/testsetup.sh Wed Sep 18 00:46:17 2024 +0200 @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Test helpers for the shell unittests using cram. +# + +#: +#: Check that no global variables that hold any array storage are left. +#: +#: Returns: +#: int: 0 if no unexpected storage is left, 1 otherwise +#: +check_no_array_artifacts() { + # _farr_A_ is the storage prefix for arrays + if set | grep -E -e '^_farr_A_.*='; then + return 1 + else + return 0 + fi +}
