#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Copyright (C) 2017 Omar Sandoval
#
# Test debugfs interaction with blktrace. Removes a device while blktrace is
# still running.

. tests/block/rc
. common/scsi_debug

DESCRIPTION="remove a device while running blktrace"
QUICK=1

requires() {
	_have_blktrace
	_have_scsi_debug
}

test() {
	echo "Running ${TEST_NAME}"

	if ! _configure_scsi_debug; then
		return 1
	fi

	blktrace -D "$TMPDIR" "/dev/${SCSI_DEBUG_DEVICES[0]}" >"$FULL" 2>&1 &
	sleep 0.5
	echo 1 > "/sys/block/${SCSI_DEBUG_DEVICES[0]}/device/delete"
	{ kill $!; wait; } >/dev/null 2>/dev/null
	if [[ -d /sys/kernel/debug/block/${SCSI_DEBUG_DEVICES[0]} ]]; then
		echo "debugfs directory leaked"
	fi

	_exit_scsi_debug

	echo "Test complete"
}
