162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci# common_tests - Shell script commonly used by pstore test scripts 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci# Copyright (C) Hitachi Ltd., 2015 762306a36Sopenharmony_ci# Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com> 862306a36Sopenharmony_ci# 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci# Utilities 1162306a36Sopenharmony_cierrexit() { # message 1262306a36Sopenharmony_ci echo "Error: $1" 1>&2 1362306a36Sopenharmony_ci exit 1 1462306a36Sopenharmony_ci} 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciabsdir() { # file_path 1762306a36Sopenharmony_ci (cd `dirname $1`; pwd) 1862306a36Sopenharmony_ci} 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cishow_result() { # result_value 2162306a36Sopenharmony_ci if [ $1 -eq 0 ]; then 2262306a36Sopenharmony_ci prlog "ok" 2362306a36Sopenharmony_ci else 2462306a36Sopenharmony_ci prlog "FAIL" 2562306a36Sopenharmony_ci rc=1 2662306a36Sopenharmony_ci fi 2762306a36Sopenharmony_ci} 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cicheck_files_exist() { # type of pstorefs file 3062306a36Sopenharmony_ci if [ -e ${1}-${backend}-0 ]; then 3162306a36Sopenharmony_ci prlog "ok" 3262306a36Sopenharmony_ci for f in `ls ${1}-${backend}-*`; do 3362306a36Sopenharmony_ci prlog -e "\t${f}" 3462306a36Sopenharmony_ci done 3562306a36Sopenharmony_ci else 3662306a36Sopenharmony_ci prlog "FAIL" 3762306a36Sopenharmony_ci rc=1 3862306a36Sopenharmony_ci fi 3962306a36Sopenharmony_ci} 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cioperate_files() { # tested value, files, operation 4262306a36Sopenharmony_ci if [ $1 -eq 0 ]; then 4362306a36Sopenharmony_ci prlog 4462306a36Sopenharmony_ci for f in $2; do 4562306a36Sopenharmony_ci prlog -ne "\t${f} ... " 4662306a36Sopenharmony_ci # execute operation 4762306a36Sopenharmony_ci $3 $f 4862306a36Sopenharmony_ci show_result $? 4962306a36Sopenharmony_ci done 5062306a36Sopenharmony_ci else 5162306a36Sopenharmony_ci prlog " ... FAIL" 5262306a36Sopenharmony_ci rc=1 5362306a36Sopenharmony_ci fi 5462306a36Sopenharmony_ci} 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci# Parameters 5762306a36Sopenharmony_ciTEST_STRING_PATTERN="Testing pstore: uuid=" 5862306a36Sopenharmony_ciUUID=`cat /proc/sys/kernel/random/uuid` 5962306a36Sopenharmony_ciTOP_DIR=`absdir $0` 6062306a36Sopenharmony_ciLOG_DIR=$TOP_DIR/logs/`date +%Y%m%d-%H%M%S`_${UUID}/ 6162306a36Sopenharmony_ciREBOOT_FLAG=$TOP_DIR/reboot_flag 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci# Preparing logs 6462306a36Sopenharmony_ciLOG_FILE=$LOG_DIR/`basename $0`.log 6562306a36Sopenharmony_cimkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR" 6662306a36Sopenharmony_cidate > $LOG_FILE 6762306a36Sopenharmony_ciprlog() { # messages 6862306a36Sopenharmony_ci /bin/echo "$@" | tee -a $LOG_FILE 6962306a36Sopenharmony_ci} 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci# Starting tests 7262306a36Sopenharmony_circ=0 7362306a36Sopenharmony_ciprlog "=== Pstore unit tests (`basename $0`) ===" 7462306a36Sopenharmony_ciprlog "UUID="$UUID 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciprlog -n "Checking pstore backend is registered ... " 7762306a36Sopenharmony_cibackend=`cat /sys/module/pstore/parameters/backend` 7862306a36Sopenharmony_cishow_result $? 7962306a36Sopenharmony_ciprlog -e "\tbackend=${backend}" 8062306a36Sopenharmony_ciprlog -e "\tcmdline=`cat /proc/cmdline`" 8162306a36Sopenharmony_ciif [ $rc -ne 0 ]; then 8262306a36Sopenharmony_ci exit 1 8362306a36Sopenharmony_cifi 84