From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965267AbcIHVzv (ORCPT ); Thu, 8 Sep 2016 17:55:51 -0400 Received: from mail-wm0-f41.google.com ([74.125.82.41]:37095 "EHLO mail-wm0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752507AbcIHVzs (ORCPT ); Thu, 8 Sep 2016 17:55:48 -0400 MIME-Version: 1.0 In-Reply-To: <1469419019-4820-6-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> References: <1469419019-4820-1-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> <1469419019-4820-6-git-send-email-nobuhiro.iwamatsu.kw@hitachi.com> From: Kees Cook Date: Thu, 8 Sep 2016 14:55:46 -0700 X-Google-Sender-Auth: Dj-pqZ3qaYckjjpijevEXizVFBQ Message-ID: Subject: Re: [PATCH v2 5/5] selftests/pstore: add testcases for multiple pmsg instances To: Nobuhiro Iwamatsu Cc: Anton Vorontsov , Colin Cross , Tony Luck , LKML , Hiraku Toyooka , Mark Salyzyn , Seiji Aguchi , Shuah Khan Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jul 24, 2016 at 8:56 PM, Nobuhiro Iwamatsu wrote: > 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: Mark Salyzyn > Cc: Seiji Aguchi > Cc: Shuah Khan > --- > tools/testing/selftests/pstore/common_tests | 21 +++++++++++++++-- > .../selftests/pstore/pstore_post_reboot_tests | 27 ++++++++++++---------- > tools/testing/selftests/pstore/pstore_tests | 16 ++++++++++--- > 3 files changed, 47 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..5abf0e5 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,15 @@ 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 $? > + Blank line here can be dropped. > +fi > + > exit $rc > -- > 2.8.1 > > Otherwise, this looks good. Thanks! -Kees -- Kees Cook Nexus Security