#!/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
