2015-10-02 19:46:39 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# common_tests - Shell script commonly used by pstore test scripts
|
|
|
|
#
|
|
|
|
# Copyright (C) Hitachi Ltd., 2015
|
|
|
|
# Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
|
|
|
|
#
|
|
|
|
# Released under the terms of the GPL v2.
|
|
|
|
|
|
|
|
# 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
|
|
|
|
}
|
|
|
|
|
2015-10-02 19:46:41 +08:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2015-10-02 19:46:39 +08:00
|
|
|
# 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}/
|
2015-10-02 19:46:41 +08:00
|
|
|
REBOOT_FLAG=$TOP_DIR/reboot_flag
|
2015-10-02 19:46:39 +08:00
|
|
|
|
|
|
|
# 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
|