#!/bin/sh

# Check verbose decoding of btrfs ioctl w/ live ioctls.

# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM

# Typical usage:
# mkfs.btrfs <dev>
# mount <dev> /mnt
# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-vw"
# umount /mnt

. "${srcdir=.}/init.sh"

if [ -z "${BTRFS_MOUNTPOINT}" ]; then
    skip_ "\$BTRFS_MOUNTPOINT not set"
elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
    skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
fi

check_prog grep
run_prog ../btrfs -v -w "${BTRFS_MOUNTPOINT}" > /dev/null
run_strace -a16 -veioctl $args > "$EXP"
grep -v '^ioctl([012],' < "$LOG" > "$OUT"
match_diff "$OUT" "$EXP"
