blob: 13fdb1b4762d064b67c5570062c68a6ab5fb6e27 [file] [log] [blame]
#!/bin/sh
# shellcheck disable=SC1091
. ../../lib/sh-test-lib
OUTPUT="$(pwd)/output"
RESULT_FILE="${OUTPUT}/result.txt"
RESULT_LOG="${OUTPUT}/result_log.txt"
TEST_PASS_LOG="${OUTPUT}/test_pass_log.txt"
TEST_FAIL_LOG="${OUTPUT}/test_fail_log.txt"
TEST_SKIP_LOG="${OUTPUT}/test_skip_log.txt"
usage() {
echo "Usage: $0 [-s <true|false>]" 1>&2
exit 1
}
while getopts "s:h" o; do
case "$o" in
s) SKIP_INSTALL="${OPTARG}" ;;
h|*) usage ;;
esac
done
parse_output() {
# Parse each type of results
grep -E "passed" "${RESULT_LOG}" | tee -a "${TEST_PASS_LOG}"
sed -i -e 's/: /:/g' "${TEST_PASS_LOG}"
sed -i -e 's/ \+/-/g' "${TEST_PASS_LOG}"
sed -i -e 's/-passed:/ pass /g' "${TEST_PASS_LOG}"
cat "${TEST_PASS_LOG}" >> "${RESULT_FILE}"
grep -E "failing" "${RESULT_LOG}" | tee -a "${TEST_FAIL_LOG}"
sed -i -e 's/failing to pass the threshold:/FAIL:/g' "${TEST_FAIL_LOG}"
sed -i -e 's/: /:/g' "${TEST_FAIL_LOG}"
sed -i -e 's/ \+/-/g' "${TEST_FAIL_LOG}"
sed -i -e 's/-FAIL:/ fail /g' "${TEST_FAIL_LOG}"
cat "${TEST_FAIL_LOG}" >> "${RESULT_FILE}"
grep -E "Illegal Error:" "${RESULT_LOG}" | tee -a "${TEST_SKIP_LOG}"
grep -E "Info Error:" "${RESULT_LOG}" | tee -a "${TEST_SKIP_LOG}"
sed -i -e 's/Illegal Error:/SKIP:/g' "${TEST_SKIP_LOG}"
sed -i -e 's/Info Error:/SKIP:/g' "${TEST_SKIP_LOG}"
sed -i -e 's/: /:/g' "${TEST_SKIP_LOG}"
sed -i -e 's/ \+/-/g' "${TEST_SKIP_LOG}"
sed -i -e 's/-SKIP:/ skip /g' "${TEST_SKIP_LOG}"
cat "${TEST_SKIP_LOG}" >> "${RESULT_FILE}"
rm -rf "${RESULT_LOG}" "${TEST_PASS_LOG}" "${TEST_FAIL_LOG}" "${TEST_SKIP_LOG}"
}
lapack_build_test() {
git clone https://github.com/Reference-LAPACK/lapack.git
# shellcheck disable=SC2164
cd lapack
cp make.inc.example make.inc
# shellcheck disable=SC2039,SC3045
ulimit -s 100000
make blaslib
make | tee -a "${RESULT_LOG}"
}
install() {
dist_name
# shellcheck disable=SC2154
case "${dist}" in
debian|ubuntu)
pkgs="binutils gcc make python sed tar wget gfortran"
;;
fedora|centos)
pkgs="binutils gcc glibc-static make python sed tar wget gcc-gfortran"
;;
esac
install_deps "${pkgs}" "${SKIP_INSTALL}"
}
# Test run.
! check_root && error_msg "This script must be run as root"
create_out_dir "${OUTPUT}"
# shellcheck disable=SC2164
cd "${OUTPUT}"
info_msg "About to run lapack test..."
info_msg "Output directory: ${OUTPUT}"
# Install packages
install
# Build lapack tests
lapack_build_test
# Parse and print lapack tests results
parse_output