harakit/tests
2024-08-04 09:05:20 -06:00
..
bonsai tests/bonsai: intcmp.mk: add a comment 2024-08-04 09:05:20 -06:00
posix tests/README: initial commit; tests/posix_env, tests/test.sh: updated to match README 2024-07-07 19:19:38 -06:00
README tests/README: initial commit; tests/posix_env, tests/test.sh: updated to match README 2024-07-07 19:19:38 -06:00
tests.mk tests: converted to Makefiles 2024-08-02 17:29:30 -06:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 POSIXs 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 utilitys 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/>.