cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pstore_post_reboot_tests (1943B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0-only
      3
      4# pstore_post_reboot_tests - Check pstore's behavior after crash/reboot
      5#
      6# Copyright (C) Hitachi Ltd., 2015
      7#  Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
      8#
      9
     10# Kselftest framework requirement - SKIP code is 4.
     11ksft_skip=4
     12
     13. ./common_tests
     14
     15if [ -e $REBOOT_FLAG  ]; then
     16    rm $REBOOT_FLAG
     17else
     18    prlog "pstore_crash_test has not been executed yet. we skip further tests."
     19    exit $ksft_skip
     20fi
     21
     22prlog -n "Mounting pstore filesystem ... "
     23mount_info=`grep pstore /proc/mounts`
     24if [ $? -eq 0 ]; then
     25    mount_point=`echo ${mount_info} | cut -d' ' -f2 | head -n1`
     26    prlog "ok"
     27else
     28    mount none /sys/fs/pstore -t pstore
     29    if [ $? -eq 0 ]; then
     30	mount_point=`grep pstore /proc/mounts | cut -d' ' -f2 | head -n1`
     31	prlog "ok"
     32    else
     33	prlog "FAIL"
     34	exit 1
     35    fi
     36fi
     37
     38cd ${mount_point}
     39
     40prlog -n "Checking dmesg files exist in pstore filesystem ... "
     41check_files_exist dmesg
     42
     43prlog -n "Checking console files exist in pstore filesystem ... "
     44check_files_exist console
     45
     46prlog -n "Checking pmsg files exist in pstore filesystem ... "
     47check_files_exist pmsg
     48
     49prlog -n "Checking dmesg files contain oops end marker"
     50grep_end_trace() {
     51    grep -q "\---\[ end trace" $1
     52}
     53files=`ls dmesg-${backend}-*`
     54operate_files $? "$files" grep_end_trace
     55
     56prlog -n "Checking console file contains oops end marker ... "
     57grep -q "\---\[ end trace" console-${backend}-0
     58show_result $?
     59
     60prlog -n "Checking pmsg file properly keeps the content written before crash ... "
     61prev_uuid=`cat $TOP_DIR/prev_uuid`
     62if [ $? -eq 0 ]; then
     63    nr_matched=`grep -c "$TEST_STRING_PATTERN" pmsg-${backend}-0`
     64    if [ $nr_matched -eq 1 ]; then
     65	grep -q "$TEST_STRING_PATTERN"$prev_uuid pmsg-${backend}-0
     66	show_result $?
     67    else
     68	prlog "FAIL"
     69	rc=1
     70    fi
     71else
     72    prlog "FAIL"
     73    rc=1
     74fi
     75
     76prlog -n "Removing all files in pstore filesystem "
     77files=`ls *-${backend}-*`
     78operate_files $? "$files" rm
     79
     80exit $rc