xfs/122: don't break on old xfsprogs

If we're running against a old version of xfsprogs that lacks some
of the structures that the golden output knows about, copy the
structure size definition from the golden output to the program
output.  This way we can check for structure size mutations on old
xfsprogs without generating false error reports for structs that
don't exist in the old release.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Darrick J. Wong
2016-05-31 09:43:52 -07:00
committed by Eryu Guan
parent 44b9337e09
commit c0c6e54ce6
2 changed files with 7 additions and 11 deletions
+6 -11
View File
@@ -73,6 +73,7 @@ _attribute_filter()
cprog=$tmp.get_structs.c
oprog=$tmp.get_structs
progout=$tmp.output
keyfile=$tmp.keys
cat >$cprog <<EOF
#define _GNU_SOURCE
@@ -226,18 +227,12 @@ cc -o $oprog $cprog >> $seqres.full 2>&1 || \
_notrun "Could not compile test program (see end of $seqres.full)"
$oprog | _type_size_filter | _type_name_filter > $progout
#
# add addition sizes and xfs_sb_t fields that don't exist in the version
# being tested.
#
# Find all the items that only exist in the golden output
comm -23 <(grep '=' $0.out | sed -e 's/ =.*$//g' | LC_COLLATE=POSIX sort) \
<(sed -e 's/ =.*$//g' < $progout | LC_COLLATE=POSIX sort) > $keyfile
# xfsprogs 2.9.8: sb_bad_features2 in pv 978822
if [ $XFSPROGS_VERSION -lt 20908 ]; then
echo 'offsetof(xfs_sb_t, sb_bad_features2 ) = 204' >>$progout
fi
if [ $XFSPROGS_VERSION -lt 30000 ]; then
echo 'sizeof( xfs_dsb_t ) = 208' >>$progout;
fi
# Copy those items to the program output
grep -F -f $keyfile $0.out >> $progout
LC_COLLATE=POSIX sort $progout
+1
View File
@@ -147,3 +147,4 @@ sizeof(xfs_lookup_t) = 4
sizeof(xfs_qoff_logformat_t) = 20
sizeof(xfs_timestamp_t) = 8
sizeof(xfs_trans_header_t) = 16
sizeof(xfs_zzzz_test_the_test_program) = -47