From 53065fa4dcccb69e29c8d9a950ef021418b878a0 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Fri, 30 Dec 2022 14:19:45 -0800 Subject: [PATCH] xfs: fuzz test both repair strategies Add more fuzz tests to examine the effectiveness of online and then offline repair. Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang Signed-off-by: Zorro Lang --- tests/xfs/747 | 35 +++++++++++++++++++++++++++++++++ tests/xfs/747.out | 4 ++++ tests/xfs/748 | 35 +++++++++++++++++++++++++++++++++ tests/xfs/748.out | 4 ++++ tests/xfs/749 | 45 +++++++++++++++++++++++++++++++++++++++++++ tests/xfs/749.out | 6 ++++++ tests/xfs/750 | 35 +++++++++++++++++++++++++++++++++ tests/xfs/750.out | 4 ++++ tests/xfs/751 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/751.out | 4 ++++ tests/xfs/752 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/752.out | 4 ++++ tests/xfs/753 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/753.out | 4 ++++ tests/xfs/754 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/754.out | 4 ++++ tests/xfs/755 | 39 +++++++++++++++++++++++++++++++++++++ tests/xfs/755.out | 4 ++++ tests/xfs/756 | 39 +++++++++++++++++++++++++++++++++++++ tests/xfs/756.out | 4 ++++ tests/xfs/757 | 39 +++++++++++++++++++++++++++++++++++++ tests/xfs/757.out | 4 ++++ tests/xfs/758 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/758.out | 4 ++++ tests/xfs/759 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/759.out | 5 +++++ tests/xfs/760 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/760.out | 5 +++++ tests/xfs/761 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/761.out | 5 +++++ tests/xfs/762 | 42 ++++++++++++++++++++++++++++++++++++++++ tests/xfs/762.out | 5 +++++ tests/xfs/763 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/763.out | 5 +++++ tests/xfs/764 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/764.out | 5 +++++ tests/xfs/765 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/765.out | 5 +++++ tests/xfs/766 | 41 +++++++++++++++++++++++++++++++++++++++ tests/xfs/766.out | 5 +++++ tests/xfs/767 | 42 ++++++++++++++++++++++++++++++++++++++++ tests/xfs/767.out | 5 +++++ tests/xfs/768 | 42 ++++++++++++++++++++++++++++++++++++++++ tests/xfs/768.out | 5 +++++ tests/xfs/769 | 42 ++++++++++++++++++++++++++++++++++++++++ tests/xfs/769.out | 5 +++++ tests/xfs/770 | 42 ++++++++++++++++++++++++++++++++++++++++ tests/xfs/770.out | 5 +++++ tests/xfs/771 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/771.out | 5 +++++ tests/xfs/772 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/772.out | 5 +++++ tests/xfs/773 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/773.out | 5 +++++ tests/xfs/774 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/774.out | 5 +++++ tests/xfs/775 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/775.out | 4 ++++ tests/xfs/776 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/776.out | 5 +++++ tests/xfs/777 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/777.out | 5 +++++ tests/xfs/778 | 40 ++++++++++++++++++++++++++++++++++++++ tests/xfs/778.out | 5 +++++ tests/xfs/779 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/779.out | 4 ++++ tests/xfs/780 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/780.out | 4 ++++ tests/xfs/781 | 38 ++++++++++++++++++++++++++++++++++++ tests/xfs/781.out | 4 ++++ tests/xfs/782 | 41 +++++++++++++++++++++++++++++++++++++++ tests/xfs/782.out | 5 +++++ tests/xfs/783 | 49 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/783.out | 10 ++++++++++ tests/xfs/784 | 49 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/784.out | 10 ++++++++++ 76 files changed, 1709 insertions(+) create mode 100755 tests/xfs/747 create mode 100644 tests/xfs/747.out create mode 100755 tests/xfs/748 create mode 100644 tests/xfs/748.out create mode 100755 tests/xfs/749 create mode 100644 tests/xfs/749.out create mode 100755 tests/xfs/750 create mode 100644 tests/xfs/750.out create mode 100755 tests/xfs/751 create mode 100644 tests/xfs/751.out create mode 100755 tests/xfs/752 create mode 100644 tests/xfs/752.out create mode 100755 tests/xfs/753 create mode 100644 tests/xfs/753.out create mode 100755 tests/xfs/754 create mode 100644 tests/xfs/754.out create mode 100755 tests/xfs/755 create mode 100644 tests/xfs/755.out create mode 100755 tests/xfs/756 create mode 100644 tests/xfs/756.out create mode 100755 tests/xfs/757 create mode 100644 tests/xfs/757.out create mode 100755 tests/xfs/758 create mode 100644 tests/xfs/758.out create mode 100755 tests/xfs/759 create mode 100644 tests/xfs/759.out create mode 100755 tests/xfs/760 create mode 100644 tests/xfs/760.out create mode 100755 tests/xfs/761 create mode 100644 tests/xfs/761.out create mode 100755 tests/xfs/762 create mode 100644 tests/xfs/762.out create mode 100755 tests/xfs/763 create mode 100644 tests/xfs/763.out create mode 100755 tests/xfs/764 create mode 100644 tests/xfs/764.out create mode 100755 tests/xfs/765 create mode 100644 tests/xfs/765.out create mode 100755 tests/xfs/766 create mode 100644 tests/xfs/766.out create mode 100755 tests/xfs/767 create mode 100644 tests/xfs/767.out create mode 100755 tests/xfs/768 create mode 100644 tests/xfs/768.out create mode 100755 tests/xfs/769 create mode 100644 tests/xfs/769.out create mode 100755 tests/xfs/770 create mode 100644 tests/xfs/770.out create mode 100755 tests/xfs/771 create mode 100644 tests/xfs/771.out create mode 100755 tests/xfs/772 create mode 100644 tests/xfs/772.out create mode 100755 tests/xfs/773 create mode 100644 tests/xfs/773.out create mode 100755 tests/xfs/774 create mode 100644 tests/xfs/774.out create mode 100755 tests/xfs/775 create mode 100644 tests/xfs/775.out create mode 100755 tests/xfs/776 create mode 100644 tests/xfs/776.out create mode 100755 tests/xfs/777 create mode 100644 tests/xfs/777.out create mode 100755 tests/xfs/778 create mode 100644 tests/xfs/778.out create mode 100755 tests/xfs/779 create mode 100644 tests/xfs/779.out create mode 100755 tests/xfs/780 create mode 100644 tests/xfs/780.out create mode 100755 tests/xfs/781 create mode 100644 tests/xfs/781.out create mode 100755 tests/xfs/782 create mode 100644 tests/xfs/782.out create mode 100755 tests/xfs/783 create mode 100644 tests/xfs/783.out create mode 100755 tests/xfs/784 create mode 100644 tests/xfs/784.out diff --git a/tests/xfs/747 b/tests/xfs/747 new file mode 100755 index 00000000..e3a8af77 --- /dev/null +++ b/tests/xfs/747 @@ -0,0 +1,35 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 747 +# +# Populate a XFS filesystem and fuzz every superblock field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz superblock" +_scratch_xfs_fuzz_metadata '' 'both' 'sb 1' >> $seqres.full +echo "Done fuzzing superblock" + +# success, all done +status=0 +exit diff --git a/tests/xfs/747.out b/tests/xfs/747.out new file mode 100644 index 00000000..1cf4e747 --- /dev/null +++ b/tests/xfs/747.out @@ -0,0 +1,4 @@ +QA output created by 747 +Format and populate +Fuzz superblock +Done fuzzing superblock diff --git a/tests/xfs/748 b/tests/xfs/748 new file mode 100755 index 00000000..c69e7a48 --- /dev/null +++ b/tests/xfs/748 @@ -0,0 +1,35 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 748 +# +# Populate a XFS filesystem and fuzz every AGF field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGF" +_scratch_xfs_fuzz_metadata '' 'both' 'agf 0' >> $seqres.full +echo "Done fuzzing AGF" + +# success, all done +status=0 +exit diff --git a/tests/xfs/748.out b/tests/xfs/748.out new file mode 100644 index 00000000..a281c130 --- /dev/null +++ b/tests/xfs/748.out @@ -0,0 +1,4 @@ +QA output created by 748 +Format and populate +Fuzz AGF +Done fuzzing AGF diff --git a/tests/xfs/749 b/tests/xfs/749 new file mode 100755 index 00000000..a1a6530f --- /dev/null +++ b/tests/xfs/749 @@ -0,0 +1,45 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 749 +# +# Populate a XFS filesystem and fuzz every AGFL field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGFL" +_scratch_xfs_fuzz_metadata '' 'both' 'agfl 0' >> $seqres.full +echo "Done fuzzing AGFL" + +# Restore a correct copy of the filesystem before we start the second round of +# fuzzing. This avoids corruption errors from xfs_db when we probe for flfirst +# in the AGF and later when _scratch_xfs_fuzz_metadata probes the AGFL fields. +__scratch_xfs_fuzz_mdrestore +flfirst=$(_scratch_xfs_db -c 'agf 0' -c 'p flfirst' | sed -e 's/flfirst = //g') + +echo "Fuzz AGFL flfirst" +SCRATCH_XFS_LIST_METADATA_FIELDS="bno[${flfirst}]" _scratch_xfs_fuzz_metadata '' 'both' 'agfl 0' >> $seqres.full +echo "Done fuzzing AGFL flfirst" + +# success, all done +status=0 +exit diff --git a/tests/xfs/749.out b/tests/xfs/749.out new file mode 100644 index 00000000..478ce528 --- /dev/null +++ b/tests/xfs/749.out @@ -0,0 +1,6 @@ +QA output created by 749 +Format and populate +Fuzz AGFL +Done fuzzing AGFL +Fuzz AGFL flfirst +Done fuzzing AGFL flfirst diff --git a/tests/xfs/750 b/tests/xfs/750 new file mode 100755 index 00000000..f9b65534 --- /dev/null +++ b/tests/xfs/750 @@ -0,0 +1,35 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 750 +# +# Populate a XFS filesystem and fuzz every AGI field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Fuzz AGI" +_scratch_xfs_fuzz_metadata '' 'both' 'agi 0' >> $seqres.full +echo "Done fuzzing AGI" + +# success, all done +status=0 +exit diff --git a/tests/xfs/750.out b/tests/xfs/750.out new file mode 100644 index 00000000..7521416f --- /dev/null +++ b/tests/xfs/750.out @@ -0,0 +1,4 @@ +QA output created by 750 +Format and populate +Fuzz AGI +Done fuzzing AGI diff --git a/tests/xfs/751 b/tests/xfs/751 new file mode 100755 index 00000000..a9634bfc --- /dev/null +++ b/tests/xfs/751 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 751 +# +# Populate a XFS filesystem and fuzz every bnobt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'bno' 2)" || \ + _fail "could not find two-level bnobt" + +echo "Fuzz bnobt recs" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr bnoroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing bnobt recs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/751.out b/tests/xfs/751.out new file mode 100644 index 00000000..77a74f3b --- /dev/null +++ b/tests/xfs/751.out @@ -0,0 +1,4 @@ +QA output created by 751 +Format and populate +Fuzz bnobt recs +Done fuzzing bnobt recs diff --git a/tests/xfs/752 b/tests/xfs/752 new file mode 100755 index 00000000..9fb3f438 --- /dev/null +++ b/tests/xfs/752 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 752 +# +# Populate a XFS filesystem and fuzz every bnobt key/pointer. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'bno' 2)" || \ + _fail "could not find two-level bnobt" + +echo "Fuzz bnobt keyptr" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr bnoroot' >> $seqres.full +echo "Done fuzzing bnobt keyptr" + +# success, all done +status=0 +exit diff --git a/tests/xfs/752.out b/tests/xfs/752.out new file mode 100644 index 00000000..2e8348d5 --- /dev/null +++ b/tests/xfs/752.out @@ -0,0 +1,4 @@ +QA output created by 752 +Format and populate +Fuzz bnobt keyptr +Done fuzzing bnobt keyptr diff --git a/tests/xfs/753 b/tests/xfs/753 new file mode 100755 index 00000000..151a964d --- /dev/null +++ b/tests/xfs/753 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 753 +# +# Populate a XFS filesystem and fuzz every cntbt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'cnt' 2)" || \ + _fail "could not find two-level cntbt" + +echo "Fuzz cntbt" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr cntroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing cntbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/753.out b/tests/xfs/753.out new file mode 100644 index 00000000..0c981968 --- /dev/null +++ b/tests/xfs/753.out @@ -0,0 +1,4 @@ +QA output created by 753 +Format and populate +Fuzz cntbt +Done fuzzing cntbt diff --git a/tests/xfs/754 b/tests/xfs/754 new file mode 100755 index 00000000..ad9078c4 --- /dev/null +++ b/tests/xfs/754 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 754 +# +# Populate a XFS filesystem and fuzz every inobt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'ino' 2)" || \ + _fail "could not find two-level inobt" + +echo "Fuzz inobt" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr root' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing inobt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/754.out b/tests/xfs/754.out new file mode 100644 index 00000000..0b8eef9c --- /dev/null +++ b/tests/xfs/754.out @@ -0,0 +1,4 @@ +QA output created by 754 +Format and populate +Fuzz inobt +Done fuzzing inobt diff --git a/tests/xfs/755 b/tests/xfs/755 new file mode 100755 index 00000000..b83118b8 --- /dev/null +++ b/tests/xfs/755 @@ -0,0 +1,39 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 755 +# +# Populate a XFS filesystem and fuzz every finobt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check +_require_xfs_finobt + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'fino' 2)" || \ + _fail "could not find two-level finobt" + +echo "Fuzz finobt" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr free_root' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing finobt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/755.out b/tests/xfs/755.out new file mode 100644 index 00000000..55e5ff4f --- /dev/null +++ b/tests/xfs/755.out @@ -0,0 +1,4 @@ +QA output created by 755 +Format and populate +Fuzz finobt +Done fuzzing finobt diff --git a/tests/xfs/756 b/tests/xfs/756 new file mode 100755 index 00000000..351c7ed4 --- /dev/null +++ b/tests/xfs/756 @@ -0,0 +1,39 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 756 +# +# Populate a XFS filesystem and fuzz every rmapbt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'rmap' 2)" || \ + _fail "could not find two-level rmapbt" + +echo "Fuzz rmapbt recs" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr rmaproot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing rmapbt recs" + +# success, all done +status=0 +exit diff --git a/tests/xfs/756.out b/tests/xfs/756.out new file mode 100644 index 00000000..76df05ad --- /dev/null +++ b/tests/xfs/756.out @@ -0,0 +1,4 @@ +QA output created by 756 +Format and populate +Fuzz rmapbt recs +Done fuzzing rmapbt recs diff --git a/tests/xfs/757 b/tests/xfs/757 new file mode 100755 index 00000000..06b360fd --- /dev/null +++ b/tests/xfs/757 @@ -0,0 +1,39 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 757 +# +# Populate a XFS filesystem and fuzz every rmapbt key/pointer field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_xfs_scratch_rmapbt +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'rmap' 2)" || \ + _fail "could not find two-level rmapbt" + +echo "Fuzz rmapbt keyptr" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr rmaproot' >> $seqres.full +echo "Done fuzzing rmapbt keyptr" + +# success, all done +status=0 +exit diff --git a/tests/xfs/757.out b/tests/xfs/757.out new file mode 100644 index 00000000..293a8632 --- /dev/null +++ b/tests/xfs/757.out @@ -0,0 +1,4 @@ +QA output created by 757 +Format and populate +Fuzz rmapbt keyptr +Done fuzzing rmapbt keyptr diff --git a/tests/xfs/758 b/tests/xfs/758 new file mode 100755 index 00000000..d2b6e46c --- /dev/null +++ b/tests/xfs/758 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 758 +# +# Populate a XFS filesystem and fuzz every refcountbt key/pointer field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/reflink + +# real QA test starts here +_supported_fs xfs +_require_scratch_reflink +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'refcnt' 2)" || \ + _fail "could not find two-level refcountbt" + +echo "Fuzz refcountbt" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr refcntroot' >> $seqres.full +echo "Done fuzzing refcountbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/758.out b/tests/xfs/758.out new file mode 100644 index 00000000..e969d7ba --- /dev/null +++ b/tests/xfs/758.out @@ -0,0 +1,4 @@ +QA output created by 758 +Format and populate +Fuzz refcountbt +Done fuzzing refcountbt diff --git a/tests/xfs/759 b/tests/xfs/759 new file mode 100755 index 00000000..8ed3f0b6 --- /dev/null +++ b/tests/xfs/759 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 759 +# +# Populate a XFS filesystem and fuzz every btree-format directory inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/759.out b/tests/xfs/759.out new file mode 100644 index 00000000..3eaa678c --- /dev/null +++ b/tests/xfs/759.out @@ -0,0 +1,5 @@ +QA output created by 759 +Format and populate +Find btree-format dir inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/760 b/tests/xfs/760 new file mode 100755 index 00000000..47a5dd3d --- /dev/null +++ b/tests/xfs/760 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 760 +# +# Populate a XFS filesystem and fuzz every extents-format file inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/760.out b/tests/xfs/760.out new file mode 100644 index 00000000..9b66d13f --- /dev/null +++ b/tests/xfs/760.out @@ -0,0 +1,5 @@ +QA output created by 760 +Format and populate +Find extents-format file inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/761 b/tests/xfs/761 new file mode 100755 index 00000000..87d302da --- /dev/null +++ b/tests/xfs/761 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 761 +# +# Populate a XFS filesystem and fuzz every btree-format file inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/761.out b/tests/xfs/761.out new file mode 100644 index 00000000..43cbe4d0 --- /dev/null +++ b/tests/xfs/761.out @@ -0,0 +1,5 @@ +QA output created by 761 +Format and populate +Find btree-format file inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/762 b/tests/xfs/762 new file mode 100755 index 00000000..0ce1773b --- /dev/null +++ b/tests/xfs/762 @@ -0,0 +1,42 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 762 +# +# Populate a XFS filesystem and fuzz every bmbt block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "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/762.out b/tests/xfs/762.out new file mode 100644 index 00000000..1ff528e2 --- /dev/null +++ b/tests/xfs/762.out @@ -0,0 +1,5 @@ +QA output created by 762 +Format and populate +Find bmbt block +Fuzz bmbt +Done fuzzing bmbt diff --git a/tests/xfs/763 b/tests/xfs/763 new file mode 100755 index 00000000..98145351 --- /dev/null +++ b/tests/xfs/763 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 763 +# +# Populate a XFS filesystem and fuzz every symlink remote block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" 'dblock 0' >> $seqres.full +echo "Done fuzzing symlink remote block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/763.out b/tests/xfs/763.out new file mode 100644 index 00000000..00fe93db --- /dev/null +++ b/tests/xfs/763.out @@ -0,0 +1,5 @@ +QA output created by 763 +Format and populate +Find symlink remote block +Fuzz symlink remote block +Done fuzzing symlink remote block diff --git a/tests/xfs/764 b/tests/xfs/764 new file mode 100755 index 00000000..3addb9c8 --- /dev/null +++ b/tests/xfs/764 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 764 +# +# Populate a XFS filesystem and fuzz every inline directory inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inline-format dir inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/764.out b/tests/xfs/764.out new file mode 100644 index 00000000..727f797f --- /dev/null +++ b/tests/xfs/764.out @@ -0,0 +1,5 @@ +QA output created by 764 +Format and populate +Find inline-format dir inode +Fuzz inline-format dir inode +Done fuzzing inline-format dir inode diff --git a/tests/xfs/765 b/tests/xfs/765 new file mode 100755 index 00000000..1a260c3a --- /dev/null +++ b/tests/xfs/765 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 765 +# +# Populate a XFS filesystem and fuzz every block-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" 'dblock 0' >> $seqres.full +echo "Done fuzzing data-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/765.out b/tests/xfs/765.out new file mode 100644 index 00000000..008c22e4 --- /dev/null +++ b/tests/xfs/765.out @@ -0,0 +1,5 @@ +QA output created by 765 +Format and populate +Find data-format dir block +Fuzz data-format dir block +Done fuzzing data-format dir block diff --git a/tests/xfs/766 b/tests/xfs/766 new file mode 100755 index 00000000..b0ff2ad4 --- /dev/null +++ b/tests/xfs/766 @@ -0,0 +1,41 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 766 +# +# Populate a XFS filesystem and fuzz every data-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" "dblock 0" >> $seqres.full +echo "Done fuzzing data-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/766.out b/tests/xfs/766.out new file mode 100644 index 00000000..29b8e227 --- /dev/null +++ b/tests/xfs/766.out @@ -0,0 +1,5 @@ +QA output created by 766 +Format and populate +Find data-format dir block +Fuzz data-format dir block +Done fuzzing data-format dir block diff --git a/tests/xfs/767 b/tests/xfs/767 new file mode 100755 index 00000000..8ca7e7d4 --- /dev/null +++ b/tests/xfs/767 @@ -0,0 +1,42 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 767 +# +# Populate a XFS filesystem and fuzz every leaf1-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "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/767.out b/tests/xfs/767.out new file mode 100644 index 00000000..2caba2e8 --- /dev/null +++ b/tests/xfs/767.out @@ -0,0 +1,5 @@ +QA output created by 767 +Format and populate +Find leaf1-format dir block +Fuzz leaf1-format dir block +Done fuzzing leaf1-format dir block diff --git a/tests/xfs/768 b/tests/xfs/768 new file mode 100755 index 00000000..a8faad7e --- /dev/null +++ b/tests/xfs/768 @@ -0,0 +1,42 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 768 +# +# Populate a XFS filesystem and fuzz every leafn-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "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/768.out b/tests/xfs/768.out new file mode 100644 index 00000000..b45ce63b --- /dev/null +++ b/tests/xfs/768.out @@ -0,0 +1,5 @@ +QA output created by 768 +Format and populate +Find leafn-format dir block +Fuzz leafn-format dir block +Done fuzzing leafn-format dir block diff --git a/tests/xfs/769 b/tests/xfs/769 new file mode 100755 index 00000000..e3b439bc --- /dev/null +++ b/tests/xfs/769 @@ -0,0 +1,42 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 769 +# +# Populate a XFS filesystem and fuzz every node-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "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/769.out b/tests/xfs/769.out new file mode 100644 index 00000000..dc42f6f1 --- /dev/null +++ b/tests/xfs/769.out @@ -0,0 +1,5 @@ +QA output created by 769 +Format and populate +Find node-format dir block +Fuzz node-format dir block +Done fuzzing node-format dir block diff --git a/tests/xfs/770 b/tests/xfs/770 new file mode 100755 index 00000000..da12e0a2 --- /dev/null +++ b/tests/xfs/770 @@ -0,0 +1,42 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 770 +# +# Populate a XFS filesystem and fuzz every freeindex-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "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/770.out b/tests/xfs/770.out new file mode 100644 index 00000000..df52cf3c --- /dev/null +++ b/tests/xfs/770.out @@ -0,0 +1,5 @@ +QA output created by 770 +Format and populate +Find freeindex-format dir block +Fuzz freeindex-format dir block +Done fuzzing freeindex-format dir block diff --git a/tests/xfs/771 b/tests/xfs/771 new file mode 100755 index 00000000..c1e8b38f --- /dev/null +++ b/tests/xfs/771 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 771 +# +# Populate a XFS filesystem and fuzz every inline attr inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inline-format attr inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/771.out b/tests/xfs/771.out new file mode 100644 index 00000000..526bb00e --- /dev/null +++ b/tests/xfs/771.out @@ -0,0 +1,5 @@ +QA output created by 771 +Format and populate +Find inline-format attr inode +Fuzz inline-format attr inode +Done fuzzing inline-format attr inode diff --git a/tests/xfs/772 b/tests/xfs/772 new file mode 100755 index 00000000..50577feb --- /dev/null +++ b/tests/xfs/772 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 772 +# +# Populate a XFS filesystem and fuzz every leaf-format attr block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" 'ablock 0' >> $seqres.full +echo "Done fuzzing leaf-format attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/772.out b/tests/xfs/772.out new file mode 100644 index 00000000..c774116e --- /dev/null +++ b/tests/xfs/772.out @@ -0,0 +1,5 @@ +QA output created by 772 +Format and populate +Find leaf-format attr block +Fuzz leaf-format attr block +Done fuzzing leaf-format attr block diff --git a/tests/xfs/773 b/tests/xfs/773 new file mode 100755 index 00000000..8d37e0f4 --- /dev/null +++ b/tests/xfs/773 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 773 +# +# Populate a XFS filesystem and fuzz every node-format attr block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" "ablock 0" >> $seqres.full +echo "Done fuzzing node-format attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/773.out b/tests/xfs/773.out new file mode 100644 index 00000000..d301cda5 --- /dev/null +++ b/tests/xfs/773.out @@ -0,0 +1,5 @@ +QA output created by 773 +Format and populate +Find node-format attr block +Fuzz node-format attr block +Done fuzzing node-format attr block diff --git a/tests/xfs/774 b/tests/xfs/774 new file mode 100755 index 00000000..ad5d4d71 --- /dev/null +++ b/tests/xfs/774 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 774 +# +# Populate a XFS filesystem and fuzz every external attr block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" "ablock 1" >> $seqres.full +echo "Done fuzzing external attr block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/774.out b/tests/xfs/774.out new file mode 100644 index 00000000..58b3ea00 --- /dev/null +++ b/tests/xfs/774.out @@ -0,0 +1,5 @@ +QA output created by 774 +Format and populate +Find external attr block +Fuzz external attr block +Done fuzzing external attr block diff --git a/tests/xfs/775 b/tests/xfs/775 new file mode 100755 index 00000000..ec98d688 --- /dev/null +++ b/tests/xfs/775 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 775 +# +# Populate a XFS filesystem and fuzz every refcountbt field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/reflink + +# real QA test starts here +_supported_fs xfs +_require_scratch_reflink +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +path="$(_scratch_xfs_find_agbtree_height 'refcnt' 2)" || \ + _fail "could not find two-level refcountbt" + +echo "Fuzz refcountbt" +_scratch_xfs_fuzz_metadata '' 'both' "$path" 'addr refcntroot' 'addr ptrs[1]' >> $seqres.full +echo "Done fuzzing refcountbt" + +# success, all done +status=0 +exit diff --git a/tests/xfs/775.out b/tests/xfs/775.out new file mode 100644 index 00000000..71eaf9c0 --- /dev/null +++ b/tests/xfs/775.out @@ -0,0 +1,4 @@ +QA output created by 775 +Format and populate +Fuzz refcountbt +Done fuzzing refcountbt diff --git a/tests/xfs/776 b/tests/xfs/776 new file mode 100755 index 00000000..a7b7adda --- /dev/null +++ b/tests/xfs/776 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 776 +# +# Populate a XFS filesystem and fuzz every btree-format attr inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/776.out b/tests/xfs/776.out new file mode 100644 index 00000000..226fc020 --- /dev/null +++ b/tests/xfs/776.out @@ -0,0 +1,5 @@ +QA output created by 776 +Format and populate +Find btree-format attr inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/777 b/tests/xfs/777 new file mode 100755 index 00000000..496a28d5 --- /dev/null +++ b/tests/xfs/777 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 777 +# +# Populate a XFS filesystem and fuzz every blockdev inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/777.out b/tests/xfs/777.out new file mode 100644 index 00000000..daca70d8 --- /dev/null +++ b/tests/xfs/777.out @@ -0,0 +1,5 @@ +QA output created by 777 +Format and populate +Find blockdev inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/778 b/tests/xfs/778 new file mode 100755 index 00000000..72f7d0dc --- /dev/null +++ b/tests/xfs/778 @@ -0,0 +1,40 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 778 +# +# Populate a XFS filesystem and fuzz every local-format symlink inode field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check + +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 '' 'both' "inode ${inum}" >> $seqres.full +echo "Done fuzzing inode" + +# success, all done +status=0 +exit diff --git a/tests/xfs/778.out b/tests/xfs/778.out new file mode 100644 index 00000000..a729f111 --- /dev/null +++ b/tests/xfs/778.out @@ -0,0 +1,5 @@ +QA output created by 778 +Format and populate +Find local-format symlink inode +Fuzz inode +Done fuzzing inode diff --git a/tests/xfs/779 b/tests/xfs/779 new file mode 100755 index 00000000..fe0de308 --- /dev/null +++ b/tests/xfs/779 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 779 +# +# Populate a XFS filesystem and fuzz every user dquot field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check +_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 '' 'both' "dquot -u 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/779.out b/tests/xfs/779.out new file mode 100644 index 00000000..a8c19a9a --- /dev/null +++ b/tests/xfs/779.out @@ -0,0 +1,4 @@ +QA output created by 779 +Format and populate +Fuzz user 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/780 b/tests/xfs/780 new file mode 100755 index 00000000..0a234735 --- /dev/null +++ b/tests/xfs/780 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 780 +# +# Populate a XFS filesystem and fuzz every group dquot field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check +_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 '' 'both' "dquot -g 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/780.out b/tests/xfs/780.out new file mode 100644 index 00000000..df5784d5 --- /dev/null +++ b/tests/xfs/780.out @@ -0,0 +1,4 @@ +QA output created by 780 +Format and populate +Fuzz group 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/781 b/tests/xfs/781 new file mode 100755 index 00000000..ada0f8a1 --- /dev/null +++ b/tests/xfs/781 @@ -0,0 +1,38 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 781 +# +# Populate a XFS filesystem and fuzz every project dquot field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. + +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy +. ./common/quota + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields +_disable_dmesg_check +_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 '' 'both' "dquot -p 0" >> $seqres.full +echo "Done fuzzing dquot" + +# success, all done +status=0 +exit diff --git a/tests/xfs/781.out b/tests/xfs/781.out new file mode 100644 index 00000000..68c42e6f --- /dev/null +++ b/tests/xfs/781.out @@ -0,0 +1,4 @@ +QA output created by 781 +Format and populate +Fuzz project 0 dquot +Done fuzzing dquot diff --git a/tests/xfs/782 b/tests/xfs/782 new file mode 100755 index 00000000..c113ea5a --- /dev/null +++ b/tests/xfs/782 @@ -0,0 +1,41 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 782 +# +# Populate a XFS filesystem and fuzz every single-leafn-format dir block field. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. +# +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +echo "Find single-leafn-format dir block" +_scratch_mount +inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_LEAFN) +blk_sz=$(_get_block_size $SCRATCH_MNT) +_scratch_unmount + +leaf_offset=$(( (2 ** 35) / blk_sz )) +echo "Fuzz single-leafn-format dir block" +_scratch_xfs_fuzz_metadata '' 'both' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full +echo "Done fuzzing single-leafn-format dir block" + +# success, all done +status=0 +exit diff --git a/tests/xfs/782.out b/tests/xfs/782.out new file mode 100644 index 00000000..ec750a67 --- /dev/null +++ b/tests/xfs/782.out @@ -0,0 +1,5 @@ +QA output created by 782 +Format and populate +Find single-leafn-format dir block +Fuzz single-leafn-format dir block +Done fuzzing single-leafn-format dir block diff --git a/tests/xfs/783 b/tests/xfs/783 new file mode 100755 index 00000000..bbc621ba --- /dev/null +++ b/tests/xfs/783 @@ -0,0 +1,49 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 783 +# +# Populate a XFS filesystem and fuzz the data mappings of every directory type. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. +# +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_scrub dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +_scratch_xfs_set_dir_fuzz_types + +# Now fuzz the block maps of each directory type. +for dirtype in "${SCRATCH_XFS_DIR_FUZZ_TYPES[@]}"; do + echo "Fuzz block map for ${dirtype}" | tee -a $seqres.full + + # Restore a correct copy of the filesystem before we start a round of + # fuzzing. This avoids corruption errors from xfs_db when + # _scratch_xfs_fuzz_metadata probes the directory block fields. + __scratch_xfs_fuzz_mdrestore + + _scratch_mount + inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_${dirtype}) + _scratch_unmount + + _scratch_xfs_fuzz_metadata 'u*.bmx' 'both' "inode ${inum}" >> $seqres.full + echo "Done fuzzing dir map ${dirtype}" +done + +# success, all done +status=0 +exit diff --git a/tests/xfs/783.out b/tests/xfs/783.out new file mode 100644 index 00000000..11e6d93b --- /dev/null +++ b/tests/xfs/783.out @@ -0,0 +1,10 @@ +QA output created by 783 +Format and populate +Fuzz block map for BLOCK +Done fuzzing dir map BLOCK +Fuzz block map for LEAF +Done fuzzing dir map LEAF +Fuzz block map for LEAFN +Done fuzzing dir map LEAFN +Fuzz block map for NODE +Done fuzzing dir map NODE diff --git a/tests/xfs/784 b/tests/xfs/784 new file mode 100755 index 00000000..595f0fa8 --- /dev/null +++ b/tests/xfs/784 @@ -0,0 +1,49 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2022 Oracle. All Rights Reserved. +# +# FS QA Test No. 784 +# +# Populate a XFS filesystem and fuzz the attr mappings of every xattr type. +# Try online repair and, if necessary, offline repair, +# to test the most likely usage pattern. +# +. ./common/preamble +_begin_fstest dangerous_fuzzers dangerous_scrub dangerous_bothrepair + +_register_cleanup "_cleanup" BUS + +# Import common functions. +. ./common/filter +. ./common/populate +. ./common/fuzzy + +# real QA test starts here +_supported_fs xfs +_require_scratch_xfs_fuzz_fields + +echo "Format and populate" +_scratch_populate_cached nofill > $seqres.full 2>&1 + +_scratch_xfs_set_xattr_fuzz_types + +# Now fuzz the block maps of each xattr type. +for attrtype in "${SCRATCH_XFS_XATTR_FUZZ_TYPES[@]}"; do + echo "Fuzz block map for ${attrtype}" | tee -a $seqres.full + + # Restore a correct copy of the filesystem before we start a round of + # fuzzing. This avoids corruption errors from xfs_db when + # _scratch_xfs_fuzz_metadata probes the xattr block fields. + __scratch_xfs_fuzz_mdrestore + + _scratch_mount + inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_${attrtype}) + _scratch_unmount + + _scratch_xfs_fuzz_metadata 'a*.bmx' 'both' "inode ${inum}" >> $seqres.full + echo "Done fuzzing attr map ${attrtype}" +done + +# success, all done +status=0 +exit diff --git a/tests/xfs/784.out b/tests/xfs/784.out new file mode 100644 index 00000000..b5c3fdda --- /dev/null +++ b/tests/xfs/784.out @@ -0,0 +1,10 @@ +QA output created by 784 +Format and populate +Fuzz block map for EXTENTS_REMOTE3K +Done fuzzing attr map EXTENTS_REMOTE3K +Fuzz block map for EXTENTS_REMOTE4K +Done fuzzing attr map EXTENTS_REMOTE4K +Fuzz block map for LEAF +Done fuzzing attr map LEAF +Fuzz block map for NODE +Done fuzzing attr map NODE -- 2.39.5