All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiao Yang <yangx.jy@cn.fujitsu.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: eguan@redhat.com, david@fromorbit.com, bfoster@redhat.com,
	fstests@vger.kernel.org
Subject: Re: [PATCH v5 2/3] common/filter: Factor out expected XFS warnings for assert
Date: Fri, 19 Jan 2018 12:04:08 +0800	[thread overview]
Message-ID: <5A616E38.9070302@cn.fujitsu.com> (raw)
In-Reply-To: <20180118182915.GI5606@magnolia>

On 2018/01/19 2:29, Darrick J. Wong wrote:
> On Thu, Jan 18, 2018 at 06:49:54PM +0800, xiao yang wrote:
>> 1) Introduce _require_no_xfs_bug_on_assert helper to check if XFS is built
>>     with CONFIG_XFS_ASSERT_FATAL, and just call _require_no_xfs_debug if
>>     /sys/fs/xfs/debug/bug_on_assert is not available.
>>
>> 2) Apply _require_no_xfs_bug_on_assert in xfs/098 and xfs/115.
>>
>> 3) Move filter_xfs_dmesg from xfs/098 to common/filter, and rename
>>     it as _filter_assert_dmesg.
>>
>> Signed-off-by: xiao yang<yangx.jy@cn.fujitsu.com>
>> ---
>>   common/filter | 11 +++++++++++
>>   common/xfs    | 12 ++++++++++++
>>   tests/xfs/098 | 20 ++++++++------------
>>   tests/xfs/115 |  7 ++++---
>>   4 files changed, 35 insertions(+), 15 deletions(-)
>>
>> diff --git a/common/filter b/common/filter
>> index 8e1fdb4..53874a0 100644
>> --- a/common/filter
>> +++ b/common/filter
>> @@ -570,5 +570,16 @@ _filter_aiodio_dmesg()
>>   	    -e "s#$warn9#Intentional warnings in dio_complete#"
>>   }
>>
>> +# We generate assert related WARNINGs on purpose and make sure test doesn't fail
>> +# because of these warnings. This is a helper for _check_dmesg() to filter out
>> +# them.
>> +_filter_assert_dmesg()
>> +{
>> +	local warn1="WARNING:.*fs/xfs/xfs_message\.c:.*asswarn.*"
>> +	local warn2="WARNING:.*fs/xfs/xfs_message\.c:.*assfail.*"
>> +	sed -e "s#$warn1#Intentional warnings in asswarn#" \
>> +	    -e "s#$warn2#Intentional warnings in assfail#"
>> +}
>> +
>>   # make sure this script returns success
>>   /bin/true
>> diff --git a/common/xfs b/common/xfs
>> index ab58364..a0e03b6 100644
>> --- a/common/xfs
>> +++ b/common/xfs
>> @@ -625,6 +625,18 @@ _require_no_xfs_debug()
>>   	fi
>>   }
>>
>> +# Check if XFS is built with CONFIG_XFS_ASSERT_FATAL
>> +_require_no_xfs_bug_on_assert()
>> +{
>> +	if [ -f /sys/fs/xfs/debug/bug_on_assert ]; then
>> +		grep -q "1" /sys/fs/xfs/debug/bug_on_assert&&  \
>> +		   _notrun "Require XFS built without CONFIG_XFS_ASSERT_FATAL"
> This knob can be written, so perhaps we'd rather just set it to zero
> instead of _notrun?
Hi Darrick,

I think we can keep it and update the _notrun message as Eryu suggested.

>> +	else
>> +	# Call _require_no_xfs_debug if bug_on_assert is not available
> That much is obvious from the code, but the comment doesn't say much
> about why we shift to _require_no_xfs_debug.  How about:
>
> # Require that assertions will not hang the system.
> #
> # Note: Prior to the creation of CONFIG_XFS_ASSERT_FATAL (and the sysfs
> # knob bug_on_assert), assertions would always crash the system if XFS
> # debug was enabled (CONFIG_XFS_DEBUG=y).  If a test is designed to
> # trigger an assertion and the test designer does not want to hang
> # fstests, skip the test.
This comment looks better to me.

Thanks,
Xiao Yang
> --D
>
>> +		_require_no_xfs_debug
>> +	fi
>> +}
>> +
>>   # Get a metadata field
>>   # The first arg is the field name
>>   # The rest of the arguments are xfs_db commands to find the metadata.
>> diff --git a/tests/xfs/098 b/tests/xfs/098
>> index 9bcd94b..ebb7ca7 100755
>> --- a/tests/xfs/098
>> +++ b/tests/xfs/098
>> @@ -47,6 +47,10 @@ _cleanup()
>>   _supported_fs xfs
>>   _supported_os Linux
>>
>> +# We corrupt XFS on purpose, and CONFIG_XFS_ASSERT_FATAL built XFS
>> +# would crash due to assert failure, so skip if we're testing on a
>> +# CONFIG_XFS_ASSERT_FATAL built XFS.
>> +_require_no_xfs_bug_on_assert
>>   _require_scratch
>>   test -n "${FORCE_FUZZ}" || _require_scratch_xfs_crc
>>   _require_attrs
>> @@ -56,16 +60,6 @@ test -z "${FUZZ_ARGS}"&&  FUZZ_ARGS="-n 8 -3"
>>
>>   rm -f $seqres.full
>>
>> -# If we corrupt log on a CONFIG_XFS_WARN build, there will be mount related
>> -# WARNINGs in dmesg as expected.  We don't want to simply _disable_dmesg_check
>> -# which could miss other potential bugs, so filter out the intentional WARNINGs,
>> -# make sure test doesn't fail because of this warning and fails on other WARNINGs.
>> -filter_xfs_dmesg()
>> -{
>> -	local warn="WARNING:.*fs/xfs/xfs_message\.c:.*asswarn.*"
>> -	sed -e "s#$warn#Intentional warnings in asswarn#"
>> -}
>> -
>>   TESTDIR="${SCRATCH_MNT}/scratchdir"
>>   TESTFILE="${TESTDIR}/testfile"
>>
>> @@ -107,8 +101,10 @@ _scratch_mount 2>/dev/null&&  _fail "mount should not succeed"
>>   echo "+ repair fs"
>>   _repair_scratch_fs>>  $seqres.full 2>&1
>>
>> -# mount may trigger related WARNINGs, so filter them.
>> -_check_dmesg filter_xfs_dmesg
>> +# We may trigger assert related WARNINGs if we corrupt log on a
>> +# CONFIG_XFS_WARN or CONFIG_XFS_DEBUG(without CONFIG_XFS_ASSERT_FATAL)
>> +# build, so filter them.
>> +_check_dmesg _filter_assert_dmesg
>>
>>   echo "+ mount image (2)"
>>   _scratch_mount
>> diff --git a/tests/xfs/115 b/tests/xfs/115
>> index 0e62628..5fe1fd5 100755
>> --- a/tests/xfs/115
>> +++ b/tests/xfs/115
>> @@ -52,9 +52,10 @@ rm -f $seqres.full
>>   _supported_fs generic
>>   _supported_os Linux
>>   _require_scratch_nocheck
>> -# we corrupt XFS on purpose, and debug built XFS would crash due to assert
>> -# failure, so skip if we're testing on a debug built XFS
>> -_require_no_xfs_debug
>> +# We corrupt XFS on purpose, and CONFIG_XFS_ASSERT_FATAL built XFS
>> +# would crash due to assert failure, so skip if we're testing on a
>> +# CONFIG_XFS_ASSERT_FATAL built XFS.
>> +_require_no_xfs_bug_on_assert
>>   _disable_dmesg_check
>>
>>   # Make sure we disable finobt if the filesystem supports it, otherwise, just
>> -- 
>> 1.8.3.1
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe fstests" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> .
>




  parent reply	other threads:[~2018-01-19  4:04 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-11  8:25 [PATCH] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-11 18:07 ` Darrick J. Wong
2018-01-12  1:58   ` Xiao Yang
2018-01-12  6:14   ` [PATCH v2] syscalls/madvise09.c: Use custom mount point instead of /sys/fs/cgroup/memory xiao yang
2018-01-12  6:14     ` [PATCH v2] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-12  6:19     ` [PATCH v2] syscalls/madvise09.c: Use custom mount point instead of /sys/fs/cgroup/memory Xiao Yang
2018-01-12  6:16   ` [PATCH v2 1/2] common/xfs: Check if write supports [-c|-d] option in xfs_db xiao yang
2018-01-12  6:16     ` [PATCH v2 2/2] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-12  7:49       ` Eryu Guan
2018-01-12  8:36         ` Dave Chinner
2018-01-12  8:50           ` Eryu Guan
2018-01-12 16:41             ` Darrick J. Wong
2018-01-13  2:23             ` Dave Chinner
2018-01-15  6:29               ` Eryu Guan
2018-01-15  7:48                 ` [PATCH v3 1/3] common/xfs: Check if write supports [-c|-d] option in xfs_db xiao yang
2018-01-15  7:48                   ` [PATCH v3 2/3] common/filter: factor out expected XFS warnings for mount xiao yang
2018-01-15  7:48                   ` [PATCH v3 3/3] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-15 12:45               ` [PATCH v2 2/2] " Brian Foster
2018-01-15 21:03                 ` Dave Chinner
2018-01-16  4:02                   ` Eryu Guan
2018-01-16  6:41                     ` Xiao Yang
2018-01-16  7:26                     ` [PATCH v4 1/3] common/xfs: Check if write supports [-c|-d] option in xfs_db xiao yang
2018-01-16  7:26                       ` [PATCH v4 2/3] common/filter: factor out expected XFS warnings for mount xiao yang
2018-01-18  8:48                         ` Eryu Guan
2018-01-18  8:56                           ` Xiao Yang
2018-01-16  7:26                       ` [PATCH v4 3/3] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-18  8:46                         ` Eryu Guan
2018-01-18 10:49                           ` [PATCH v5 1/3] common/xfs: Check if write supports [-c|-d] option in xfs_db xiao yang
2018-01-18 10:49                             ` [PATCH v5 2/3] common/filter: Factor out expected XFS warnings for assert xiao yang
2018-01-18 18:29                               ` Darrick J. Wong
2018-01-19  2:51                                 ` Eryu Guan
2018-01-19  4:04                                 ` Xiao Yang [this message]
2018-01-19  5:38                                 ` [PATCH v6 2/3] common: Add _require_no_xfs_bug_on_assert && Factor out filter_xfs_dmesg xiao yang
2018-01-19  5:38                                   ` [PATCH v6 3/3] xfs: Regression test for invalid sb_logsunit xiao yang
2018-01-18 10:49                             ` [PATCH v5 " xiao yang
2018-01-18 18:19                             ` [PATCH v5 1/3] common/xfs: Check if write supports [-c|-d] option in xfs_db Darrick J. Wong
2018-01-16  8:50                     ` [PATCH v2 2/2] xfs: Regression test for invalid sb_logsunit Dave Chinner
2018-01-16 14:09                       ` Brian Foster
2018-01-18  8:44                         ` Eryu Guan
2018-01-16 13:58                   ` Brian Foster
2018-01-12  7:44     ` [PATCH v2 1/2] common/xfs: Check if write supports [-c|-d] option in xfs_db Eryu Guan
2018-01-12 16:43     ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A616E38.9070302@cn.fujitsu.com \
    --to=yangx.jy@cn.fujitsu.com \
    --cc=bfoster@redhat.com \
    --cc=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.