xref: /openbmc/linux/tools/testing/selftests/pstore/common_tests (revision ecb41832bd2a7a3f8ac93527cec5e51e3827daed)
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0-only
3 
4 # common_tests - Shell script commonly used by pstore test scripts
5 #
6 # Copyright (C) Hitachi Ltd., 2015
7 #  Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
8 #
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