6eba2925a352ed91ff5b9b66fa02d7f5ec9738a9
[tools/itest-cases-mic.git] / cases / create / func_cases / mic_cr_auto_raw.case
1 <testcase>
2   <summary>test 'mic cr auto ks' for raw  type
3 if we run command with 'auto', mic will use the first line in ks file,
4 which called magic line, and magic line in this ks file is:
5  -*-mic2-options-*- -f raw --copy-kernel --compress-disk-image=bz2 --generate-bmap -*-mic2-options-*-
6   </summary>
7   <fixtures>
8     <copy src="ks_files/ivi.ks" />
9     <content target="parse_manifest.py">
10 import sys
11 import json
12 img_file = sys.argv[1]
13 mic_version = sys.argv[2]
14 bmap_file = sys.argv[3]
15 manifest_file=open('mic-output/manifest.json')
16 manifest=json.load(manifest_file)
17 assert manifest['format'] == 'raw'
18 assert manifest['version'] == mic_version
19 assert manifest['raw']['compress'] == 'bz2'
20 assert img_file in manifest['raw']['image_files']
21 assert 'sdb' in manifest['raw']['disks']
22 assert manifest['raw']['sdb']['bmap'] == bmap_file
23 assert manifest['raw']['sdb']['image'] == img_file
24     </content>
25   </fixtures>
26   <steps><![CDATA[
27 losetup_path=$(sudo which losetup)
28 sudo $losetup_path -a
29 sudo $losetup_path -a | wc -l | xargs test 0 -eq
30 sudo mic -d -v cr auto ivi.ks --logfile=log.file
31 grep "Finished" log.file
32 sudo $losetup_path -a
33 sudo $losetup_path -a | wc -l | xargs test 0 -eq
34 ls mic-output/ | grep 'ivi-.*-sdb.bmap'
35 ls mic-output/ | grep 'ivi-.*-sdb.raw.bz2'
36 ls mic-output/ | grep 'ivi-.*-vmlinuz-*'
37 bz2img=$(ls mic-output/ | grep 'ivi-.*-sdb.raw.bz2')
38 bmap=$(ls mic-output/ | grep 'ivi-.*-sdb.bmap')
39 sudo bunzip2 -d mic-output/$bz2img
40 raw_image=$(ls mic-output/ivi-*-sdb.raw)
41 sudo mkdir -p mic-output/ivi_dir/boot
42 kpartx_path=$(sudo which kpartx)
43 loop_device=$(sudo $losetup_path -f)
44 sudo $losetup_path $loop_device $raw_image
45 for i in {1..5}
46 do
47     kpartx_output=$(sudo $kpartx_path -av $loop_device)
48     if [ -n "$kpartx_output" ]; then
49         first_part=$(echo "$kpartx_output" | awk '{print $3}' | sed -n '1p')
50         second_part=$(echo "$kpartx_output" | awk '{print $3}' | sed -n '2p')
51         if [ -n "$first_part" ] && [ -n "$second_part" ];then
52             for j in {1..5}
53             do
54                 ls /dev/mapper/
55                 if [ -e "/dev/mapper/$first_part" ] && [ -e "/dev/mapper/$second_part" ];then
56                     sudo mount /dev/mapper/$first_part  mic-output/ivi_dir/boot/ -t ext4
57                     sudo mount /dev/mapper/$second_part  mic-output/ivi_dir/ -t ext4
58                     (! sudo chroot mic-output/ivi_dir/ cat /etc/fstab | grep /dev/sdb)
59                     sudo chroot mic-output/ivi_dir/ cat /etc/fstab | grep -i 'uuid'
60                     mic_version=$(mic --version  2>&1 | awk -F ' ' '{print $2}')
61                     python parse_manifest.py $bz2img $mic_version $bmap
62                     exit 0
63                 else
64                     sleep 2
65                 fi
66             done
67         fi
68     fi
69     sleep 3
70 done
71 echo "can not get kpartx output: $kpartx_path -av $raw_image"
72 exit 1
73 ]]></steps>
74   <teardown><![CDATA[
75 echo "cleaning..."
76 sudo test -f log.file && sudo rm -f log.file
77 losetup_path=$(sudo which losetup)
78 sudo $losetup_path -a
79 loop_devices=$(sudo $losetup_path -a | awk -F ":" '{print $1}')
80 raw_image=$(ls mic-output/ivi-*-sdb.raw)
81 for i in {1..5}
82 do
83     for loop_device in $loop_devices
84     do
85         test -d mic-output/ivi_dir && sudo umount -l mic-output/ivi_dir
86         test -d mic-output/ivi_dir/boot && sudo umount -l mic-output/ivi_dir/boot
87         kpartx_path=$(sudo which kpartx)
88         sudo $kpartx_path -d $loop_device
89         sudo $losetup_path -d $loop_device
90     done
91     if sudo $losetup_path -a | grep 'ivi'; then
92         sleep 2
93     else
94         test -d mic-output && sudo rm -rf ./mic-output
95         break
96     fi
97 done
98 ]]></teardown>
99 </testcase>