#!/bin/bash set -e REPORT_DIRECTORY='reports/' usage() { printf "Usage: %s \n\n" "$0" printf "Usage example: %s CE\n" "$0" } if [ $# -lt 1 ] ; then usage >&2 exit 1 fi TYPE=$(echo "$1"| tr '[:upper:]' '[:lower:]') case "${TYPE}" in ce|pro) echo "Requested system tests for supported type '${TYPE}', continue..." ;; *) echo "ERRRO: Unknown type '$1'" >&2 ; usage >&2 ; exit 1 ;; esac goss="goss-0.2.3-linux-amd64" if [ ! -x "/usr/sbin/${goss}" ] ; then echo "Downloading goss and installing as /usr/sbin/${goss}" curl -L "https://deb.sipwise.com/files/${goss}" > "/usr/sbin/${goss}" chmod +x "/usr/sbin/${goss}" fi rm -f /usr/sbin/goss ln -s "/usr/sbin/${goss}" /usr/sbin/goss host_yml_file="/etc/ngcp-config/config.$(hostname).yml" if [ -n "${SKIP_DNS_CHECK_TEST}" ] || [ -n "${SKIP_STRICT_HOSTNAME_TEST}" ] ; then echo "Configuring host specific YML config: ${host_yml_file}" cat > "${host_yml_file}" << EOF --- sipwise: system_tester: skip_dns_check_test: ${SKIP_DNS_CHECK_TEST:-false} skip_strict_hostname_test: ${SKIP_STRICT_HOSTNAME_TEST:-false} EOF else # remove the file if exist from the previous run rm -f "${host_yml_file}" fi echo "Rebuilding test configs in /etc/ngcp-test/" ngcpcfg build /etc/ngcp-test/* rm -f "${host_yml_file}" rm -rf "${REPORT_DIRECTORY}" mkdir -p "${REPORT_DIRECTORY}" TAP_RESULTS="${REPORT_DIRECTORY}/goss_${TYPE}_results.tap" goss -g "/etc/ngcp-tests/${TYPE}/goss.json" validate --format tap > "${TAP_RESULTS}"