xref: /aosp_15_r20/external/ublksrv/tests/generic/003 (revision 94c4a1e103eb1715230460aab379dff275992c20)
1*94c4a1e1SFrank Piva#!/bin/bash
2*94c4a1e1SFrank Piva# SPDX-License-Identifier: MIT or GPL-2.0-only
3*94c4a1e1SFrank Piva
4*94c4a1e1SFrank Piva. common/fio_common
5*94c4a1e1SFrank Piva. common/loop_common
6*94c4a1e1SFrank Piva. common/qcow2_common
7*94c4a1e1SFrank Piva. common/nbd_common
8*94c4a1e1SFrank Piva
9*94c4a1e1SFrank Pivaublk_run_mount_test()
10*94c4a1e1SFrank Piva{
11*94c4a1e1SFrank Piva	local dev=`__create_ublk_dev`
12*94c4a1e1SFrank Piva	local mnt=$1
13*94c4a1e1SFrank Piva
14*94c4a1e1SFrank Piva	ROOT_FSTYPE=`findmnt -l -o FSTYPE -n /`
15*94c4a1e1SFrank Piva	echo -n -e "\tmount/umount $dev(ublk $T_TYPE_PARAMS) with fstype($ROOT_FSTYPE)..."
16*94c4a1e1SFrank Piva
17*94c4a1e1SFrank Piva
18*94c4a1e1SFrank Piva	wipefs -a $dev > /dev/null 2>&1
19*94c4a1e1SFrank Piva	eval mkfs.${ROOT_FSTYPE} $dev > /dev/null 2>&1
20*94c4a1e1SFrank Piva
21*94c4a1e1SFrank Piva	mount $dev $mnt > /dev/null 2>&1
22*94c4a1e1SFrank Piva
23*94c4a1e1SFrank Piva	UBLK_FSTYPE=`findmnt -l -o FSTYPE -n $mnt`
24*94c4a1e1SFrank Piva	if [ "$UBLK_FSTYPE" = "$ROOT_FSTYPE" ]; then
25*94c4a1e1SFrank Piva			echo "ok"
26*94c4a1e1SFrank Piva	else
27*94c4a1e1SFrank Piva			echo "failed"
28*94c4a1e1SFrank Piva	fi
29*94c4a1e1SFrank Piva	umount $mnt > /dev/null 2>&1
30*94c4a1e1SFrank Piva
31*94c4a1e1SFrank Piva	__remove_ublk_dev $dev
32*94c4a1e1SFrank Piva}
33*94c4a1e1SFrank Piva
34*94c4a1e1SFrank Pivaublk_run_mount_type()
35*94c4a1e1SFrank Piva{
36*94c4a1e1SFrank Piva	local type=$1
37*94c4a1e1SFrank Piva	local mnt=$2
38*94c4a1e1SFrank Piva	local queues=1
39*94c4a1e1SFrank Piva	local dev=/dev/ublkb0
40*94c4a1e1SFrank Piva
41*94c4a1e1SFrank Piva	[ ${type} == "loop" ] && queues=2
42*94c4a1e1SFrank Piva
43*94c4a1e1SFrank Piva	file=`_create_image $type "null" 1G`
44*94c4a1e1SFrank Piva
45*94c4a1e1SFrank Piva	for NEED_GET_DATA in `seq 0 1`; do
46*94c4a1e1SFrank Piva		if [ "$type" == "nbd" ]; then
47*94c4a1e1SFrank Piva			export T_TYPE_PARAMS="-t $type -q $queues -g $NEED_GET_DATA -d 127 --host $NBDSRV"
48*94c4a1e1SFrank Piva		else
49*94c4a1e1SFrank Piva			export T_TYPE_PARAMS="-t $type -q $queues -g $NEED_GET_DATA -f $file"
50*94c4a1e1SFrank Piva		fi
51*94c4a1e1SFrank Piva		ublk_run_mount_test $mnt
52*94c4a1e1SFrank Piva	done
53*94c4a1e1SFrank Piva	_remove_image ${type} $file
54*94c4a1e1SFrank Piva}
55*94c4a1e1SFrank Piva
56*94c4a1e1SFrank PivaMNT=`mktemp -d`
57*94c4a1e1SFrank Piva
58*94c4a1e1SFrank Pivafor TYPE in "loop" "qcow2" "nbd"; do
59*94c4a1e1SFrank Piva	ublk_run_mount_type $TYPE $MNT
60*94c4a1e1SFrank Pivadone
61*94c4a1e1SFrank Piva
62*94c4a1e1SFrank Pivarm -fr $MNT
63