Home | History | Annotate | Download | only in pstore
      1 #!/bin/sh
      2 
      3 # common_tests - Shell script commonly used by pstore test scripts
      4 #
      5 # Copyright (C) Hitachi Ltd., 2015
      6 #  Written by Hiraku Toyooka <hiraku.toyooka.gu (at] hitachi.com>
      7 #
      8 # Released under the terms of the GPL v2.
      9 
     10 # Utilities
     11 errexit() { # message
     12     echo "Error: $1" 1>&2
     13     exit 1
     14 }
     15 
     16 absdir() { # file_path
     17     (cd `dirname $1`; pwd)
     18 }
     19 
     20 show_result() { # result_value
     21     if [ $1 -eq 0 ]; then
     22 	prlog "ok"
     23     else
     24 	prlog "FAIL"
     25 	rc=1
     26     fi
     27 }
     28 
     29 check_files_exist() { # type of pstorefs file
     30     if [ -e ${1}-${backend}-0 ]; then
     31 	prlog "ok"
     32 	for f in `ls ${1}-${backend}-*`; do
     33             prlog -e "\t${f}"
     34 	done
     35     else
     36 	prlog "FAIL"
     37 	rc=1
     38     fi
     39 }
     40 
     41 operate_files() { # tested value, files, operation
     42     if [ $1 -eq 0 ]; then
     43 	prlog
     44 	for f in $2; do
     45 	    prlog -ne "\t${f} ... "
     46 	    # execute operation
     47 	    $3 $f
     48 	    show_result $?
     49 	done
     50     else
     51 	prlog " ... FAIL"
     52 	rc=1
     53     fi
     54 }
     55 
     56 # Parameters
     57 TEST_STRING_PATTERN="Testing pstore: uuid="
     58 UUID=`cat /proc/sys/kernel/random/uuid`
     59 TOP_DIR=`absdir $0`
     60 LOG_DIR=$TOP_DIR/logs/`date +%Y%m%d-%H%M%S`_${UUID}/
     61 REBOOT_FLAG=$TOP_DIR/reboot_flag
     62 
     63 # Preparing logs
     64 LOG_FILE=$LOG_DIR/`basename $0`.log
     65 mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
     66 date > $LOG_FILE
     67 prlog() { # messages
     68     /bin/echo "$@" | tee -a $LOG_FILE
     69 }
     70 
     71 # Starting tests
     72 rc=0
     73 prlog "=== Pstore unit tests (`basename $0`) ==="
     74 prlog "UUID="$UUID
     75 
     76 prlog -n "Checking pstore backend is registered ... "
     77 backend=`cat /sys/module/pstore/parameters/backend`
     78 show_result $?
     79 prlog -e "\tbackend=${backend}"
     80 prlog -e "\tcmdline=`cat /proc/cmdline`"
     81 if [ $rc -ne 0 ]; then
     82     exit 1
     83 fi
     84