#!/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 } 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