Initial Version
[qa-tools:mnts.git] / mnts-baseos-tests / src / drv_sdmmc_008.sh
1 #!/bin/sh
2 #DESCR: copy file to sd card
3 # Copyright (C) 2007, Intel Corporation.
4
5 # This program is free software; you can redistribute it and/or modify it
6 # under the terms and conditions of the GNU General Public License,
7 # version 2, as published by the Free Software Foundation.
8 #
9 # This program is distributed in the hope it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 # for more details.  
13 #
14 # You should have received a copy of the GNU General Public License along with
15 # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16 # Place - Suite 330, Boston, MA 02111-1307 USA.
17 #
18 # Authors:
19 #       Wang,Jing  <jing.j.wang@intel.com>
20 #TIMEOUT: 600
21 cd `dirname $0`
22 . ./helper
23
24 device=`find_sd_device`
25 if [ $? -ne 0 ]; then
26         echo "Fail to find SD device"
27         exit 1
28 fi
29
30 if [ ! -e /dev/$device ]; then
31         echo "Can not find device /dev/$device"
32         exit 1
33 fi
34 par1=`get_sd_par $device 1`
35 umount /dev/$par1
36 dd if=/dev/zero of=/dev/$device bs=1024 count=1
37 sync
38 sleep 3
39 /sbin/fdisk /dev/${device} <<EOF
40 n
41 p
42 1
43
44 +128M
45 w
46 EOF
47 sleep 3
48  
49 if [ ! -e /dev/$par1 ]; then
50         echo "Create partiton 1 fail"
51         exit 1
52 fi
53 umount /dev/$par1
54 /sbin/mkfs.vfat /dev/$par1
55 if [ $? -ne 0 ]; then
56         echo "Fail to setup filesystem on SD card"
57         exit 1
58 fi
59
60 [ -d tmpmnt ] || mkdir tmpmnt
61 umount tmpmnt
62 mount /dev/$par1 tmpmnt
63 if [ $? -ne 0 ]; then
64         echo "Fail to mount filesystem on SD card"
65         exit 1
66 fi
67 rm -fr tmpmnt/*
68
69 mkdir -p tmpmnt/tmpdata
70
71 dd if=/dev/urandom of=data1 bs=1k count=10000
72 dd if=/dev/urandom of=data2 bs=1k count=20000
73 dd if=/dev/urandom of=data3 bs=1k count=30000
74
75 cp -a data* tmpmnt/tmpdata
76 umount tmpmnt
77 sleep 1 
78 mount /dev/$par1 tmpmnt
79 if [ $? -ne 0 ]; then
80         echo "Fail to mount filesystem on SD card"
81         exit 1
82 fi
83
84
85 for i in 'data1' 'data2' 'data3'; do
86         diff $i tmpmnt/tmpdata/$i
87         if [ $? -ne 0 ]; then
88                 echo "cp $i fail"
89                 umount tmpmnt
90                 exit 1
91
92         fi
93 done
94 umount tmpmnt
95 rm -rf data1 data2 data3
96
97 sleep 8
98 umount /dev/$par1
99 dd if=/dev/zero of=/dev/$device bs=1024 count=1
100 echo "PASS"
101 exit 0
102