From patchwork Thu Jun 21 18:32:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 10480391 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 98B0F60230 for ; Thu, 21 Jun 2018 18:33:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7646829196 for ; Thu, 21 Jun 2018 18:33:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 693D22919C; Thu, 21 Jun 2018 18:33:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DA5C529197 for ; Thu, 21 Jun 2018 18:33:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754089AbeFUSdC (ORCPT ); Thu, 21 Jun 2018 14:33:02 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:52152 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754012AbeFUSdB (ORCPT ); Thu, 21 Jun 2018 14:33:01 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w5LITGXN083011; Thu, 21 Jun 2018 18:32:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : from : to : cc : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=MwwZPISSTWB6xS2PEKisSgJ2nEIFSbUFFmj+U5SbtcQ=; b=NlKa5qk5C10wYMOetXtUs3qC9cajqbYyXxhBp/eO6mhLKIOwvsmj+9Mfm2CElX8C1nOv GL1BOElHfizBdbRUWsBB0x3mmRM1t61oEnORS0a69QIvgO+NrRBtlNl5DZO1tzsWvnzS p6o1OsEIzJ1vmLamlbJwTf9NdVy48pWZUMp0yULIKPt13jsboZQ4EBoOVaDznCYUoVjD 2JEvT4ClFDi3E26BF2dp2m1XeVrN5RvMN7JfF0hxOFZ2ukOIf3Iu7Kc8o25EM4y4ZoCF pu0LcI7th/BpLAaLBbVLW5vgC8IXwpRI6nr0mxOKAnP+IuOB8W8sCe3yjSbMteTMvxa/ lw== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp2130.oracle.com with ESMTP id 2jmr2mubjk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 21 Jun 2018 18:32:59 +0000 Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w5LIWvj1007205 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 21 Jun 2018 18:32:58 GMT Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w5LIWvHY019563; Thu, 21 Jun 2018 18:32:57 GMT Received: from localhost (/67.169.218.210) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 21 Jun 2018 11:32:56 -0700 Subject: [PATCH 4/4] xfs: fuzz every field of every structure and test kernel crashes From: "Darrick J. Wong" To: guaneryu@gmail.com, darrick.wong@oracle.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org Date: Thu, 21 Jun 2018 11:32:55 -0700 Message-ID: <152960597579.26479.1694478608504574104.stgit@magnolia> In-Reply-To: <152960594943.26479.1457883867468749220.stgit@magnolia> References: <152960594943.26479.1457883867468749220.stgit@magnolia> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8931 signatures=668703 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1805220000 definitions=main-1806210199 Sender: fstests-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Darrick J. Wong Fuzz every field of every structure and then try to write the filesystem, to see how many of these writes can crash the kernel. Signed-off-by: Darrick J. Wong --- common/fuzzy | 42 ++++++++++++++++++++++++------------------ tests/xfs/1387 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1387.out | 4 ++++ tests/xfs/1388 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1388.out | 4 ++++ tests/xfs/1389 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1389.out | 6 ++++++ tests/xfs/1390 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1390.out | 4 ++++ tests/xfs/1391 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1391.out | 4 ++++ tests/xfs/1392 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1392.out | 4 ++++ tests/xfs/1393 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1393.out | 4 ++++ tests/xfs/1394 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1394.out | 4 ++++ tests/xfs/1395 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1395.out | 4 ++++ tests/xfs/1396 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1396.out | 4 ++++ tests/xfs/1397 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1397.out | 4 ++++ tests/xfs/1398 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1398.out | 4 ++++ tests/xfs/1399 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1399.out | 5 +++++ tests/xfs/1400 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1400.out | 5 +++++ tests/xfs/1401 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1401.out | 5 +++++ tests/xfs/1402 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1402.out | 5 +++++ tests/xfs/1403 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1403.out | 5 +++++ tests/xfs/1404 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1404.out | 5 +++++ tests/xfs/1405 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1405.out | 5 +++++ tests/xfs/1406 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1406.out | 5 +++++ tests/xfs/1407 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1407.out | 5 +++++ tests/xfs/1408 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1408.out | 5 +++++ tests/xfs/1409 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1409.out | 5 +++++ tests/xfs/1410 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1410.out | 5 +++++ tests/xfs/1411 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1411.out | 5 +++++ tests/xfs/1412 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1412.out | 5 +++++ tests/xfs/1413 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1413.out | 5 +++++ tests/xfs/1414 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1414.out | 5 +++++ tests/xfs/1415 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1415.out | 4 ++++ tests/xfs/1416 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1416.out | 4 ++++ tests/xfs/1417 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1417.out | 4 ++++ tests/xfs/1418 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1418.out | 5 +++++ tests/xfs/1419 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1419.out | 5 +++++ tests/xfs/1420 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1420.out | 5 +++++ tests/xfs/1421 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1421.out | 4 ++++ tests/xfs/1422 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1422.out | 4 ++++ tests/xfs/1423 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1423.out | 4 ++++ tests/xfs/group | 37 +++++++++++++++++++++++++++++++++++++ 76 files changed, 2028 insertions(+), 18 deletions(-) create mode 100755 tests/xfs/1387 create mode 100644 tests/xfs/1387.out create mode 100755 tests/xfs/1388 create mode 100644 tests/xfs/1388.out create mode 100755 tests/xfs/1389 create mode 100644 tests/xfs/1389.out create mode 100755 tests/xfs/1390 create mode 100644 tests/xfs/1390.out create mode 100755 tests/xfs/1391 create mode 100644 tests/xfs/1391.out create mode 100755 tests/xfs/1392 create mode 100644 tests/xfs/1392.out create mode 100755 tests/xfs/1393 create mode 100644 tests/xfs/1393.out create mode 100755 tests/xfs/1394 create mode 100644 tests/xfs/1394.out create mode 100755 tests/xfs/1395 create mode 100644 tests/xfs/1395.out create mode 100755 tests/xfs/1396 create mode 100644 tests/xfs/1396.out create mode 100755 tests/xfs/1397 create mode 100644 tests/xfs/1397.out create mode 100755 tests/xfs/1398 create mode 100644 tests/xfs/1398.out create mode 100755 tests/xfs/1399 create mode 100644 tests/xfs/1399.out create mode 100755 tests/xfs/1400 create mode 100644 tests/xfs/1400.out create mode 100755 tests/xfs/1401 create mode 100644 tests/xfs/1401.out create mode 100755 tests/xfs/1402 create mode 100644 tests/xfs/1402.out create mode 100755 tests/xfs/1403 create mode 100644 tests/xfs/1403.out create mode 100755 tests/xfs/1404 create mode 100644 tests/xfs/1404.out create mode 100755 tests/xfs/1405 create mode 100644 tests/xfs/1405.out create mode 100755 tests/xfs/1406 create mode 100644 tests/xfs/1406.out create mode 100755 tests/xfs/1407 create mode 100644 tests/xfs/1407.out create mode 100755 tests/xfs/1408 create mode 100644 tests/xfs/1408.out create mode 100755 tests/xfs/1409 create mode 100644 tests/xfs/1409.out create mode 100755 tests/xfs/1410 create mode 100644 tests/xfs/1410.out create mode 100755 tests/xfs/1411 create mode 100644 tests/xfs/1411.out create mode 100755 tests/xfs/1412 create mode 100644 tests/xfs/1412.out create mode 100755 tests/xfs/1413 create mode 100644 tests/xfs/1413.out create mode 100755 tests/xfs/1414 create mode 100644 tests/xfs/1414.out create mode 100755 tests/xfs/1415 create mode 100644 tests/xfs/1415.out create mode 100755 tests/xfs/1416 create mode 100644 tests/xfs/1416.out create mode 100755 tests/xfs/1417 create mode 100644 tests/xfs/1417.out create mode 100755 tests/xfs/1418 create mode 100644 tests/xfs/1418.out create mode 100755 tests/xfs/1419 create mode 100644 tests/xfs/1419.out create mode 100755 tests/xfs/1420 create mode 100644 tests/xfs/1420.out create mode 100755 tests/xfs/1421 create mode 100644 tests/xfs/1421.out create mode 100755 tests/xfs/1422 create mode 100644 tests/xfs/1422.out create mode 100755 tests/xfs/1423 create mode 100644 tests/xfs/1423.out -- 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 diff --git a/common/fuzzy b/common/fuzzy index 025f2615..5f46d4fb 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -169,7 +169,7 @@ __fuzz_notify() { # Fuzz one field of some piece of metadata. # First arg is the field name # Second arg is the fuzz verb (ones, zeroes, random, add, sub...) -# Third arg is the repair mode (online, offline, both) +# Third arg is the repair mode (online, offline, both, none) __scratch_xfs_fuzz_field_test() { field="$1" fuzzverb="$2" @@ -190,12 +190,14 @@ __scratch_xfs_fuzz_field_test() { if [ $res -eq 0 ]; then # Try an online scrub unless we're fuzzing ag 0's sb, # which scrub doesn't know how to fix. - echo "++ Online scrub" - if [ "$1" != "sb 0" ]; then - _scratch_scrub -n -a 1 -e continue 2>&1 - res=$? - test $res -eq 0 && \ - (>&2 echo "scrub didn't fail with ${field} = ${fuzzverb}.") + if [ "${repair}" != "none" ]; then + echo "++ Online scrub" + if [ "$1" != "sb 0" ]; then + _scratch_scrub -n -a 1 -e continue 2>&1 + res=$? + test $res -eq 0 && \ + (>&2 echo "scrub didn't fail with ${field} = ${fuzzverb}.") + fi fi # Try fixing the filesystem online?! @@ -222,11 +224,13 @@ __scratch_xfs_fuzz_field_test() { fi # See if repair finds a clean fs - echo "+ Make sure error is gone (offline)" - _scratch_xfs_repair -n 2>&1 - res=$? - test $res -ne 0 && \ - (>&2 echo "offline re-scrub ($res) with ${field} = ${fuzzverb}.") + if [ "${repair}" != "none" ]; then + echo "+ Make sure error is gone (offline)" + _scratch_xfs_repair -n 2>&1 + res=$? + test $res -ne 0 && \ + (>&2 echo "offline re-scrub ($res) with ${field} = ${fuzzverb}.") + fi # See if scrub finds a clean fs echo "+ Make sure error is gone (online)" @@ -235,12 +239,14 @@ __scratch_xfs_fuzz_field_test() { if [ $res -eq 0 ]; then # Try an online scrub unless we're fuzzing ag 0's sb, # which scrub doesn't know how to fix. - echo "++ Online scrub" - if [ "$1" != "sb 0" ]; then - _scratch_scrub -n -e continue 2>&1 - res=$? - test $res -ne 0 && \ - (>&2 echo "online re-scrub ($res) with ${field} = ${fuzzverb}.") + if [ "${repair}" != "none" ]; then + echo "++ Online scrub" + if [ "$1" != "sb 0" ]; then + _scratch_scrub -n -e continue 2>&1 + res=$? + test $res -ne 0 && \ + (>&2 echo "online re-scrub ($res) with ${field} = ${fuzzverb}.") + fi fi # Try modifying the filesystem again! diff --git a/tests/xfs/1387 b/tests/xfs/1387 new file mode 100755 index 00000000..6e7c3ec4 --- /dev/null +++ b/tests/xfs/1387 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1387 +# +# Populate a XFS filesystem and fuzz every superblock field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz superblock" +_scratch_xfs_fuzz_metadata '' 'none' 'sb 1' >> $seqres.full +echo "Done fuzzing superblock" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1387.out b/tests/xfs/1387.out new file mode 100644 index 00000000..67adab71 --- /dev/null +++ b/tests/xfs/1387.out @@ -0,0 +1,4 @@ +QA output created by 1387 +Format and populate +Fuzz superblock +Done fuzzing superblock diff --git a/tests/xfs/1388 b/tests/xfs/1388 new file mode 100755 index 00000000..dab00852 --- /dev/null +++ b/tests/xfs/1388 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1388 +# +# Populate a XFS filesystem and fuzz every AGF field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGF" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' >> $seqres.full +echo "Done fuzzing AGF" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1388.out b/tests/xfs/1388.out new file mode 100644 index 00000000..5b3b8077 --- /dev/null +++ b/tests/xfs/1388.out @@ -0,0 +1,4 @@ +QA output created by 1388 +Format and populate +Fuzz AGF +Done fuzzing AGF diff --git a/tests/xfs/1389 b/tests/xfs/1389 new file mode 100755 index 00000000..2c4c79b1 --- /dev/null +++ b/tests/xfs/1389 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1389 +# +# Populate a XFS filesystem and fuzz every AGFL field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGFL" +_scratch_xfs_fuzz_metadata '' 'none' 'agfl 0' >> $seqres.full +echo "Done fuzzing AGFL" + +echo "Fuzz AGFL flfirst" +flfirst=$(_scratch_xfs_db -c 'agf 0' -c 'p flfirst' | sed -e 's/flfirst = //g') +SCRATCH_XFS_LIST_METADATA_FIELDS="bno[${flfirst}]" _scratch_xfs_fuzz_metadata '' 'none' 'agfl 0' >> $seqres.full +echo "Done fuzzing AGFL flfirst" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1389.out b/tests/xfs/1389.out new file mode 100644 index 00000000..7f7db14c --- /dev/null +++ b/tests/xfs/1389.out @@ -0,0 +1,6 @@ +QA output created by 1389 +Format and populate +Fuzz AGFL +Done fuzzing AGFL +Fuzz AGFL flfirst +Done fuzzing AGFL flfirst diff --git a/tests/xfs/1390 b/tests/xfs/1390 new file mode 100755 index 00000000..2d22d5df --- /dev/null +++ b/tests/xfs/1390 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1390 +# +# Populate a XFS filesystem and fuzz every AGI field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGI" +_scratch_xfs_fuzz_metadata '' 'none' 'agi 0' >> $seqres.full +echo "Done fuzzing AGI" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1390.out b/tests/xfs/1390.out new file mode 100644 index 00000000..0119f32b --- /dev/null +++ b/tests/xfs/1390.out @@ -0,0 +1,4 @@ +QA output created by 1390 +Format and populate +Fuzz AGI +Done fuzzing AGI diff --git a/tests/xfs/1391 b/tests/xfs/1391 new file mode 100755 index 00000000..8ae90e0c --- /dev/null +++ b/tests/xfs/1391 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1391 +# +# Populate a XFS filesystem and fuzz every bnobt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz bnobt recs" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr bnoroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing bnobt recs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1391.out b/tests/xfs/1391.out new file mode 100644 index 00000000..382b0902 --- /dev/null +++ b/tests/xfs/1391.out @@ -0,0 +1,4 @@ +QA output created by 1391 +Format and populate +Fuzz bnobt recs +Done fuzzing bnobt recs diff --git a/tests/xfs/1392 b/tests/xfs/1392 new file mode 100755 index 00000000..1b3e6fd4 --- /dev/null +++ b/tests/xfs/1392 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1392 +# +# Populate a XFS filesystem and fuzz every bnobt key/pointer. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz bnobt keyptr" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr bnoroot' >> $seqres.full +echo "Done fuzzing bnobt keyptr" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1392.out b/tests/xfs/1392.out new file mode 100644 index 00000000..e7b9c660 --- /dev/null +++ b/tests/xfs/1392.out @@ -0,0 +1,4 @@ +QA output created by 1392 +Format and populate +Fuzz bnobt keyptr +Done fuzzing bnobt keyptr diff --git a/tests/xfs/1393 b/tests/xfs/1393 new file mode 100755 index 00000000..d1f87f0d --- /dev/null +++ b/tests/xfs/1393 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1393 +# +# Populate a XFS filesystem and fuzz every cntbt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz cntbt" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr cntroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing cntbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1393.out b/tests/xfs/1393.out new file mode 100644 index 00000000..d63c8ca9 --- /dev/null +++ b/tests/xfs/1393.out @@ -0,0 +1,4 @@ +QA output created by 1393 +Format and populate +Fuzz cntbt +Done fuzzing cntbt diff --git a/tests/xfs/1394 b/tests/xfs/1394 new file mode 100755 index 00000000..e95627cd --- /dev/null +++ b/tests/xfs/1394 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1394 +# +# Populate a XFS filesystem and fuzz every inobt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz inobt" +_scratch_xfs_fuzz_metadata '' 'none' 'agi 1' 'addr root' >> $seqres.full +echo "Done fuzzing inobt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1394.out b/tests/xfs/1394.out new file mode 100644 index 00000000..83277856 --- /dev/null +++ b/tests/xfs/1394.out @@ -0,0 +1,4 @@ +QA output created by 1394 +Format and populate +Fuzz inobt +Done fuzzing inobt diff --git a/tests/xfs/1395 b/tests/xfs/1395 new file mode 100755 index 00000000..3d828740 --- /dev/null +++ b/tests/xfs/1395 @@ -0,0 +1,46 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1395 +# +# Populate a XFS filesystem and fuzz every finobt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_require_xfs_finobt + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz finobt" +_scratch_xfs_fuzz_metadata '' 'none' 'agi 0' 'addr free_root' >> $seqres.full +echo "Done fuzzing finobt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1395.out b/tests/xfs/1395.out new file mode 100644 index 00000000..408f894b --- /dev/null +++ b/tests/xfs/1395.out @@ -0,0 +1,4 @@ +QA output created by 1395 +Format and populate +Fuzz finobt +Done fuzzing finobt diff --git a/tests/xfs/1396 b/tests/xfs/1396 new file mode 100755 index 00000000..09504c0a --- /dev/null +++ b/tests/xfs/1396 @@ -0,0 +1,46 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1396 +# +# Populate a XFS filesystem and fuzz every rmapbt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz rmapbt recs" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr rmaproot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing rmapbt recs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1396.out b/tests/xfs/1396.out new file mode 100644 index 00000000..ee974659 --- /dev/null +++ b/tests/xfs/1396.out @@ -0,0 +1,4 @@ +QA output created by 1396 +Format and populate +Fuzz rmapbt recs +Done fuzzing rmapbt recs diff --git a/tests/xfs/1397 b/tests/xfs/1397 new file mode 100755 index 00000000..23f4cc3e --- /dev/null +++ b/tests/xfs/1397 @@ -0,0 +1,46 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1397 +# +# Populate a XFS filesystem and fuzz every rmapbt key/pointer field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz rmapbt keyptr" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr rmaproot' >> $seqres.full +echo "Done fuzzing rmapbt keyptr" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1397.out b/tests/xfs/1397.out new file mode 100644 index 00000000..01258bbe --- /dev/null +++ b/tests/xfs/1397.out @@ -0,0 +1,4 @@ +QA output created by 1397 +Format and populate +Fuzz rmapbt keyptr +Done fuzzing rmapbt keyptr diff --git a/tests/xfs/1398 b/tests/xfs/1398 new file mode 100755 index 00000000..fbd9d454 --- /dev/null +++ b/tests/xfs/1398 @@ -0,0 +1,47 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1398 +# +# Populate a XFS filesystem and fuzz every refcountbt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/reflink + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_reflink +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz refcountbt" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr refcntroot' >> $seqres.full +echo "Done fuzzing refcountbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1398.out b/tests/xfs/1398.out new file mode 100644 index 00000000..ab572804 --- /dev/null +++ b/tests/xfs/1398.out @@ -0,0 +1,4 @@ +QA output created by 1398 +Format and populate +Fuzz refcountbt +Done fuzzing refcountbt diff --git a/tests/xfs/1399 b/tests/xfs/1399 new file mode 100755 index 00000000..9c3c7849 --- /dev/null +++ b/tests/xfs/1399 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1399 +# +# Populate a XFS filesystem and fuzz every btree-format directory inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find btree-format dir inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_BTREE) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1399.out b/tests/xfs/1399.out new file mode 100644 index 00000000..f57a3648 --- /dev/null +++ b/tests/xfs/1399.out @@ -0,0 +1,5 @@ +QA output created by 1399 +Format and populate +Find btree-format dir inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1400 b/tests/xfs/1400 new file mode 100755 index 00000000..99baf6f9 --- /dev/null +++ b/tests/xfs/1400 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1400 +# +# Populate a XFS filesystem and fuzz every extents-format file inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find extents-format file inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFREG.FMT_EXTENTS) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1400.out b/tests/xfs/1400.out new file mode 100644 index 00000000..5415c8d6 --- /dev/null +++ b/tests/xfs/1400.out @@ -0,0 +1,5 @@ +QA output created by 1400 +Format and populate +Find extents-format file inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1401 b/tests/xfs/1401 new file mode 100755 index 00000000..eea55ae4 --- /dev/null +++ b/tests/xfs/1401 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1401 +# +# Populate a XFS filesystem and fuzz every btree-format file inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find btree-format file inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFREG.FMT_BTREE) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1401.out b/tests/xfs/1401.out new file mode 100644 index 00000000..6dbf00f0 --- /dev/null +++ b/tests/xfs/1401.out @@ -0,0 +1,5 @@ +QA output created by 1401 +Format and populate +Find btree-format file inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1402 b/tests/xfs/1402 new file mode 100755 index 00000000..53bf64e7 --- /dev/null +++ b/tests/xfs/1402 @@ -0,0 +1,52 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1402 +# +# Populate a XFS filesystem and fuzz every bmbt block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find bmbt block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFREG.FMT_BTREE) +_scratch_unmount + +inode_ver=$(_scratch_xfs_get_metadata_field "core.version" "inode ${inum}") + +echo "Fuzz bmbt" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "addr u${inode_ver}.bmbt.ptrs[1]" >> $seqres.full +echo "Done fuzzing bmbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1402.out b/tests/xfs/1402.out new file mode 100644 index 00000000..78f7424e --- /dev/null +++ b/tests/xfs/1402.out @@ -0,0 +1,5 @@ +QA output created by 1402 +Format and populate +Find bmbt block +Fuzz bmbt +Done fuzzing bmbt diff --git a/tests/xfs/1403 b/tests/xfs/1403 new file mode 100755 index 00000000..f504cc35 --- /dev/null +++ b/tests/xfs/1403 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1403 +# +# Populate a XFS filesystem and fuzz every symlink remote block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find symlink remote block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFLNK.FMT_EXTENTS) +_scratch_unmount + +echo "Fuzz symlink remote block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" 'dblock 0' >> $seqres.full +echo "Done fuzzing symlink remote block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1403.out b/tests/xfs/1403.out new file mode 100644 index 00000000..3ff10063 --- /dev/null +++ b/tests/xfs/1403.out @@ -0,0 +1,5 @@ +QA output created by 1403 +Format and populate +Find symlink remote block +Fuzz symlink remote block +Done fuzzing symlink remote block diff --git a/tests/xfs/1404 b/tests/xfs/1404 new file mode 100755 index 00000000..e3b1978b --- /dev/null +++ b/tests/xfs/1404 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1404 +# +# Populate a XFS filesystem and fuzz every inline directory inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find inline-format dir inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_INLINE) +_scratch_unmount + +echo "Fuzz inline-format dir inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inline-format dir inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1404.out b/tests/xfs/1404.out new file mode 100644 index 00000000..106ff63e --- /dev/null +++ b/tests/xfs/1404.out @@ -0,0 +1,5 @@ +QA output created by 1404 +Format and populate +Find inline-format dir inode +Fuzz inline-format dir inode +Done fuzzing inline-format dir inode diff --git a/tests/xfs/1405 b/tests/xfs/1405 new file mode 100755 index 00000000..7d6dbbdb --- /dev/null +++ b/tests/xfs/1405 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1405 +# +# Populate a XFS filesystem and fuzz every block-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find data-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_BLOCK) +_scratch_unmount + +echo "Fuzz data-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" 'dblock 0' >> $seqres.full +echo "Done fuzzing data-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1405.out b/tests/xfs/1405.out new file mode 100644 index 00000000..3f194d24 --- /dev/null +++ b/tests/xfs/1405.out @@ -0,0 +1,5 @@ +QA output created by 1405 +Format and populate +Find data-format dir block +Fuzz data-format dir block +Done fuzzing data-format dir block diff --git a/tests/xfs/1406 b/tests/xfs/1406 new file mode 100755 index 00000000..f5df8f65 --- /dev/null +++ b/tests/xfs/1406 @@ -0,0 +1,51 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1406 +# +# Populate a XFS filesystem and fuzz every data-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find data-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_LEAF) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +echo "Fuzz data-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "dblock 0" >> $seqres.full +echo "Done fuzzing data-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1406.out b/tests/xfs/1406.out new file mode 100644 index 00000000..32e8749f --- /dev/null +++ b/tests/xfs/1406.out @@ -0,0 +1,5 @@ +QA output created by 1406 +Format and populate +Find data-format dir block +Fuzz data-format dir block +Done fuzzing data-format dir block diff --git a/tests/xfs/1407 b/tests/xfs/1407 new file mode 100755 index 00000000..d9ba2bef --- /dev/null +++ b/tests/xfs/1407 @@ -0,0 +1,52 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1407 +# +# Populate a XFS filesystem and fuzz every leaf1-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find leaf1-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_LEAF) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +leaf_offset=$(( (2 ** 35) / blk_sz)) +echo "Fuzz leaf1-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full +echo "Done fuzzing leaf1-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1407.out b/tests/xfs/1407.out new file mode 100644 index 00000000..f9b8c3e1 --- /dev/null +++ b/tests/xfs/1407.out @@ -0,0 +1,5 @@ +QA output created by 1407 +Format and populate +Find leaf1-format dir block +Fuzz leaf1-format dir block +Done fuzzing leaf1-format dir block diff --git a/tests/xfs/1408 b/tests/xfs/1408 new file mode 100755 index 00000000..609080ce --- /dev/null +++ b/tests/xfs/1408 @@ -0,0 +1,52 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1408 +# +# Populate a XFS filesystem and fuzz every leafn-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find leafn-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_NODE) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +leaf_offset=$(( ( (2 ** 35) / blk_sz) + 1)) +echo "Fuzz leafn-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full +echo "Done fuzzing leafn-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1408.out b/tests/xfs/1408.out new file mode 100644 index 00000000..b404dd87 --- /dev/null +++ b/tests/xfs/1408.out @@ -0,0 +1,5 @@ +QA output created by 1408 +Format and populate +Find leafn-format dir block +Fuzz leafn-format dir block +Done fuzzing leafn-format dir block diff --git a/tests/xfs/1409 b/tests/xfs/1409 new file mode 100755 index 00000000..5af0f572 --- /dev/null +++ b/tests/xfs/1409 @@ -0,0 +1,52 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1409 +# +# Populate a XFS filesystem and fuzz every node-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find node-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_NODE) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +leaf_offset=$(( (2 ** 35) / blk_sz )) +echo "Fuzz node-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full +echo "Done fuzzing node-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1409.out b/tests/xfs/1409.out new file mode 100644 index 00000000..e0b5ae0b --- /dev/null +++ b/tests/xfs/1409.out @@ -0,0 +1,5 @@ +QA output created by 1409 +Format and populate +Find node-format dir block +Fuzz node-format dir block +Done fuzzing node-format dir block diff --git a/tests/xfs/1410 b/tests/xfs/1410 new file mode 100755 index 00000000..b98ca791 --- /dev/null +++ b/tests/xfs/1410 @@ -0,0 +1,52 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1410 +# +# Populate a XFS filesystem and fuzz every freeindex-format dir block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find freeindex-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_NODE) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +leaf_offset=$(( (2 ** 36) / blk_sz )) +echo "Fuzz freeindex-format dir block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full +echo "Done fuzzing freeindex-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1410.out b/tests/xfs/1410.out new file mode 100644 index 00000000..0e60d89d --- /dev/null +++ b/tests/xfs/1410.out @@ -0,0 +1,5 @@ +QA output created by 1410 +Format and populate +Find freeindex-format dir block +Fuzz freeindex-format dir block +Done fuzzing freeindex-format dir block diff --git a/tests/xfs/1411 b/tests/xfs/1411 new file mode 100755 index 00000000..8f6de99a --- /dev/null +++ b/tests/xfs/1411 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1411 +# +# Populate a XFS filesystem and fuzz every inline attr inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find inline-format attr inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_LOCAL) +_scratch_unmount + +echo "Fuzz inline-format attr inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inline-format attr inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1411.out b/tests/xfs/1411.out new file mode 100644 index 00000000..16cfbfa6 --- /dev/null +++ b/tests/xfs/1411.out @@ -0,0 +1,5 @@ +QA output created by 1411 +Format and populate +Find inline-format attr inode +Fuzz inline-format attr inode +Done fuzzing inline-format attr inode diff --git a/tests/xfs/1412 b/tests/xfs/1412 new file mode 100755 index 00000000..f63e59ec --- /dev/null +++ b/tests/xfs/1412 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1412 +# +# Populate a XFS filesystem and fuzz every leaf-format attr block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find leaf-format attr block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_LEAF) +_scratch_unmount + +echo "Fuzz leaf-format attr block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" 'ablock 0' >> $seqres.full +echo "Done fuzzing leaf-format attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1412.out b/tests/xfs/1412.out new file mode 100644 index 00000000..41614772 --- /dev/null +++ b/tests/xfs/1412.out @@ -0,0 +1,5 @@ +QA output created by 1412 +Format and populate +Find leaf-format attr block +Fuzz leaf-format attr block +Done fuzzing leaf-format attr block diff --git a/tests/xfs/1413 b/tests/xfs/1413 new file mode 100755 index 00000000..22cae22e --- /dev/null +++ b/tests/xfs/1413 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1413 +# +# Populate a XFS filesystem and fuzz every node-format attr block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find node-format attr block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_NODE) +_scratch_unmount + +echo "Fuzz node-format attr block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "ablock 0" >> $seqres.full +echo "Done fuzzing node-format attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1413.out b/tests/xfs/1413.out new file mode 100644 index 00000000..7c295771 --- /dev/null +++ b/tests/xfs/1413.out @@ -0,0 +1,5 @@ +QA output created by 1413 +Format and populate +Find node-format attr block +Fuzz node-format attr block +Done fuzzing node-format attr block diff --git a/tests/xfs/1414 b/tests/xfs/1414 new file mode 100755 index 00000000..a6c96d8e --- /dev/null +++ b/tests/xfs/1414 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1414 +# +# Populate a XFS filesystem and fuzz every external attr block field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find external attr block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_EXTENTS_REMOTE3K) +_scratch_unmount + +echo "Fuzz external attr block" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" "ablock 1" >> $seqres.full +echo "Done fuzzing external attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1414.out b/tests/xfs/1414.out new file mode 100644 index 00000000..ede45f43 --- /dev/null +++ b/tests/xfs/1414.out @@ -0,0 +1,5 @@ +QA output created by 1414 +Format and populate +Find external attr block +Fuzz external attr block +Done fuzzing external attr block diff --git a/tests/xfs/1415 b/tests/xfs/1415 new file mode 100755 index 00000000..711b9ec0 --- /dev/null +++ b/tests/xfs/1415 @@ -0,0 +1,49 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1415 +# +# Populate a XFS filesystem and fuzz every rtrmapbt record field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_realtime +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +inode_ver=$(_scratch_xfs_get_metadata_field "core.version" 'sb 0' 'addr rrmapino') + +echo "Fuzz rtrmapbt recs" +_scratch_xfs_fuzz_metadata '' 'none' 'sb 0' 'addr rrmapino' "addr u${inode_ver}.rtrmapbt.ptrs[1]" >> $seqres.full +echo "Done fuzzing rtrmapbt recs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1415.out b/tests/xfs/1415.out new file mode 100644 index 00000000..d23b46bf --- /dev/null +++ b/tests/xfs/1415.out @@ -0,0 +1,4 @@ +QA output created by 1415 +Format and populate +Fuzz rtrmapbt recs +Done fuzzing rtrmapbt recs diff --git a/tests/xfs/1416 b/tests/xfs/1416 new file mode 100755 index 00000000..addc9342 --- /dev/null +++ b/tests/xfs/1416 @@ -0,0 +1,47 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1416 +# +# Populate a XFS filesystem and fuzz every rtrmapbt keyptr field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_realtime +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz rtrmapbt keyptrs" +_scratch_xfs_fuzz_metadata '(rtrmapbt)' 'offline' 'sb 0' 'addr rrmapino' >> $seqres.full +echo "Done fuzzing rtrmapbt keyptrs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1416.out b/tests/xfs/1416.out new file mode 100644 index 00000000..e368a20e --- /dev/null +++ b/tests/xfs/1416.out @@ -0,0 +1,4 @@ +QA output created by 1416 +Format and populate +Fuzz rtrmapbt keyptrs +Done fuzzing rtrmapbt keyptrs diff --git a/tests/xfs/1417 b/tests/xfs/1417 new file mode 100755 index 00000000..c7a990a2 --- /dev/null +++ b/tests/xfs/1417 @@ -0,0 +1,47 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1417 +# +# Populate a XFS filesystem and fuzz every refcountbt field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/reflink + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_reflink +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz refcountbt" +_scratch_xfs_fuzz_metadata '' 'none' 'agf 0' 'addr refcntroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing refcountbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1417.out b/tests/xfs/1417.out new file mode 100644 index 00000000..4a505f1c --- /dev/null +++ b/tests/xfs/1417.out @@ -0,0 +1,4 @@ +QA output created by 1417 +Format and populate +Fuzz refcountbt +Done fuzzing refcountbt diff --git a/tests/xfs/1418 b/tests/xfs/1418 new file mode 100755 index 00000000..d722d233 --- /dev/null +++ b/tests/xfs/1418 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1418 +# +# Populate a XFS filesystem and fuzz every btree-format attr inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find btree-format attr inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_BTREE) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1418.out b/tests/xfs/1418.out new file mode 100644 index 00000000..d5864640 --- /dev/null +++ b/tests/xfs/1418.out @@ -0,0 +1,5 @@ +QA output created by 1418 +Format and populate +Find btree-format attr inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1419 b/tests/xfs/1419 new file mode 100755 index 00000000..79467be8 --- /dev/null +++ b/tests/xfs/1419 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1419 +# +# Populate a XFS filesystem and fuzz every blockdev inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find blockdev inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFBLK) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1419.out b/tests/xfs/1419.out new file mode 100644 index 00000000..10af3bb3 --- /dev/null +++ b/tests/xfs/1419.out @@ -0,0 +1,5 @@ +QA output created by 1419 +Format and populate +Find blockdev inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1420 b/tests/xfs/1420 new file mode 100755 index 00000000..b07205bd --- /dev/null +++ b/tests/xfs/1420 @@ -0,0 +1,50 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1420 +# +# Populate a XFS filesystem and fuzz every local-format symlink inode field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find local-format symlink inode" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFLNK.FMT_LOCAL) +_scratch_unmount + +echo "Fuzz inode" +_scratch_xfs_fuzz_metadata '' 'none' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1420.out b/tests/xfs/1420.out new file mode 100644 index 00000000..c82242ce --- /dev/null +++ b/tests/xfs/1420.out @@ -0,0 +1,5 @@ +QA output created by 1420 +Format and populate +Find local-format symlink inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/1421 b/tests/xfs/1421 new file mode 100755 index 00000000..81f83e11 --- /dev/null +++ b/tests/xfs/1421 @@ -0,0 +1,48 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1421 +# +# Populate a XFS filesystem and fuzz every user dquot field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_require_quota + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 +echo "${MOUNT_OPTIONS}" | grep -q 'usrquota' || _notrun "user quota disabled" + +echo "Fuzz user 0 dquot" +_scratch_xfs_fuzz_metadata '' 'none' "dquot -u 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1421.out b/tests/xfs/1421.out new file mode 100644 index 00000000..8a50226a --- /dev/null +++ b/tests/xfs/1421.out @@ -0,0 +1,4 @@ +QA output created by 1421 +Format and populate +Fuzz user 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/1422 b/tests/xfs/1422 new file mode 100755 index 00000000..8a74edad --- /dev/null +++ b/tests/xfs/1422 @@ -0,0 +1,48 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1422 +# +# Populate a XFS filesystem and fuzz every group dquot field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_require_quota + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 +echo "${MOUNT_OPTIONS}" | grep -q 'grpquota' || _notrun "group quota disabled" + +echo "Fuzz group 0 dquot" +_scratch_xfs_fuzz_metadata '' 'none' "dquot -g 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1422.out b/tests/xfs/1422.out new file mode 100644 index 00000000..728e73f7 --- /dev/null +++ b/tests/xfs/1422.out @@ -0,0 +1,4 @@ +QA output created by 1422 +Format and populate +Fuzz group 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/1423 b/tests/xfs/1423 new file mode 100755 index 00000000..f49fbfde --- /dev/null +++ b/tests/xfs/1423 @@ -0,0 +1,48 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2018 Oracle, Inc. All rights reserved. +# +# FS QA Test No. 1423 +# +# Populate a XFS filesystem and fuzz every project dquot field. +# Do not fix the filesystem, to test metadata verifiers. + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 7 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_os Linux +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_require_quota + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 +echo "${MOUNT_OPTIONS}" | grep -q 'prjquota' || _notrun "project quota disabled" + +echo "Fuzz project 0 dquot" +_scratch_xfs_fuzz_metadata '' 'none' "dquot -p 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/1423.out b/tests/xfs/1423.out new file mode 100644 index 00000000..8a679f76 --- /dev/null +++ b/tests/xfs/1423.out @@ -0,0 +1,4 @@ +QA output created by 1423 +Format and populate +Fuzz project 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/group b/tests/xfs/group index 2f1c8467..b70b4134 100644 --- a/tests/xfs/group +++ b/tests/xfs/group @@ -448,3 +448,40 @@ 448 auto quick fuzzers 449 auto quick 712 auto quick rmap +1387 dangerous_fuzzers dangerous_norepair +1388 dangerous_fuzzers dangerous_norepair +1389 dangerous_fuzzers dangerous_norepair +1390 dangerous_fuzzers dangerous_norepair +1391 dangerous_fuzzers dangerous_norepair +1392 dangerous_fuzzers dangerous_norepair +1393 dangerous_fuzzers dangerous_norepair +1394 dangerous_fuzzers dangerous_norepair +1395 dangerous_fuzzers dangerous_norepair +1396 dangerous_fuzzers dangerous_norepair +1397 dangerous_fuzzers dangerous_norepair +1398 dangerous_fuzzers dangerous_norepair +1399 dangerous_fuzzers dangerous_norepair +1400 dangerous_fuzzers dangerous_norepair +1401 dangerous_fuzzers dangerous_norepair +1402 dangerous_fuzzers dangerous_norepair +1403 dangerous_fuzzers dangerous_norepair +1404 dangerous_fuzzers dangerous_norepair +1405 dangerous_fuzzers dangerous_norepair +1406 dangerous_fuzzers dangerous_norepair +1407 dangerous_fuzzers dangerous_norepair +1408 dangerous_fuzzers dangerous_norepair +1409 dangerous_fuzzers dangerous_norepair +1410 dangerous_fuzzers dangerous_norepair +1411 dangerous_fuzzers dangerous_norepair +1412 dangerous_fuzzers dangerous_norepair +1413 dangerous_fuzzers dangerous_norepair +1414 dangerous_fuzzers dangerous_norepair +1415 dangerous_fuzzers dangerous_norepair +1416 dangerous_fuzzers dangerous_norepair +1417 dangerous_fuzzers dangerous_norepair +1418 dangerous_fuzzers dangerous_norepair +1419 dangerous_fuzzers dangerous_norepair +1420 dangerous_fuzzers dangerous_norepair +1421 dangerous_fuzzers dangerous_norepair +1422 dangerous_fuzzers dangerous_norepair +1423 dangerous_fuzzers dangerous_norepair