#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only
# common_tests - Shell script commonly used by pstore test scripts
#
# Copyright (C) Hitachi Ltd., 2015
# Written by Hiraku Toyooka <[email protected]>
#
# Utilities
errexit() { # message
echo "Error: $1" 1>&2
exit 1
}
absdir() { # file_path
(cd `dirname $1`; pwd)
}
show_result() { # result_value
if [ $1 -eq 0 ]; then
prlog "ok"
else
prlog "FAIL"
rc=1
fi
}
check_files_exist() { # type of pstorefs file
if [ -e ${1}-${backend}-0 ]; then
prlog "ok"
for f in `ls ${1}-${backend}-*`; do
prlog -e "\t${f}"
done
else
prlog "FAIL"
rc=1
fi
}
operate_files() { # tested value, files, operation
if [ $1 -eq 0 ]; then
prlog
for f in $2; do
prlog -ne "\t${f} ... "
# execute operation
$3 $f
show_result $?
done
else
prlog " ... FAIL"
rc=1
fi
}
# Parameters
TEST_STRING_PATTERN="Testing pstore: uuid="
UUID=`cat /proc/sys/kernel/random/uuid`
TOP_DIR=`absdir $0`
LOG_DIR=$TOP_DIR/logs/`date +%Y%m%d-%H%M%S`_${UUID}/
REBOOT_FLAG=$TOP_DIR/reboot_flag
# Preparing logs
LOG_FILE=$LOG_DIR/`basename $0`.log
mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
date > $LOG_FILE
prlog() { # messages
/bin/echo "$@" | tee -a $LOG_FILE
}
# Starting tests
rc=0
prlog "=== Pstore unit tests (`basename $0`) ==="
prlog "UUID="$UUID
prlog -n "Checking pstore backend is registered ... "
backend=`cat /sys/module/pstore/parameters/backend`
show_result $?
prlog -e "\tbackend=${backend}"
prlog -e "\tcmdline=`cat /proc/cmdline`"
if [ $rc -ne 0 ]; then
exit 1
fi