84 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.0-only3 4# common_tests - Shell script commonly used by pstore test scripts5#6# Copyright (C) Hitachi Ltd., 20157# Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>8#9 10# Utilities11errexit() { # message12 echo "Error: $1" 1>&213 exit 114}15 16absdir() { # file_path17 (cd `dirname $1`; pwd)18}19 20show_result() { # result_value21 if [ $1 -eq 0 ]; then22 prlog "ok"23 else24 prlog "FAIL"25 rc=126 fi27}28 29check_files_exist() { # type of pstorefs file30 if [ -e ${1}-${backend}-0 ]; then31 prlog "ok"32 for f in `ls ${1}-${backend}-*`; do33 prlog -e "\t${f}"34 done35 else36 prlog "FAIL"37 rc=138 fi39}40 41operate_files() { # tested value, files, operation42 if [ $1 -eq 0 ]; then43 prlog44 for f in $2; do45 prlog -ne "\t${f} ... "46 # execute operation47 $3 $f48 show_result $?49 done50 else51 prlog " ... FAIL"52 rc=153 fi54}55 56# Parameters57TEST_STRING_PATTERN="Testing pstore: uuid="58UUID=`cat /proc/sys/kernel/random/uuid`59TOP_DIR=`absdir $0`60LOG_DIR=$TOP_DIR/logs/`date +%Y%m%d-%H%M%S`_${UUID}/61REBOOT_FLAG=$TOP_DIR/reboot_flag62 63# Preparing logs64LOG_FILE=$LOG_DIR/`basename $0`.log65mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"66date > $LOG_FILE67prlog() { # messages68 /bin/echo "$@" | tee -a $LOG_FILE69}70 71# Starting tests72rc=073prlog "=== Pstore unit tests (`basename $0`) ==="74prlog "UUID="$UUID75 76prlog -n "Checking pstore backend is registered ... "77backend=`cat /sys/module/pstore/parameters/backend`78show_result $?79prlog -e "\tbackend=${backend}"80prlog -e "\tcmdline=`cat /proc/cmdline`"81if [ $rc -ne 0 ]; then82 exit 183fi84