common/fuzzy: ignore padding fields on xfs
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 10 Nov 2017 00:44:34 +0000 (16:44 -0800)
committerEryu Guan <eguan@redhat.com>
Fri, 10 Nov 2017 04:33:58 +0000 (12:33 +0800)
Padding fields are never checked and can have arbitrary values (if we
ever put them to use there'll be a feature flag) so there's no point
in fuzz-testing them.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/fuzzy

index 86492687bfe55cbae4589613a5bf04a5d9579945..3d86e1c8654f14f0d6938a8d5b1d605748bfbae5 100644 (file)
@@ -79,6 +79,14 @@ _scratch_scrub() {
        esac
 }
 
+# Filter out any keys with an array index >= 10, collapse any array range
+# ("[1-195]") to the first item, and ignore padding fields.
+__filter_xfs_db_keys() {
+       sed -e '/\([a-z]*\)\[\([0-9][0-9]\+\)\].*/d' \
+           -e 's/\([a-zA-Z0-9_]*\)\[\([0-9]*\)-[0-9]*\]/\1[\2]/g' \
+           -e '/pad/d'
+}
+
 # Filter the xfs_db print command's field debug information
 # into field name and type.
 __filter_xfs_db_print_fields() {
@@ -87,15 +95,13 @@ __filter_xfs_db_print_fields() {
                filter='^'
        fi
        grep ' = ' | while read key equals value; do
-               # Filter out any keys with an array index >= 10, and
-               # collapse any array range ("[1-195]") to the first item.
-               fuzzkey="$(echo "${key}" | sed -e '/\([a-z]*\)\[\([0-9][0-9]\+\)\].*/d' -e 's/\([a-zA-Z0-9_]*\)\[\([0-9]*\)-[0-9]*\]/\1[\2]/g')"
+               fuzzkey="$(echo "${key}" | __filter_xfs_db_keys)"
                if [ -z "${fuzzkey}" ]; then
                        continue
                elif [[ "${value}" == "["* ]]; then
                        echo "${value}" | sed -e 's/^.//g' -e 's/.$//g' -e 's/,/\n/g' | while read subfield; do
                                echo "${fuzzkey}.${subfield}"
-                       done
+                       done | __filter_xfs_db_keys
                else
                        echo "${fuzzkey}"
                fi