Introduce script to save test results in files according to platform (savetest.sh)
Test results are supposed to be added to releases
This commit is contained in:
1
test/.gitignore
vendored
Normal file
1
test/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
results
|
151
test/distro.sh
Normal file
151
test/distro.sh
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
# Detects which OS and if it is Linux then it will detect which Linux Distribution.
|
||||||
|
|
||||||
|
OS=`uname -s`
|
||||||
|
REV=`uname -r`
|
||||||
|
MACH=`uname -m`
|
||||||
|
|
||||||
|
if [ "${OS}" = "SunOS" ] ; then
|
||||||
|
OS=Solaris
|
||||||
|
ARCH=`uname -p`
|
||||||
|
OSSTR="${OS} ${REV}(${ARCH} `uname -v`)"
|
||||||
|
|
||||||
|
elif [ "${OS}" = "AIX" ] ; then
|
||||||
|
OSSTR="${OS} `oslevel` (`oslevel -r`)"
|
||||||
|
|
||||||
|
elif [ "${OS}" = "Linux" ] ; then
|
||||||
|
KERNEL=`uname -r`
|
||||||
|
|
||||||
|
if [ -f /etc/fedora-release ]; then
|
||||||
|
DIST=$(cat /etc/fedora-release | awk '{print $1}')
|
||||||
|
REV=`cat /etc/fedora-release | sed s/.*release\ // | sed s/\ .*//`
|
||||||
|
|
||||||
|
elif [ -f /etc/redhat-release ] ; then
|
||||||
|
DIST=$(cat /etc/redhat-release | awk '{print $1}')
|
||||||
|
if [ "${DIST}" = "CentOS" ]; then
|
||||||
|
DIST="CentOS"
|
||||||
|
IGNORE_OS_RELEASE=1 # https://bugs.centos.org/view.php?id=8359
|
||||||
|
elif [ "${DIST}" = "CloudLinux" ]; then
|
||||||
|
DIST="CloudLinux"
|
||||||
|
elif [ "${DIST}" = "Mandriva" ]; then
|
||||||
|
DIST="Mandriva"
|
||||||
|
PSEUDONAME=`cat /etc/mandriva-release | sed s/.*\(// | sed s/\)//`
|
||||||
|
REV=`cat /etc/mandriva-release | sed s/.*release\ // | sed s/\ .*//`
|
||||||
|
elif [ -f /etc/oracle-release ]; then
|
||||||
|
DIST="Oracle"
|
||||||
|
elif [ -f /etc/rockstor-release ]; then
|
||||||
|
DIST="Rockstor"
|
||||||
|
else
|
||||||
|
DIST="RedHat"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PSEUDONAME=`cat /etc/redhat-release | sed s/.*\(// | sed s/\)//`
|
||||||
|
REV=`cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//`
|
||||||
|
|
||||||
|
elif [ -f /etc/mandrake-release ] ; then
|
||||||
|
DIST='Mandrake'
|
||||||
|
PSEUDONAME=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//`
|
||||||
|
REV=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//`
|
||||||
|
|
||||||
|
elif [ -f /etc/devuan_version ] ; then
|
||||||
|
DIST="Devuan `cat /etc/devuan_version`"
|
||||||
|
REV=""
|
||||||
|
|
||||||
|
elif [ -f /etc/debian_version ] ; then
|
||||||
|
DIST="Debian `cat /etc/debian_version`"
|
||||||
|
REV=""
|
||||||
|
IGNORE_OS_RELEASE=1
|
||||||
|
if [ -f /usr/bin/lsb_release ] ; then
|
||||||
|
ID=`lsb_release -i | awk -F ':' '{print $2}' | sed 's/ //g'`
|
||||||
|
fi
|
||||||
|
if [ "${ID}" = "Raspbian" ] ; then
|
||||||
|
DIST="Raspbian `cat /etc/debian_version`"
|
||||||
|
fi
|
||||||
|
if [ -f /usr/bin/pveversion ]; then
|
||||||
|
DIST="${DIST}/PVE `/usr/bin/pveversion | cut -d '/' -f 2`"
|
||||||
|
fi
|
||||||
|
if [ -f /usr/bin/pmgversion ]; then
|
||||||
|
# pmgversion requires root permissions to run, please add NOPASSWD setting to visudo.
|
||||||
|
DIST="${DIST}/PMG `sudo /usr/bin/pmgversion | cut -d '/' -f 2`"
|
||||||
|
fi
|
||||||
|
if [ -f /etc/dogtag ]; then
|
||||||
|
DIST=`cat /etc/dogtag`
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ -f /etc/gentoo-release ] ; then
|
||||||
|
DIST="Gentoo"
|
||||||
|
REV=$(tr -d '[[:alpha:]]' </etc/gentoo-release | tr -d " ")
|
||||||
|
|
||||||
|
elif [ -f /etc/arch-release ] ; then
|
||||||
|
DIST="Arch Linux"
|
||||||
|
REV="" # Omit version since Arch Linux uses rolling releases
|
||||||
|
IGNORE_LSB=1 # /etc/lsb-release would overwrite $REV with "rolling"
|
||||||
|
|
||||||
|
elif [ -f /etc/photon-release ] ; then
|
||||||
|
DIST=$(head -1 < /etc/photon-release)
|
||||||
|
REV=$(sed -n -e 's/^.*PHOTON_BUILD_NUMBER=//p' /etc/photon-release)
|
||||||
|
IGNORE_LSB=1 # photon os does not have /etc/lsb-release nor lsb_release
|
||||||
|
|
||||||
|
elif [ -f /etc/openwrt_version ] ; then
|
||||||
|
DIST="OpenWrt"
|
||||||
|
REV=$(cat /etc/openwrt_version)
|
||||||
|
|
||||||
|
elif [ -f /etc/pld-release ] ; then
|
||||||
|
DIST=$(cat /etc/pld-release)
|
||||||
|
REV=""
|
||||||
|
|
||||||
|
elif [ -f /etc/SuSE-release ] ; then
|
||||||
|
DIST=$(echo SLES $(grep VERSION /etc/SuSE-release | cut -d = -f 2 | tr -d " "))
|
||||||
|
REV=$(echo SP$(grep PATCHLEVEL /etc/SuSE-release | cut -d = -f 2 | tr -d " "))
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x "$(command -v awk)" ]; then # some distros do not ship with awk
|
||||||
|
if [ "`uname -a | awk '{print $(NF)}'`" = "DD-WRT" ] ; then
|
||||||
|
DIST="dd-wrt"
|
||||||
|
fi
|
||||||
|
if [ "`uname -a | awk '{print $(NF)}'`" = "ASUSWRT-Merlin" ] ; then
|
||||||
|
DIST="ASUSWRT-Merlin"
|
||||||
|
REV=`nvram show | grep buildno= | egrep -o '[0-9].[0-9].[0-9]'` > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# try standardized os version methods
|
||||||
|
if [ -f /etc/os-release -a "${IGNORE_OS_RELEASE}" != 1 ] ; then
|
||||||
|
. /etc/os-release
|
||||||
|
STD_DIST="$NAME"
|
||||||
|
STD_REV="$VERSION_ID"
|
||||||
|
elif [ -f /etc/lsb-release -a "${IGNORE_LSB}" != 1 ] ; then
|
||||||
|
STD_DIST=$(lsb_release -si)
|
||||||
|
STD_REV=$(lsb_release -sr)
|
||||||
|
fi
|
||||||
|
if [ -n "${STD_DIST}" ]; then
|
||||||
|
DIST="${STD_DIST}"
|
||||||
|
fi
|
||||||
|
if [ -n "${STD_REV}" ]; then
|
||||||
|
REV="${STD_REV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${REV}" ]; then
|
||||||
|
OSSTR="${DIST} ${REV}"
|
||||||
|
else
|
||||||
|
OSSTR="${DIST}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "${OS}" = "Darwin" ] ; then
|
||||||
|
if [ -f /usr/bin/sw_vers ] ; then
|
||||||
|
OSSTR=`/usr/bin/sw_vers|grep -v Build|sed 's/^.*:.//'| tr "\n" ' '`
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "${OS}" = "FreeBSD" ] ; then
|
||||||
|
if [ -f /etc/version ] ; then
|
||||||
|
DIST=$(cat /etc/version | cut -d'-' -f 1)
|
||||||
|
if [ "${DIST}" = "FreeNAS" ]; then
|
||||||
|
OSSTR=`cat /etc/version | cut -d' ' -f 1`
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
OSSTR=`/usr/bin/uname -mior`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ${OSSTR}
|
||||||
|
|
25
test/getenv.sh
Executable file
25
test/getenv.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
readonly getenv_dir="$(cd "$(dirname -- "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
get_os_version() {
|
||||||
|
local os_version=
|
||||||
|
local utils_version=
|
||||||
|
|
||||||
|
os_version="$(bash "${getenv_dir}/distro.sh" | sed 's/ /_/g')"
|
||||||
|
|
||||||
|
bash_version="$(bash --version | sed -n '/bash, [Vv]ersion/p' | sed 's/.*[Vv]ersion \([0-9.]\+\).*/\1/g')"
|
||||||
|
|
||||||
|
if utils_version="$(readlink --version 2>&1 | grep -E "BusyBox")" ; then
|
||||||
|
utils_version="$(sed 's/\(BusyBox v[0-9\.]\+\).*/\1/g' <<<${utils_version})"
|
||||||
|
elif utils_version="$(readlink --version 2>&1 | grep -E "GNU core")" ; then
|
||||||
|
utils_version="$(sed 's/.*\(GNU [[:alnum:]]\+\). \([0-9\.]\+\).*/\1 \2/g' <<<${utils_version})"
|
||||||
|
else
|
||||||
|
utils_version="utils_unkown"
|
||||||
|
fi
|
||||||
|
# Replace " " with _
|
||||||
|
utils_version="${utils_version// /_}"
|
||||||
|
|
||||||
|
echo "${os_version}_${bash_version:+bash_${bash_version}}_${utils_version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_os_version
|
15
test/savetest.sh
Executable file
15
test/savetest.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
savetest() {
|
||||||
|
local target_file=
|
||||||
|
readonly savetest_dir="$(cd "$(dirname -- "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
|
target_dir="${savetest_dir}/results"
|
||||||
|
mkdir -p "${target_dir}"
|
||||||
|
|
||||||
|
target_file="${target_dir}/$("${savetest_dir}/getenv.sh")_result.log"
|
||||||
|
|
||||||
|
"${savetest_dir}/test_rdlink.sh" >"${target_file}" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
savetest
|
Reference in New Issue
Block a user