"kpartx -av *.raw" will fail when "losetup -f" can not generate loop file
[tools/itest-cases-mic.git] / cases / create / opt_cases / mic_cr_raw_fstab-entry-name.case
1 <testcase>
2   <summary>This test case is used to test the option "--fstab-entry=name",</summary>
3   <fixtures>
4     <copy src="ks_files/ivi.ks" />
5   </fixtures>
6   <steps><![CDATA[
7 losetup_path=$(sudo which losetup)
8 sudo $losetup_path -a
9 sudo $losetup_path -a | wc -l | xargs test 0 -eq
10 sudo mic -d -v cr raw  ivi.ks --fstab-entry=name --logfile=log.file
11 grep "Finished" log.file
12 ls mic-output/ | grep 'ivi-.*-sdb.raw'
13 sudo $losetup_path -a
14 sudo $losetup_path -a | wc -l | xargs test 0 -eq
15 raw_image=$(ls mic-output/ivi-*-sdb.raw)
16 sudo mkdir -p mic-output/ivi_dir/boot
17 kpartx_path=$(sudo which kpartx)
18 distro=$(python -c 'import platform;print platform.linux_distribution()[0].lower().rstrip()')
19 echo $distro
20 if [ "$distro" = "fedora" ] || [ "$distro" = "centos linux" ]; then
21     modprobe_path=$(sudo which modprobe)
22     rmmod_path=$(sudo which rmmod)
23
24     sudo $modprobe_path loop
25     sudo $rmmod_path loop
26 fi
27
28 for i in {1..5}
29 do
30     kpartx_output=$(sudo $kpartx_path -av $raw_image)
31     if [ -n "$kpartx_output" ]; then
32         first_part=$(echo "$kpartx_output" | awk '{print $3}' | sed -n '1p')
33         second_part=$(echo "$kpartx_output" | awk '{print $3}' | sed -n '2p')
34         ls /dev/mapper/
35         if [ -n "$first_part" ] && [ -e "/dev/mapper/$first_part" ];then
36             sudo mount /dev/mapper/$first_part  mic-output/ivi_dir/boot/ -t ext4
37             sudo mount /dev/mapper/$second_part  mic-output/ivi_dir/ -t ext4
38             sudo chroot mic-output/ivi_dir/ cat /etc/fstab | grep /dev/sdb
39             (! sudo chroot mic-output/ivi_dir/ cat /etc/fstab | grep -i 'uuid')
40             exit 0
41        fi
42    fi
43    sleep 3
44 done
45 echo "can not get kpartx output: $kpartx_path -av $raw_image"
46 exit 1
47 ]]></steps>
48   <teardown><![CDATA[
49 echo "cleaning..."
50 test -f log.file && sudo rm log.file
51 raw_image=$(ls mic-output/ivi-*-sdb.raw)
52 losetup_path=$(sudo which losetup)
53 if [ -f $raw_image ];then
54     for i in {1..5}
55     do
56     test -d mic-output/ivi_dir && sudo umount -l mic-output/ivi_dir
57     test -d mic-output/ivi_dir/boot && sudo umount -l mic-output/ivi_dir/boot
58     kpartx_path=$(sudo which kpartx)
59     sudo $kpartx_path -d $raw_image
60     if sudo $losetup_path -a | grep "ivi"; then
61         sleep 2
62     else
63         test -d mic-output && sudo rm -rf ./mic-output
64         break
65     fi
66     done
67 fi
68 ]]></teardown>
69 </testcase>