| #!/bin/sh | |
| # pstore_post_reboot_tests - Check pstore's behavior after crash/reboot | |
| # | |
| # Copyright (C) Hitachi Ltd., 2015 | |
| # Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com> | |
| # | |
| # Released under the terms of the GPL v2. | |
| # Kselftest framework requirement - SKIP code is 4. | |
| ksft_skip=4 | |
| . ./common_tests | |
| if [ -e $REBOOT_FLAG ]; then | |
| rm $REBOOT_FLAG | |
| else | |
| prlog "pstore_crash_test has not been executed yet. we skip further tests." | |
| exit $ksft_skip | |
| fi | |
| prlog -n "Mounting pstore filesystem ... " | |
| mount_info=`grep pstore /proc/mounts` | |
| if [ $? -eq 0 ]; then | |
| mount_point=`echo ${mount_info} | cut -d' ' -f2 | head -n1` | |
| prlog "ok" | |
| else | |
| mount none /sys/fs/pstore -t pstore | |
| if [ $? -eq 0 ]; then | |
| mount_point=`grep pstore /proc/mounts | cut -d' ' -f2 | head -n1` | |
| prlog "ok" | |
| else | |
| prlog "FAIL" | |
| exit 1 | |
| fi | |
| fi | |
| cd ${mount_point} | |
| prlog -n "Checking dmesg files exist in pstore filesystem ... " | |
| check_files_exist dmesg | |
| prlog -n "Checking console files exist in pstore filesystem ... " | |
| check_files_exist console | |
| prlog -n "Checking pmsg files exist in pstore filesystem ... " | |
| check_files_exist pmsg | |
| prlog -n "Checking dmesg files contain oops end marker" | |
| grep_end_trace() { | |
| grep -q "\---\[ end trace" $1 | |
| } | |
| files=`ls dmesg-${backend}-*` | |
| operate_files $? "$files" grep_end_trace | |
| prlog -n "Checking console file contains oops end marker ... " | |
| grep -q "\---\[ end trace" console-${backend}-0 | |
| show_result $? | |
| prlog -n "Checking pmsg file properly keeps the content written before crash ... " | |
| prev_uuid=`cat $TOP_DIR/prev_uuid` | |
| if [ $? -eq 0 ]; then | |
| nr_matched=`grep -c "$TEST_STRING_PATTERN" pmsg-${backend}-0` | |
| if [ $nr_matched -eq 1 ]; then | |
| grep -q "$TEST_STRING_PATTERN"$prev_uuid pmsg-${backend}-0 | |
| show_result $? | |
| else | |
| prlog "FAIL" | |
| rc=1 | |
| fi | |
| else | |
| prlog "FAIL" | |
| rc=1 | |
| fi | |
| prlog -n "Removing all files in pstore filesystem " | |
| files=`ls *-${backend}-*` | |
| operate_files $? "$files" rm | |
| exit $rc |