1d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#!/bin/sh 2d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 3d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# Check decoding of btrfs ioctl w/ live ioctls. 4d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 5d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM 6d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 7d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# Typical usage: 8d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# mkfs.btrfs <dev> 9d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# mount <dev> /mnt 10d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-w" 11d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes# umount /mnt 12d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 13d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes. "${srcdir=.}/init.sh" 14d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 15d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesif [ -z "${BTRFS_MOUNTPOINT}" ]; then 16d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes skip_ "\$BTRFS_MOUNTPOINT not set" 17d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hugheselif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then 18d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes skip_ "\$BTRFS_MOUNTPOINT does not point to a directory" 19d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesfi 20d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes 21d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughescheck_prog grep 2239bac055674d23770b9a724221b728e443196ea7Elliott Hughesrun_prog ../btrfs -w "${BTRFS_MOUNTPOINT}" > /dev/null 2339bac055674d23770b9a724221b728e443196ea7Elliott Hughesrun_strace -a16 -eioctl $args > "$EXP" 24d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesgrep -v '^ioctl([012],' < "$LOG" > "$OUT" 25d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesmatch_diff "$OUT" "$EXP" 26