From 93907d0c009d758811b54e7984337477a39f05cf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 08:49:00 +0200 Subject: Adding debian version 4.6.0-1. Signed-off-by: Daniel Baumann --- debian/tests/control | 32 +++++++++++ debian/tests/pacemaker-basic-resource.sh | 98 ++++++++++++++++++++++++++++++++ debian/tests/pacemaker-cluster-init.sh | 31 ++++++++++ debian/tests/pacemaker-node-status.sh | 76 +++++++++++++++++++++++++ debian/tests/testsuite.sh | 29 ++++++++++ debian/tests/utils.sh | 33 +++++++++++ 6 files changed, 299 insertions(+) create mode 100644 debian/tests/control create mode 100755 debian/tests/pacemaker-basic-resource.sh create mode 100755 debian/tests/pacemaker-cluster-init.sh create mode 100755 debian/tests/pacemaker-node-status.sh create mode 100755 debian/tests/testsuite.sh create mode 100755 debian/tests/utils.sh (limited to 'debian/tests') diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..e67a361 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,32 @@ +Test-Command: crm --help +Depends: crmsh +Restrictions: needs-root + +Test-Command: crm help +Depends: crmsh +Restrictions: needs-root + +Test-Command: crm --version +Depends: crmsh +Restrictions: needs-root + +Tests: utils.sh +Depends: crmsh, fence-virt +Restrictions: needs-root, allow-stderr + +Tests: testsuite.sh +Depends: crmsh, openssh-server, python3-pytest +Restrictions: needs-root + +Tests: pacemaker-basic-resource.sh +Depends: crmsh +Restrictions: needs-root, allow-stderr, isolation-container, skippable + +Tests: pacemaker-node-status.sh +Depends: crmsh +Restrictions: needs-root, allow-stderr, isolation-container, skippable + +# Test disabled because it generates broken corosync config (missing nodelist) +Tests: pacemaker-cluster-init.sh +Depends: crmsh, csync2, ntp, ufw, openssh-server, dmidecode [any-amd64 arm64 armhf any-i386], booth, booth-pacemaker +Restrictions: needs-root, allow-stderr, isolation-machine, skippable diff --git a/debian/tests/pacemaker-basic-resource.sh b/debian/tests/pacemaker-basic-resource.sh new file mode 100755 index 0000000..de2a4c4 --- /dev/null +++ b/debian/tests/pacemaker-basic-resource.sh @@ -0,0 +1,98 @@ +#!/bin/sh + +set -ex + +DAEMON_TIMEOUT=60 +CRM_TIMEOUT=5 +RSC_NAME="test" +rsc_check() +{ + if crm status | grep "$RSC_NAME[[:space:]][(]ocf::\?heartbeat:IPv6addr[)]:[[:space:]].*$1" >/dev/null; then + return 0 + else + return 1 + fi +} + +# https://bugs.launchpad.net/bugs/1828228 +ulimit -H -l unlimited 2>/dev/null || { + echo "test disabled for unprivileged namespaces" + exit 77 +} + +# +# daemons start +# + +service corosync start +service pacemaker start +sleep $DAEMON_TIMEOUT + +# +# disable stonith and quorum +# + +crm configure property stonith-enabled="false" +crm configure property no-quorum-policy="ignore" +sleep $CRM_TIMEOUT + +# +# creation & start +# + +crm configure primitive $RSC_NAME \ + ocf:heartbeat:IPv6addr \ + params ipv6addr="fe00::200" \ + cidr_netmask="64" \ + nic="lo" +sleep $CRM_TIMEOUT +crm resource start $RSC_NAME +sleep $CRM_TIMEOUT +if rsc_check "Started" ; then + : INFO resource creation and start OK +else + : ERROR failed to start resource + exit 1 +fi + +# +# restart +# + +crm resource restart $RSC_NAME +sleep $CRM_TIMEOUT +if rsc_check "Started" ; then + : INFO resource restart OK +else + : ERROR failed to restart resource + exit 1 +fi + +# +# stop +# + +crm resource stop $RSC_NAME +sleep $CRM_TIMEOUT +if rsc_check "Stopped" ; then + : INFO resource stop OK +else + : ERROR failed to stop resource + exit 1 +fi + +# +# delete +# + +crm configure delete $RSC_NAME +sleep $CRM_TIMEOUT +if ! rsc_check "Stopped" ; then + : INFO resource delete OK +else + : ERROR failed to delete resource + exit 1 +fi + +: INFO all tests OK +exit 0 diff --git a/debian/tests/pacemaker-cluster-init.sh b/debian/tests/pacemaker-cluster-init.sh new file mode 100755 index 0000000..a3cf349 --- /dev/null +++ b/debian/tests/pacemaker-cluster-init.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +set -ex + +# https://bugs.launchpad.net/bugs/1828228 +ulimit -H -l unlimited 2>/dev/null || { + echo "test disabled for unprivileged namespaces" + exit 77 +} + +# ufw currently broken without /sbin/iptables +if ! ufw status; then + test -e /sbin/iptables || ln -s /usr/sbin/iptables /sbin/iptables + test -e /sbin/ip6tables || ln -s /usr/sbin/ip6tables /sbin/ip6tables +fi + +service corosync stop + +crm cluster init --yes --name=autopkgtest --unicast + +crm cluster geo_init --yes --clusters=autopkgtest=127.2.2.2 --tickets=ticket1 +crm resource start g-booth +sleep 5 + +crm status + +crm status | grep -q booth-ip.*Started +crm status | grep -q booth-site.*Started + +: INFO all tests OK +exit 0 diff --git a/debian/tests/pacemaker-node-status.sh b/debian/tests/pacemaker-node-status.sh new file mode 100755 index 0000000..a0a2fbc --- /dev/null +++ b/debian/tests/pacemaker-node-status.sh @@ -0,0 +1,76 @@ +#!/bin/sh + +set -ex + +DAEMON_TIMEOUT=60 +CRM_TIMEOUT=5 + +# https://bugs.launchpad.net/bugs/1828228 +ulimit -H -l unlimited 2>/dev/null || { + echo "test disabled for unprivileged namespaces" + exit 77 +} + +# +# daemons start +# + +service corosync start +service pacemaker start +sleep $DAEMON_TIMEOUT + +# Get the node name as sugested in +# https://lists.clusterlabs.org/pipermail/users/2022-May/030309.html +NODE="$(crm_node -n)" +if [ -z "$NODE" ]; then + echo "Could not detect node name" + exit 1 +fi +# crmsh will try to ping the node name so make sure it can be resolved +if ! getent hosts "$NODE" >/dev/null 2>&1; then + echo "127.0.0.1 $NODE" >> /etc/hosts +fi + +# +# online +# + +crm status | grep "Online:.*$NODE" + +# +# standby +# + +crm node standby $NODE +sleep $CRM_TIMEOUT +crm status | grep "Node $NODE: standby" + +crm node online $NODE +sleep $CRM_TIMEOUT +crm status | grep "Online:.*$NODE" + +# +# maintenance +# + +crm node maintenance $NODE +sleep $CRM_TIMEOUT +crm status | grep "Node $NODE: maintenance" + +crm node ready $NODE +sleep $CRM_TIMEOUT +crm status | grep "Online:.*$NODE" + +# +# attributes +# + +crm node attribute $NODE set memory_size 1024 +crm node attribute $NODE show memory_size | grep 1024 +crm node utilization $NODE set memory 2048 +crm node utilization $NODE show memory | grep 2048 +crm node server +crm node show + +: INFO all tests OK +exit 0 diff --git a/debian/tests/testsuite.sh b/debian/tests/testsuite.sh new file mode 100755 index 0000000..842551a --- /dev/null +++ b/debian/tests/testsuite.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +# prepare test env +export PATH=$PATH:/usr/lib/pacemaker +export PYTHONPATH=/usr/share/crmsh +# test/unittests/test_report.py::test_ts_to_dt assumes UTC +export TZ=UTC + +mkdir /usr/share/crmsh/doc + +# some tests fail if the cluster is running +service pacemaker stop +service corosync stop + +cd /usr/share/crmsh/tests/unittests +printf "Running unittests...\n" +py.test-3 -vv + +cp /usr/share/pacemaker/*.rng /usr/share/crmsh/tests/unittests/schemas/ + +cd /usr/share/crmsh/tests +printf "\nRunning cibtests...\n" +./cib-tests.sh + +printf "\nRunning regressions...\n" +./regression.sh -m buildbot || true +cat crmtestout/regression.out diff --git a/debian/tests/utils.sh b/debian/tests/utils.sh new file mode 100755 index 0000000..6ff8480 --- /dev/null +++ b/debian/tests/utils.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +set -ex + +export LC_ALL=C +PKG=fence-virt + +dpkg --purge $PKG + +# package not installed +/usr/share/crmsh/utils/crm_rpmcheck.py $PKG | grep error + +# install +/usr/share/crmsh/utils/crm_pkg.py -n $PKG -s present | grep Unpacking +/usr/share/crmsh/utils/crm_rpmcheck.py $PKG | grep status +dpkg --status $PKG + +# upgrade +/usr/share/crmsh/utils/crm_pkg.py -n $PKG -s latest | grep False + +# purge +/usr/share/crmsh/utils/crm_pkg.py -n $PKG -s removed | egrep 'Removing|Purging' +/usr/share/crmsh/utils/crm_rpmcheck.py $PKG | grep error + +# clean +cd $AUTOPKGTEST_TMP +mkdir dir +touch dir/file +cp /usr/share/crmsh/utils/crm_clean.py . +$PWD/crm_clean.py $PWD/crm_clean.py $PWD/dir +if ls | grep .; then + exit 1 +fi -- cgit v1.2.3