mrrl-mdev-conf

mdevd configuration for mrrl; fork of Alpine's mdev-conf
git clone https://ccx.te2000.cz/git/mrrl-mdev-conf
Log | Files | Refs | README | LICENSE

persistent-storage_test (13136B)


      1 #!/usr/bin/env atf-sh
      2 
      3 . $(atf_get_srcdir)/test_env.sh
      4 init_tests \
      5 	persistent_storage_cdrom \
      6 	persistent_storage_cdrom_removable \
      7 	persistent_storage_nvme_wwid \
      8 	persistent_storage_sda_wwid \
      9 	persistent_storage_sda_wwid_partition_symlink \
     10 	persistent_storage_nvme_model_serial \
     11 	persistent_storage_virtio_blk_serial \
     12 	persistent_storage_block \
     13 	persistent_storage_by_label \
     14 	persistent_storage_by_partlabel \
     15 	persistent_storage_by_partuuid \
     16 	persistent_storage_by_uuid \
     17 	persistent_storage_ebs \
     18 	persistent_storage_usbdisk_symlink \
     19 	persistent_storage_usbdisk_partition_symlink
     20 
     21 mdevscript=$(atf_get_srcdir)/../persistent-storage
     22 export SYSFS=sys
     23 
     24 persistent_storage_cdrom_body() {
     25 	for dev in sr0 xvdc; do
     26 		mkdir -p sys/block/$dev
     27 		echo 109 > sys/block/$dev/capability
     28 
     29 		MDEV=$dev ACTION=add atf_check \
     30 			sh $mdevscript
     31 		atf_check -o match:"$dev" \
     32 			readlink cdrom
     33 
     34 		MDEV=$dev ACTION=remove atf_check \
     35 			sh $mdevscript
     36 		atf_check -s not-exit:0 -o not-match:"$dev" \
     37 			readlink cdrom
     38 	done
     39 }
     40 
     41 persistent_storage_cdrom_removable_body() {
     42 	for dev in sr0 xvdc; do
     43 		# newer kernels does not set the CDROM capability bit
     44 		# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1a827ce1b9f2c740d2c6a228afd972970c18bc21
     45 		mkdir -p sys/block/$dev
     46 		echo 5 > sys/block/$dev/capability
     47 		echo 1 > sys/block/$dev/removable
     48 
     49 		MDEV=$dev ACTION=add atf_check \
     50 			sh $mdevscript
     51 		atf_check -o match:"$dev" \
     52 			readlink cdrom
     53 
     54 		MDEV=$dev ACTION=remove atf_check \
     55 			sh $mdevscript
     56 		atf_check -s not-exit:0 -o not-match:"$dev" \
     57 			readlink cdrom
     58 	done
     59 }
     60 
     61 persistent_storage_nvme_wwid_body() {
     62 	mkdir -p sys/class/block/nvme0n1
     63 	echo eui.0025386b61b01dcd > sys/class/block/nvme0n1/wwid
     64 
     65 	MDEV=nvme0n1 ACTION=add atf_check \
     66 		sh $mdevscript
     67 	atf_check -o match:"nvme0n1" \
     68 		readlink disk/by-id/nvme-eui.0025386b61b01dcd
     69 
     70 	MDEV=nvme0n1 ACTION=remove atf_check \
     71 		sh $mdevscript
     72 	atf_check -s not-exit:0 \
     73 		readlink disk/by-id/nvme-eui.0025386b61b01dcd
     74 }
     75 
     76 persistent_storage_sda_wwid_body() {
     77 	mkdir -p sys/class/block/sda/device
     78 	echo naa.5002538f4158fd7b > sys/class/block/sda/device/wwid
     79 
     80 	MDEV=sda ACTION=add atf_check \
     81 		sh $mdevscript
     82 	atf_check -o match:"sda" \
     83 		readlink disk/by-id/wwn-0x5002538f4158fd7b
     84 
     85 	MDEV=sda ACTION=remove atf_check \
     86 		sh $mdevscript
     87 	atf_check -s not-exit:0 \
     88 		readlink disk/by-id/wwn-0x5002538f4158fd7b
     89 }
     90 
     91 persistent_storage_sda_wwid_partition_symlink_body() {
     92 	mkdir -p sys/class/block
     93 	mkdir -p sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
     94 	ln -s ../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1 sys/class/block/sda1
     95 	
     96 	mkdir -p sys/class/block/sda/device
     97 	echo naa.5000cca03e99fea4 > sys/class/block/sda/device/wwid
     98 	
     99 	mkdir -p sys/class/block/sda1
    100 	echo '1' > sys/class/block/sda1/partition
    101 
    102 	MDEV=sda1 ACTION=add atf_check \
    103 		sh $mdevscript
    104 	atf_check -o match:"sda1" \
    105 		readlink disk/by-id/wwn-0x5000cca03e99fea4-part1
    106 
    107 	MDEV=sda1 ACTION=remove atf_check \
    108 		sh $mdevscript
    109 	atf_check -s not-exit:0 \
    110 		readlink disk/by-id/wwn-0x5000cca03e99fea4-part1
    111 }
    112 
    113 
    114 persistent_storage_nvme_model_serial_body() {
    115 	mkdir -p sys/class/block/nvme0n1/device
    116 	echo 'Samsung SSD 960 EVO 500GB               ' > sys/class/block/nvme0n1/device/model
    117 	echo 'S3EUNX0HB01245Y     ' > sys/class/block/nvme0n1/device/serial
    118 
    119 	MDEV=nvme0n1 ACTION=add atf_check \
    120 		sh $mdevscript
    121 	atf_check -o match:"nvme0n1" \
    122 		readlink disk/by-id/nvme-Samsung_SSD_960_EVO_500GB_S3EUNX0HB01245Y
    123 }
    124 
    125 persistent_storage_virtio_blk_serial_body() {
    126 	mkdir -p sys/class/block/vda
    127 	echo 'foobar' > sys/class/block/vda/serial
    128 
    129 	MDEV=vda ACTION=add atf_check \
    130 		sh $mdevscript
    131 	atf_check -o match:"vda" \
    132 		readlink disk/by-id/virtio-foobar
    133 }
    134 
    135 persistent_storage_block_body() {
    136 	mkdir -p sys/class/block/sda
    137 	echo '8:0' > sys/class/block/sda/dev
    138 
    139 	MDEV=sda ACTION=add atf_check \
    140 		sh $mdevscript
    141 	atf_check -o match:"sda" \
    142 		readlink block/8:0
    143 }
    144 
    145 persistent_storage_by_label_body() {
    146 	local fs_label="EFI System"
    147 	local fs_encoded_label="$(echo $fs_label | sed -e 's| |\\x20|g')"
    148 
    149 	cat <<-EOF > blkid
    150 	#!/bin/sh
    151 	# blkid mock
    152 	case \$1 in
    153 		/dev/sda1)
    154 		echo "/dev/sda1: UUID=\"00283cf5-01\" LABEL=\"$fs_encoded_label\" TYPE=\"ext4\""
    155 		;;
    156 	esac
    157 	EOF
    158 	chmod +x blkid
    159 	export PATH="$PWD:$PATH"
    160 
    161 	MDEV=sda1 ACTION=add atf_check \
    162 		sh $mdevscript
    163 	atf_check -o match:"sda1" \
    164 		readlink disk/by-label/"$fs_encoded_label"
    165 }
    166 
    167 persistent_storage_by_partlabel_body() {
    168 	local partlabel="LUKS"
    169 
    170 	cat <<-EOF > blkid
    171 	#!/bin/sh
    172 	# blkid mock
    173 	case \$1 in
    174 		/dev/sda1)
    175 		echo "/dev/sda1: UUID=\"00283cf5-01\" LABEL=\"testing\" PARTLABEL=\"$partlabel\" TYPE=\"ext4\""
    176 		;;
    177 	esac
    178 	EOF
    179 	chmod +x blkid
    180 	export PATH="$PWD:$PATH"
    181 
    182 	MDEV=sda1 ACTION=add atf_check \
    183 		sh $mdevscript
    184 	atf_check -o match:"sda1" \
    185 		readlink disk/by-partlabel/"$partlabel"
    186 }
    187 
    188 persistent_storage_by_partuuid_body() {
    189 	local partuuid="f6daa453-3150-46a2-b6f9-863e38fcd2aa"
    190 	mkdir bin
    191 
    192 	cat <<-EOF > bin/blkid
    193 	#!/bin/sh
    194 	# blkid mock
    195 	case \$1 in
    196 		/dev/vda1)
    197 		echo '/dev/vda1: LABEL="testlabel" UUID="9850e420-fecd-4d61-bf8e-50c8babebbb2" BLOCK_SIZE="512" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="$partuuid"'
    198 		;;
    199 	esac
    200 	EOF
    201 	chmod +x bin/blkid
    202 	export PATH="$PWD/bin:$PATH"
    203 
    204 	MDEV=vda1 ACTION=add atf_check \
    205 		sh $mdevscript
    206 	atf_check -o match:"vda1" \
    207 		readlink disk/by-partuuid/"$partuuid"
    208 }
    209 
    210 persistent_storage_by_uuid_body() {
    211 	local fs_uuid="2022-05-15-22-31-31-00"
    212 
    213 	cat <<-EOF > blkid
    214 	#!/bin/sh
    215 	# blkid mock
    216 	case \$1 in
    217 		/dev/sr0)
    218 		echo "/dev/sr0: BLOCK_SIZE=\"2048\" UUID=\"$fs_uuid\" LABEL=\"cidata\" TYPE=\"iso9660\""
    219 		;;
    220 	esac
    221 	EOF
    222 	chmod +x blkid
    223 	export PATH="$PWD:$PATH"
    224 
    225 	MDEV=sr0 ACTION=add atf_check \
    226 		sh $mdevscript
    227 	atf_check -o match:"sr0" \
    228 		readlink disk/by-uuid/"$fs_uuid"
    229 }
    230 
    231 persistent_storage_ebs_body() {
    232 	mkdir -p bin sys/class/block \
    233 		sys/devices/pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p2 \
    234 		sys/devices/pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1/device
    235 	ln -s ../../devices/pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1 sys/class/block/nvme0n1
    236 	ln -s ../../devices/pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p2 sys/class/block/nvme0n1p2
    237 	echo "Amazon Elastic Block Store" > sys/class/block/nvme0n1/device/model
    238 	echo 2 > sys/class/block/nvme0n1p2/partition
    239 
    240 	cat <<-EOF > bin/nvme
    241 	#!/bin/sh
    242 	# mock nvme
    243 	base64 -d <<-EOF2
    244 Dx0PHXZvbDA1OGQxMDlkZWE1NjRiNGQwQW1hem9uIEVsYXN0aWMgQmxvY2sgU3RvcmUgICAgICAg
    245 ICAgICAgIDEuMCAgICAgINwCoAAGAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA
    246 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    247 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    248 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAADAD8AAQBXAQAAAAAAAAAAAAAAAAAAAAAA
    249 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    250 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    251 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    252 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm
    253 RAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    254 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    255 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    256 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    257 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    258 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    259 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    260 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    261 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    262 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    263 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    264 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    265 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    266 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    267 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    268 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    269 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    270 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    271 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    272 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    273 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    274 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    275 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    276 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    277 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    278 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    279 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
    280 QEIPAEBCDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    281 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    282 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    283 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    284 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    285 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    286 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    287 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    288 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    289 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    290 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    291 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    292 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    293 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    294 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    295 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    296 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    297 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHZkYSAg
    298 ICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    299 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    300 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    301 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    302 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    303 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    304 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    305 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    306 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    307 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    308 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    309 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    310 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    311 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    312 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    313 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    314 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    315 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    316 	EOF2
    317 	EOF
    318 	chmod +x bin/nvme
    319 	export PATH="$PWD/bin:$PATH"
    320 
    321 	MDEV=nvme0n1 ACTION=add atf_check \
    322 		sh $mdevscript
    323 	atf_check -o match:"nvme0n1" \
    324 		readlink xvda
    325 
    326 	MDEV=nvme0n1p2 ACTION=add atf_check \
    327 		sh $mdevscript
    328 	atf_check -o match:"nvme0n1p2" \
    329 		readlink xvda2
    330 }
    331 
    332 persistent_storage_usbdisk_symlink_body() {
    333 	mkdir -p sys/class/block sys/block bin
    334 	ln -s ../../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/class/block/sdc
    335 	ln -s ../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/block/sdc
    336 
    337 	cat <<-EOF > bin/blkid
    338 	#!/bin/sh
    339 	# blkid mock
    340 	case \$1 in
    341 		/dev/sdc)
    342 		echo '/dev/sdc: UUID="436D-F3F4" BLOCK_SIZE="512" TYPE="vfat"'
    343 		;;
    344 	esac
    345 	EOF
    346 	chmod +x bin/blkid
    347 	export PATH="$PWD/bin:$PATH"
    348 
    349 	MDEV=sdc ACTION=add atf_check \
    350 		sh $mdevscript
    351 	atf_check -o match:"sdc" \
    352 		readlink usbdisk
    353 }
    354 
    355 persistent_storage_usbdisk_partition_symlink_body() {
    356 	mkdir -p sys/class/block
    357 	ln -s ../../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/class/block/sdc1
    358 
    359 	MDEV=sdc1 ACTION=add atf_check \
    360 		sh $mdevscript
    361 	atf_check -o match:"sdc1" \
    362 		readlink usbdisk
    363 }