btrfs/220: fix how we tests for mount options
authorJosef Bacik <josef@toxicpanda.com>
Wed, 4 Nov 2020 20:38:45 +0000 (15:38 -0500)
committerEryu Guan <guaneryu@gmail.com>
Sun, 8 Nov 2020 05:51:20 +0000 (13:51 +0800)
commita0bcdb6cbf4227068258c6d1338f7121f803ac80
tree4ec7881b0dbc729d7b6094a4004f0152d68ac589
parent1de2b58b8e299c9e46f2db66158fd054703b814c
btrfs/220: fix how we tests for mount options

Filipe noticed that btrfs/220 started failing with some mount option
changes I made recently, but upon closer inspection this test actually
fails in a lot of different ways normally, specifically if you specify
MOUNT_OPTIONS, or if you make an fs with the free space tree.

Address all these issues by reworking how we test that the mount options
are what we expect.  First get what the default mount options are for a
plain mount of SCRATCH_DEV.  This is used as the baseline, so no matter
how the mount options change in the future it will always work properly.

Secondly instead of specifying a rigid order of the mount options we're
testing, which breaks if we adjust the order in /proc/self/mounts,
simply specify the options we're actually interested in checking.  Then
in the test function combine the common options with the new options
we're testing, and then combine that with our actual options and use
some sort magic to see if there's any difference.  If there's no
difference then we know we have everything set as expected, if not we
fail.

This patch addresses the initial issue that Filipe noticed, but also
fixes the failures when you specified MOUNT_OPTIONS, or if you made the
fs with the free space tree.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/btrfs/220