-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'linux-kselftest-4.4-rc1' of git://git.kernel.org/pub/scm/l…
…inux/kernel/git/shuah/linux-kselftest Pull kselftest updates from Shuah Khan: "This 12 patch update for 4.4-rc1 consists of a new pstore test and fixes to existing tests" * tag 'linux-kselftest-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: breakpoint: Actually build it selftests: vm: Try harder to allocate huge pages selftests: Make scripts executable selftests: kprobe: Choose an always-defined function to probe selftests: memfd: Stop unnecessary rebuilds selftests: Add missing #include directives selftests/seccomp: Be more precise with syscall arguments. selftests/seccomp: build and pass on arm64 selftests: memfd_test: Revised STACK_SIZE to make it 16-byte aligned selftests/pstore: add pstore test scripts going with reboot selftests/pstore: add pstore test script for pre-reboot selftests: add .gitignore for efivarfs
- Loading branch information
Showing
22 changed files
with
362 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ ifeq ($(ARCH),x86) | |
TEST_PROGS := breakpoint_test | ||
endif | ||
|
||
all: | ||
all: $(TEST_PROGS) | ||
|
||
include ../lib.mk | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
create-read | ||
open-unlink |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Makefile for pstore selftests. | ||
# Expects pstore backend is registered. | ||
|
||
all: | ||
|
||
TEST_PROGS := pstore_tests pstore_post_reboot_tests | ||
TEST_FILES := common_tests pstore_crash_test | ||
|
||
include ../lib.mk | ||
|
||
run_crash: | ||
@sh pstore_crash_test || { echo "pstore_crash_test: [FAIL]"; exit 1; } | ||
|
||
clean: | ||
rm -rf logs/* *uuid |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#!/bin/sh | ||
|
||
# common_tests - Shell script commonly used by pstore test scripts | ||
# | ||
# Copyright (C) Hitachi Ltd., 2015 | ||
# Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com> | ||
# | ||
# Released under the terms of the GPL v2. | ||
|
||
# Utilities | ||
errexit() { # message | ||
echo "Error: $1" 1>&2 | ||
exit 1 | ||
} | ||
|
||
absdir() { # file_path | ||
(cd `dirname $1`; pwd) | ||
} | ||
|
||
show_result() { # result_value | ||
if [ $1 -eq 0 ]; then | ||
prlog "ok" | ||
else | ||
prlog "FAIL" | ||
rc=1 | ||
fi | ||
} | ||
|
||
check_files_exist() { # type of pstorefs file | ||
if [ -e ${1}-${backend}-0 ]; then | ||
prlog "ok" | ||
for f in `ls ${1}-${backend}-*`; do | ||
prlog -e "\t${f}" | ||
done | ||
else | ||
prlog "FAIL" | ||
rc=1 | ||
fi | ||
} | ||
|
||
operate_files() { # tested value, files, operation | ||
if [ $1 -eq 0 ]; then | ||
prlog | ||
for f in $2; do | ||
prlog -ne "\t${f} ... " | ||
# execute operation | ||
$3 $f | ||
show_result $? | ||
done | ||
else | ||
prlog " ... FAIL" | ||
rc=1 | ||
fi | ||
} | ||
|
||
# Parameters | ||
TEST_STRING_PATTERN="Testing pstore: uuid=" | ||
UUID=`cat /proc/sys/kernel/random/uuid` | ||
TOP_DIR=`absdir $0` | ||
LOG_DIR=$TOP_DIR/logs/`date +%Y%m%d-%H%M%S`_${UUID}/ | ||
REBOOT_FLAG=$TOP_DIR/reboot_flag | ||
|
||
# Preparing logs | ||
LOG_FILE=$LOG_DIR/`basename $0`.log | ||
mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR" | ||
date > $LOG_FILE | ||
prlog() { # messages | ||
/bin/echo "$@" | tee -a $LOG_FILE | ||
} | ||
|
||
# Starting tests | ||
rc=0 | ||
prlog "=== Pstore unit tests (`basename $0`) ===" | ||
prlog "UUID="$UUID | ||
|
||
prlog -n "Checking pstore backend is registered ... " | ||
backend=`cat /sys/module/pstore/parameters/backend` | ||
show_result $? | ||
prlog -e "\tbackend=${backend}" | ||
prlog -e "\tcmdline=`cat /proc/cmdline`" | ||
if [ $rc -ne 0 ]; then | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#!/bin/sh | ||
|
||
# pstore_crash_test - Pstore test shell script which causes crash and reboot | ||
# | ||
# Copyright (C) Hitachi Ltd., 2015 | ||
# Written by Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com> | ||
# | ||
# Released under the terms of the GPL v2. | ||
|
||
# exit if pstore backend is not registered | ||
. ./common_tests | ||
|
||
prlog "Causing kernel crash ..." | ||
|
||
# enable all functions triggered by sysrq | ||
echo 1 > /proc/sys/kernel/sysrq | ||
# setting to reboot in 3 seconds after panic | ||
echo 3 > /proc/sys/kernel/panic | ||
|
||
# save uuid file by different name because next test execution will replace it. | ||
mv $TOP_DIR/uuid $TOP_DIR/prev_uuid | ||
|
||
# create a file as reboot flag | ||
touch $REBOOT_FLAG | ||
sync | ||
|
||
# cause crash | ||
# Note: If you use kdump and want to see kmesg-* files after reboot, you should | ||
# specify 'crash_kexec_post_notifiers' in 1st kernel's cmdline. | ||
echo c > /proc/sysrq-trigger |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#!/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. | ||
|
||
. ./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 0 | ||
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 |
Oops, something went wrong.