| 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 <[email protected]> |
| 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 |