1826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney#!/bin/sh
2826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
3826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# Check decoding of btrfs ioctl w/ live ioctls.
4826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
5826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
6826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
7826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# Typical usage:
8826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# mkfs.btrfs <dev>
9826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# mount <dev> /mnt
10826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-w"
11826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney# umount /mnt
12826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
13826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney. "${srcdir=.}/init.sh"
14826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
15826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneyif [ -z "${BTRFS_MOUNTPOINT}" ]; then
16826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney    skip_ "\$BTRFS_MOUNTPOINT not set"
17826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneyelif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
18826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney    skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
19826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneyfi
20826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoney
21826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneycheck_prog grep
2239bac055674d23770b9a724221b728e443196ea7Elliott Hughesrun_prog ../btrfs -w "${BTRFS_MOUNTPOINT}" > /dev/null
2339bac055674d23770b9a724221b728e443196ea7Elliott Hughesrun_strace -a16 -eioctl $args > "$EXP"
24826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneygrep -v '^ioctl([012],' < "$LOG" > "$OUT"
25826b7978ec021e79377c370e3894ad8d3479e572Jeff Mahoneymatch_diff "$OUT" "$EXP"
26