Commit | Line | Data |
---|---|---|
cc04a46f HT |
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@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 | ||
f615e2bb HT |
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 | ||
cc04a46f HT |
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}/ | |
f615e2bb | 61 | REBOOT_FLAG=$TOP_DIR/reboot_flag |
cc04a46f HT |
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 |