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