#! /bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (c) 2020 Oracle.  All Rights Reserved.
#
# FS QA Test No. 524
#
# Test formatting with a well known config file.
#
. ./common/preamble
_begin_fstest auto quick mkfs

# Override the default cleanup function.
_cleanup()
{
	cd /
	rm -f $tmp.* $def_cfgfile $fsimg
}

# Import common functions.
. ./common/filter


# Modify as appropriate.
_require_test
_require_scratch_nocheck
_require_xfs_mkfs_cfgfile

# reflink is currently not supported for zoned devices, and the normal support
# checks for it don't work at mkfs time.
_require_non_zoned_device $SCRATCH_DEV

echo "Silence is golden"

def_cfgfile=$TEST_DIR/a
fsimg=$TEST_DIR/a.img
rm -f $def_cfgfile $fsimg
$XFS_IO_PROG -c "truncate 20t" -f $fsimg

cat > $def_cfgfile << ENDL
[metadata]
crc = 1
rmapbt = 1
reflink = 1

[inode]
sparse = 1
ENDL

$MKFS_XFS_PROG -c options=$def_cfgfile -f $SCRATCH_DEV > $tmp.mkfs
cat $tmp.mkfs >> $seqres.full
grep -q 'crc=1' $tmp.mkfs || echo 'v5 not enabled'
grep -q 'rmapbt=1' $tmp.mkfs || echo 'rmap not enabled'
grep -q 'reflink=1' $tmp.mkfs || echo 'reflink not enabled'
grep -q 'sparse=1' $tmp.mkfs || echo 'sparse inodes not enabled'

# success, all done
status=0
exit
