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