From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f51.google.com ([74.125.82.51]:61218 "EHLO mail-wg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754591AbaKRQQd (ORCPT ); Tue, 18 Nov 2014 11:16:33 -0500 Received: by mail-wg0-f51.google.com with SMTP id k14so8819618wgh.24 for ; Tue, 18 Nov 2014 08:16:32 -0800 (PST) Message-ID: <546B70DC.2060502@plexistor.com> Date: Tue, 18 Nov 2014 18:16:28 +0200 From: Omer Zilberberg MIME-Version: 1.0 Subject: Re: [PATCH v2 1/5] common: re-enable tests that require scratch dev on NFS References: <1414775040-4051-1-git-send-email-eguan@redhat.com> <1414775040-4051-2-git-send-email-eguan@redhat.com> <20141113033317.GC28565@dastard> <20141115053533.GK2863@dhcp-13-216.nay.redhat.com> <20141117054141.GK23575@dastard> <20141117060603.GO2863@dhcp-13-216.nay.redhat.com> <20141117065443.GL23575@dastard> <546A0BFE.6080608@plexistor.com> <20141117202207.GN23575@dastard> In-Reply-To: <20141117202207.GN23575@dastard> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: fstests-owner@vger.kernel.org To: Dave Chinner Cc: Eryu Guan , Steve French , fstests@vger.kernel.org, "linux-nfs@vger.kernel.org" , "linux-cifs@vger.kernel.org" , Weston Andros Adamson List-ID: On 11/17/2014 10:22 PM, Dave Chinner wrote: > On Mon, Nov 17, 2014 at 04:53:50PM +0200, Omer Zilberberg wrote: >>> Another FYI: we can actually test any filesystem without a scratch >>> device configured: >>> >>> $ sudo TEST_DEV=/dev/vda TEST_DIR=/mnt/test ./check generic/120 >>> FSTYP -- xfs (non-debug) >>> PLATFORM -- Linux/x86_64 test2 3.18.0-rc2-dgc+ >>> >>> generic/120 16s ... [not run] this test requires a valid $SCRATCH_DEV >>> Not run: generic/120 >>> Passed all 0 tests >>> $ >> >> Please note that since commit 83ef157d, that is no longer true, because _require_test calls _is_block_dev with empty parameter, which prints usage: >> $ sudo TEST_DEV=/dev/sda TEST_DIR=/mnt/dev0 ./check generic/001 >> FSTYP -- ext4 >> PLATFORM -- Linux/x86_64 testvm 3.17.0 >> >> generic/001 7s ... - output mismatch (see /opt/xfstests/results//generic/001.out.bad) >> --- tests/generic/001.out 2014-09-10 11:04:44.249185592 +0300 >> +++ /opt/xfstests/results//generic/001.out.bad 2014-11-17 15:14:12.380061760 +0200 >> @@ -1,4 +1,5 @@ >> QA output created by 001 >> +Usage: _is_block_dev dev >> cleanup >> setup .................................... >> iter 1 chain ... check .................................... >> ... >> (Run 'diff -u tests/generic/001.out /opt/xfstests/results//generic/001.out.bad' to see the entire diff) >> Ran: generic/001 >> Failures: generic/001 >> Failed 1 of 1 tests >> >> Here's a patch to fix that: >> ---- >> Subject: [PATCH] _required_test: removed unneeded test for scratch_dev >> >> testing for scratch_dev in _required_test is unnecessary, since it is >> not required for these tests. Furthermore, if a scratch_dev is not given, >> all tests which are supposed to pass on test_dev fail, because >> _is_block_dev is given an empty string as scratch_dev, and prints usage. > > I'm beginning to sound like a broken record. Why isn't this *invalid > config check* being done in the config parsing rather than on every > test that requires a scratch or test device? > > i.e. removing the check is not the correct fix - checking it during > config parsing means none of these checks need to be done in > _require_test, nor in _require_scratch_nocheck. > > i.e. in get_next_config() we already know the FSTYP, so we should > be checking that: > > a) TEST_DEV is valid for fstyp > b) SCRATCH_DEV (if configured) is valid for fstyp > c) TEST_DEV != SCRATCH_DEV if they both exist and fstyp > indicates they should be block devices > > And then we can pretty much assume that they are valid everywhere > else, and _require_scratch_nocheck() simply needs to check for a > non-empty string... > >> Signed-off-by: Omer Zilberberg >> --- >> common/rc | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/common/rc b/common/rc >> index d5e3aff..b863808 100644 >> --- a/common/rc >> +++ b/common/rc >> @@ -1104,7 +1104,7 @@ _require_scratch() >> } >> >> >> -# this test needs a test partition - check we're ok & unmount it >> +# this test needs a test partition - check we're ok & mount if necessary >> # >> _require_test() >> { >> @@ -1138,10 +1138,6 @@ _require_test() >> then >> _notrun "this test requires a valid \$TEST_DEV" >> fi >> - if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ] >> - then >> - _notrun "this test requires a valid \$TEST_DEV" >> - fi >> if [ ! -d "$TEST_DIR" ] >> then >> _notrun "this test requires a valid \$TEST_DIR" > > The patch is whitespace damaged. Please read: > > https://www.kernel.org/doc/Documentation/email-clients.txt Here's the patch resent with whitespace fixed, at least as a temporary solution... ---- Subject: [PATCH] _required_test: removed unneeded test for scratch_dev testing for scratch_dev in _required_test is unnecessary, since it is not required for these tests. Furthermore, if a scratch_dev is not given, all tests which are supposed to pass on test_dev fail, because _is_block_dev is given an empty string as scratch_dev, and prints usage. Signed-off-by: Omer Zilberberg --- common/rc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/common/rc b/common/rc index d5e3aff..b863808 100644 --- a/common/rc +++ b/common/rc @@ -1104,7 +1104,7 @@ _require_scratch() } -# this test needs a test partition - check we're ok & unmount it +# this test needs a test partition - check we're ok & mount if necessary # _require_test() { @@ -1138,10 +1138,6 @@ _require_test() then _notrun "this test requires a valid \$TEST_DEV" fi - if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ] - then - _notrun "this test requires a valid \$TEST_DEV" - fi if [ ! -d "$TEST_DIR" ] then _notrun "this test requires a valid \$TEST_DIR" From mboxrd@z Thu Jan 1 00:00:00 1970 From: Omer Zilberberg Subject: Re: [PATCH v2 1/5] common: re-enable tests that require scratch dev on NFS Date: Tue, 18 Nov 2014 18:16:28 +0200 Message-ID: <546B70DC.2060502@plexistor.com> References: <1414775040-4051-1-git-send-email-eguan@redhat.com> <1414775040-4051-2-git-send-email-eguan@redhat.com> <20141113033317.GC28565@dastard> <20141115053533.GK2863@dhcp-13-216.nay.redhat.com> <20141117054141.GK23575@dastard> <20141117060603.GO2863@dhcp-13-216.nay.redhat.com> <20141117065443.GL23575@dastard> <546A0BFE.6080608@plexistor.com> <20141117202207.GN23575@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Eryu Guan , Steve French , fstests-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, "linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Weston Andros Adamson To: Dave Chinner Return-path: In-Reply-To: <20141117202207.GN23575@dastard> Sender: linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-cifs.vger.kernel.org On 11/17/2014 10:22 PM, Dave Chinner wrote: > On Mon, Nov 17, 2014 at 04:53:50PM +0200, Omer Zilberberg wrote: >>> Another FYI: we can actually test any filesystem without a scratch >>> device configured: >>> >>> $ sudo TEST_DEV=/dev/vda TEST_DIR=/mnt/test ./check generic/120 >>> FSTYP -- xfs (non-debug) >>> PLATFORM -- Linux/x86_64 test2 3.18.0-rc2-dgc+ >>> >>> generic/120 16s ... [not run] this test requires a valid $SCRATCH_DEV >>> Not run: generic/120 >>> Passed all 0 tests >>> $ >> >> Please note that since commit 83ef157d, that is no longer true, because _require_test calls _is_block_dev with empty parameter, which prints usage: >> $ sudo TEST_DEV=/dev/sda TEST_DIR=/mnt/dev0 ./check generic/001 >> FSTYP -- ext4 >> PLATFORM -- Linux/x86_64 testvm 3.17.0 >> >> generic/001 7s ... - output mismatch (see /opt/xfstests/results//generic/001.out.bad) >> --- tests/generic/001.out 2014-09-10 11:04:44.249185592 +0300 >> +++ /opt/xfstests/results//generic/001.out.bad 2014-11-17 15:14:12.380061760 +0200 >> @@ -1,4 +1,5 @@ >> QA output created by 001 >> +Usage: _is_block_dev dev >> cleanup >> setup .................................... >> iter 1 chain ... check .................................... >> ... >> (Run 'diff -u tests/generic/001.out /opt/xfstests/results//generic/001.out.bad' to see the entire diff) >> Ran: generic/001 >> Failures: generic/001 >> Failed 1 of 1 tests >> >> Here's a patch to fix that: >> ---- >> Subject: [PATCH] _required_test: removed unneeded test for scratch_dev >> >> testing for scratch_dev in _required_test is unnecessary, since it is >> not required for these tests. Furthermore, if a scratch_dev is not given, >> all tests which are supposed to pass on test_dev fail, because >> _is_block_dev is given an empty string as scratch_dev, and prints usage. > > I'm beginning to sound like a broken record. Why isn't this *invalid > config check* being done in the config parsing rather than on every > test that requires a scratch or test device? > > i.e. removing the check is not the correct fix - checking it during > config parsing means none of these checks need to be done in > _require_test, nor in _require_scratch_nocheck. > > i.e. in get_next_config() we already know the FSTYP, so we should > be checking that: > > a) TEST_DEV is valid for fstyp > b) SCRATCH_DEV (if configured) is valid for fstyp > c) TEST_DEV != SCRATCH_DEV if they both exist and fstyp > indicates they should be block devices > > And then we can pretty much assume that they are valid everywhere > else, and _require_scratch_nocheck() simply needs to check for a > non-empty string... > >> Signed-off-by: Omer Zilberberg >> --- >> common/rc | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/common/rc b/common/rc >> index d5e3aff..b863808 100644 >> --- a/common/rc >> +++ b/common/rc >> @@ -1104,7 +1104,7 @@ _require_scratch() >> } >> >> >> -# this test needs a test partition - check we're ok & unmount it >> +# this test needs a test partition - check we're ok & mount if necessary >> # >> _require_test() >> { >> @@ -1138,10 +1138,6 @@ _require_test() >> then >> _notrun "this test requires a valid \$TEST_DEV" >> fi >> - if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ] >> - then >> - _notrun "this test requires a valid \$TEST_DEV" >> - fi >> if [ ! -d "$TEST_DIR" ] >> then >> _notrun "this test requires a valid \$TEST_DIR" > > The patch is whitespace damaged. Please read: > > https://www.kernel.org/doc/Documentation/email-clients.txt Here's the patch resent with whitespace fixed, at least as a temporary solution... ---- Subject: [PATCH] _required_test: removed unneeded test for scratch_dev testing for scratch_dev in _required_test is unnecessary, since it is not required for these tests. Furthermore, if a scratch_dev is not given, all tests which are supposed to pass on test_dev fail, because _is_block_dev is given an empty string as scratch_dev, and prints usage. Signed-off-by: Omer Zilberberg --- common/rc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/common/rc b/common/rc index d5e3aff..b863808 100644 --- a/common/rc +++ b/common/rc @@ -1104,7 +1104,7 @@ _require_scratch() } -# this test needs a test partition - check we're ok & unmount it +# this test needs a test partition - check we're ok & mount if necessary # _require_test() { @@ -1138,10 +1138,6 @@ _require_test() then _notrun "this test requires a valid \$TEST_DEV" fi - if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ] - then - _notrun "this test requires a valid \$TEST_DEV" - fi if [ ! -d "$TEST_DIR" ] then _notrun "this test requires a valid \$TEST_DIR" -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html