summaryrefslogtreecommitdiff
path: root/automated/lib/sh-test-lib
diff options
context:
space:
mode:
Diffstat (limited to 'automated/lib/sh-test-lib')
-rwxr-xr-xautomated/lib/sh-test-lib121
1 files changed, 121 insertions, 0 deletions
diff --git a/automated/lib/sh-test-lib b/automated/lib/sh-test-lib
new file mode 100755
index 0000000..15ef4e0
--- /dev/null
+++ b/automated/lib/sh-test-lib
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+LANG=C
+export LANG
+
+error_msg() {
+ local msg="$1"
+ test -z "${msg}" && msg="Unknown error"
+ printf "ERROR: %s\n" "${msg}" >&2
+ exit 1
+}
+
+warn_msg() {
+ local msg="$1"
+ test -z "${msg}" && msg="Unknown error"
+ printf "WARNING: %s\n" "${msg}" >&2
+}
+
+info_msg() {
+ local msg="$1"
+ test -z "${msg}" && msg="Unknown info"
+ printf "INFO: %s\n" "${msg}" >&1
+}
+
+check_return_fail() {
+ if [ $? -ne 0 ]; then
+ fail_test "$1"
+ return 0
+ else
+ return 1
+ fi
+}
+
+fail_test() {
+ local reason="$1"
+ echo "${test}: fail - ${reason}"
+}
+
+pass_test() {
+ echo "${test}: pass"
+}
+
+check_root() {
+ if [ "$(id -ru)" -eq 0 ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+check_return() {
+ local exit_code="$?"
+ local test="$1"
+
+ test -z "${test}" && warn_msg "Test name is empty"
+
+ if [ "${exit_code}" -ne 0 ]; then
+ echo "${test} fail" | tee -a "${RESULT_FILE}"
+ return "${exit_code}"
+ else
+ echo "${test} pass" | tee -a "${RESULT_FILE}"
+ return 0
+ fi
+}
+
+add_metric() {
+ local test="$1"
+ local measurement="$2"
+ local units="$3"
+
+ test -z "${test}" && warn_msg "Test name is empty"
+ test -z "${measurement}" && warn_msg "Test measurement is empty"
+ test -z "${units}" && warn_msg "Test units is empty"
+
+ echo "${test} pass ${measurement} ${units}" | tee -a "${RESULT_FILE}"
+}
+
+dist_name() {
+ if [ -x /usr/bin/lsb_release ]; then
+ dist="$(lsb_release -si)"
+ elif [ -f /etc/lsb-release ]; then
+ . /etc/lsb-release
+ dist="${DISTRIB_ID}"
+ elif [ -f /etc/debian_version ]; then
+ dist="Debian"
+ elif [ -f /etc/fedora-release ]; then
+ dist="Fedora"
+ elif [ -f /etc/centos-release ]; then
+ dist="CentOS"
+ else
+ dist="Unknown"
+ warn_msg "Unsupported distro: cannot determine distribution name"
+ fi
+}
+
+install_deps() {
+ local pkgs="$1"
+ local skip_install="$2"
+
+ if [ "${skip_install}" = "True" ] || [ "${skip_install}" = "true" ]; then
+ info_msg "install_deps skipped"
+ else
+ info_msg "Installing ${pkgs}"
+ dist_name
+ case "${dist}" in
+ Debian|Ubuntu)
+ apt-get update
+ apt-get install -y -q ${pkgs}
+ ;;
+ CentOS)
+ yum -e 0 -y install ${pkgs}
+ ;;
+ Fedora)
+ dnf -e 0 -y install ${pkgs}
+ ;;
+ Unknown)
+ warn_msg "Unsupported distro: package install skipped"
+ ;;
+ esac
+ fi
+}