2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-22 23:58:13 +00:00
Files
xcat-core/xCAT-test
Daniel Hilst 6edeafa438 fix(xcat-core): go-xcat asks to remove packages that are not installed
GO_XCAT_UNINSTALL_LIST names every package go-xcat installs plus the ones xCAT
has stopped producing, so a node installed before they went away is still
cleaned up. uninstall_xcat handed that whole list to the package manager, and
most of it is not installed on any one node: apt answers "Unable to locate
package" for a name it does not know and go-xcat warns once per package, while
dnf answers "No match for argument" and fails the call when nothing matches.

installed_packages() asks the local package database which of them this system
has, and uninstall_xcat and uninstall_xcat_completely pass only those on. A
node with none of them installed calls the package manager not at all.

This is also what makes a retired name in the list free to keep.

go_xcat_uninstall_installed_only.t runs uninstall_xcat with rpm and dpkg-query
answering from a fake package database and remove_package shadowed, and reads
the argument list the package manager would have been given. A filter that
kept everything and a filter that kept nothing each fail three of its four
assertions.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-16 18:25:29 -03:00
..

xCAT-test

Unit tests that run from the source checkout are split by implementation language:

Test type Location Runner
Perl unit tests xCAT-test/unit/*.t prove -r xCAT-test/unit
Shell unit tests xCAT-test/bats/*.bats bats -r xCAT-test/bats
CLI functional tests xCAT-test/autotest/testcase/ and xCAT-test/autotest/bundle/ xcattest -f <cluster.conf> -t <case> or xcattest -f <cluster.conf> -b <bundle>

Use Perl .t tests for Perl modules, Perl scripts, templates, and repository artifacts. Use BATS tests for shell-script behavior that can be exercised from the checkout by sourcing a shell library or script and shadowing external commands.

Shell behavior should not be tested by Perl tests that grep shell source. Put those tests under xCAT-test/bats instead.

See unit/README.md and bats/README.md for the detailed rules for each unit-test suite.