tests/README: initial commit; tests/posix_env, tests/test.sh: updated to match README
This commit is contained in:
parent
014485d3c5
commit
45329ccb8c
60
tests/README
Normal file
60
tests/README
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
The testing suite contains two main trees (plus translations for strings used in
|
||||||
|
the shell scripts): the Bonsai tree and the POSIX tree:
|
||||||
|
|
||||||
|
.
|
||||||
|
├── bonsai
|
||||||
|
│ ├── test_env
|
||||||
|
│ ├── dj.sh
|
||||||
|
│ ├── false.sh
|
||||||
|
│ ├── fop.sh
|
||||||
|
│ ├── hru.sh
|
||||||
|
│ ├── intcmp.sh
|
||||||
|
│ ├── mm.sh
|
||||||
|
│ ├── strcmp.sh
|
||||||
|
│ └── true.sh
|
||||||
|
├── locales
|
||||||
|
│ ├── en_US.UTF-8
|
||||||
|
│ └── tok
|
||||||
|
├── posix
|
||||||
|
│ ├── bin
|
||||||
|
│ │ ├── cat
|
||||||
|
│ │ ├── false
|
||||||
|
│ │ └── true
|
||||||
|
│ └── posix_env
|
||||||
|
├── README
|
||||||
|
└── test.sh
|
||||||
|
|
||||||
|
The Bonsai tree tests the functionality of Harakit utilities for regressions and
|
||||||
|
other issues relating to compliance to our standards of practice.
|
||||||
|
|
||||||
|
The POSIX tree tests the use of Harakit utilities in place of the standard usage
|
||||||
|
of POSIX utilities. These scripts test the ability of Harakit to comply to POSIX
|
||||||
|
standards using its native utilities in shell scripts as a compatibility shim.
|
||||||
|
Each shell script in the top directory should contain a set of tests for each
|
||||||
|
POSIX utility and be named for that utility. The bin directory should contain
|
||||||
|
a set of shim scripts which will be imported into the path as POSIX utilities.
|
||||||
|
Each test will compare the behavior of the shim script to the real utility on
|
||||||
|
the system.
|
||||||
|
|
||||||
|
Currently, due to the limitations of POSIX shell quoting, a subset of argument
|
||||||
|
parsing is supported: arguments containing characters from POSIX’s Portable
|
||||||
|
Filename Character Set [0].
|
||||||
|
|
||||||
|
The bonsai/test_env and posix/posix_env files contain prerequisite shared
|
||||||
|
environments for each of the tests. These scripts both contain lines which set
|
||||||
|
the shell to write all commands run in them (-x) and to fail if any command
|
||||||
|
fails (-e). See set(1p) for more information.
|
||||||
|
|
||||||
|
Both sets of tests also inherit the environment set by the test.sh script, which
|
||||||
|
sets the $BIN environment variable to the bin directory at the root of the
|
||||||
|
project for easy and idiomatic access to the built Harakit binaries. When
|
||||||
|
calling the POSIX test scripts, test.sh also sets the variable $realutil to be
|
||||||
|
the absolute path to the currently tested utility’s counterpart on the system.
|
||||||
|
|
||||||
|
[0] <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_282>
|
||||||
|
|
||||||
|
--
|
||||||
|
Copyright © 2024 Emma Tebibyte <emma@tebibyte.media>
|
||||||
|
|
||||||
|
This work is licensed under CC BY-SA 4.0. To view a copy of this license, visit
|
||||||
|
<http://creativecommons.org/licenses/by-sa/4.0/>.
|
@ -1,3 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
PATH="$PWD/bin:$PATH"
|
PATH="$PWD/bin:$PATH"
|
||||||
|
@ -28,9 +28,11 @@ for script in tests/bonsai/*.sh; do
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
done
|
done
|
||||||
|
|
||||||
for test in tests/posix/*.sh; do
|
for test_util in tests/posix/*.sh; do
|
||||||
|
realutil="$(command -v "$(printf '%s\n' "$test" | sed 's/\.sh$//g')")"
|
||||||
|
export realutil
|
||||||
export PATH="$BIN:$PATH"
|
export PATH="$BIN:$PATH"
|
||||||
printf '%s: %s: %s\n' "$0" "$test" "$TEST_STR"
|
printf '%s: %s: %s\n' "$0" "$test" "$TEST_STR"
|
||||||
"$utility"
|
"$test_util"
|
||||||
printf '\n'
|
printf '\n'
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user