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