From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933816AbcJRHPp (ORCPT ); Tue, 18 Oct 2016 03:15:45 -0400 Received: from mail7.hitachi.co.jp ([133.145.228.42]:52130 "EHLO mail7.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933187AbcJRHOX (ORCPT ); Tue, 18 Oct 2016 03:14:23 -0400 From: Nobuhiro Iwamatsu To: Anton Vorontsov , Colin Cross , Kees Cook , Tony Luck Cc: linux-kernel@vger.kernel.org, cti.systems-productivity-manager.ts@hitachi.com, Hiraku Toyooka , Nobuhiro Iwamatsu , Mark Salyzyn , Seiji Aguchi , Shuah Khan Subject: [PATCH v3 8/8] selftests/pstore: add testcases for multiple pmsg instances Date: Tue, 18 Oct 2016 16:13:34 +0900 Message-Id: <1476774814-6840-9-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> X-Mailer: git-send-email 2.8.1.windows.1 In-Reply-To: <1476774814-6840-1-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> References: <1476774814-6840-1-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> X-TM-AS-GCONF: 00 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hiraku Toyooka To test multiple pmsg, we should check that /dev/pmsg[N] (N > 0) is available. After reboot, we should check that pmsg-[backend]-[N] which keeps content is detected even if pmsg-[backend]-[N-M] (0 < M <= N) doesn't exist due to lack of contents. So this adds the following testcases. - pstore_tests - Write unique string to the last /dev/pmsgN - pstore_post_reboot_tests - Check the last pmsg area is detected Signed-off-by: Hiraku Toyooka Signed-off-by: Nobuhiro Iwamatsu Cc: Anton Vorontsov Cc: Colin Cross Cc: Kees Cook Cc: Mark Salyzyn Cc: Seiji Aguchi Cc: Shuah Khan Cc: Tony Luck V3: Remove Blank lines. --- tools/testing/selftests/pstore/common_tests | 21 +++++++++++++++-- .../selftests/pstore/pstore_post_reboot_tests | 27 ++++++++++++---------- tools/testing/selftests/pstore/pstore_tests | 14 ++++++++--- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/pstore/common_tests b/tools/testing/selftests/pstore/common_tests index 3ea64d7..566a25d 100755 --- a/tools/testing/selftests/pstore/common_tests +++ b/tools/testing/selftests/pstore/common_tests @@ -27,9 +27,9 @@ show_result() { # result_value } check_files_exist() { # type of pstorefs file - if [ -e ${1}-${backend}-0 ]; then + if [ -e ${1}0 ]; then prlog "ok" - for f in `ls ${1}-${backend}-*`; do + for f in `ls ${1}*`; do prlog -e "\t${f}" done else @@ -53,6 +53,23 @@ operate_files() { # tested value, files, operation fi } +check_pmsg_content() { # pmsg filename + prev_uuid=`cat $TOP_DIR/prev_uuid` + if [ $? -eq 0 ]; then + nr_matched=`grep -c "$TEST_STRING_PATTERN" $1` + if [ "$nr_matched" = "1" ]; then + grep -q "$TEST_STRING_PATTERN"$prev_uuid $1 + show_result $? + else + prlog "FAIL" + rc=1 + fi + else + prlog "FAIL" + rc=1 + fi +} + # Parameters TEST_STRING_PATTERN="Testing pstore: uuid=" UUID=`cat /proc/sys/kernel/random/uuid` diff --git a/tools/testing/selftests/pstore/pstore_post_reboot_tests b/tools/testing/selftests/pstore/pstore_post_reboot_tests index 6ccb154..272498f 100755 --- a/tools/testing/selftests/pstore/pstore_post_reboot_tests +++ b/tools/testing/selftests/pstore/pstore_post_reboot_tests @@ -35,13 +35,13 @@ fi cd ${mount_point} prlog -n "Checking dmesg files exist in pstore filesystem ... " -check_files_exist dmesg +check_files_exist dmesg-${backend}- prlog -n "Checking console files exist in pstore filesystem ... " -check_files_exist console +check_files_exist console-${backend}- prlog -n "Checking pmsg files exist in pstore filesystem ... " -check_files_exist pmsg +check_files_exist pmsg-${backend}- prlog -n "Checking dmesg files contain oops end marker" grep_end_trace() { @@ -54,16 +54,19 @@ 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 $? +prlog -n "Checking pmsg-"${backend}"-0 properly keeps the content written before crash ... " +check_pmsg_content pmsg-${backend}-0 + +prlog -n "Checking the last pmsg area is detected " +last_num_pmsg=`ls -v pmsg-* | tail -n1 | sed -e "s/^pmsg-${backend}-\([0-9]*\).*$/\1/"` +last_num_devpmsg=`ls -v /dev/pmsg* | tail -n1 | sed -e "s/^\/dev\/pmsg\([0-9]*\).*$/\1/"` +#checks the last number of pmsg-*-* and /dev/pmsg* correspond. +if [ "$last_num_pmsg" -eq "$last_num_devpmsg" ]; then + if [ "$last_num_pmsg" = "0" ]; then + prlog "... No multiple pmsg-*-* exists. We skip this testcase." else - prlog "FAIL" - rc=1 + prlog -n "(pmsg-${backend}-${last_num_pmsg}) ... " + check_pmsg_content pmsg-${backend}-${last_num_pmsg} fi else prlog "FAIL" diff --git a/tools/testing/selftests/pstore/pstore_tests b/tools/testing/selftests/pstore/pstore_tests index f25d2a3..b74b3af 100755 --- a/tools/testing/selftests/pstore/pstore_tests +++ b/tools/testing/selftests/pstore/pstore_tests @@ -13,9 +13,8 @@ prlog -n "Checking pstore console is registered ... " dmesg | grep -q "console \[pstore" show_result $? -prlog -n "Checking /dev/pmsg0 exists ... " -test -e /dev/pmsg0 -show_result $? +prlog -n "Checking /dev/pmsg files exist ... " +check_files_exist /dev/pmsg prlog -n "Writing unique string to /dev/pmsg0 ... " if [ -e "/dev/pmsg0" ]; then @@ -27,4 +26,13 @@ else rc=1 fi +last_devpmsg=`ls -v /dev/pmsg* | tail -n1` +prlog -n "Writing unique string to the last /dev/pmsgN " +if [ "$last_devpmsg" = "/dev/pmsg0" ]; then + prlog "... No multiple /dev/pmsg* exists. We skip this testcase." +else + prlog -n "(${last_devpmsg}) ... " + echo "${TEST_STRING_PATTERN}""$UUID" > ${last_devpmsg} + show_result $? +fi exit $rc -- 2.9.3