Initial Version
[qa-tools:mnts.git] / mnts-baseos-tests / src / drv_usb_storage_006.sh
1 #!/bin/sh
2 #DESCR: copy file to 
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 #
21 cd `dirname $0`
22 . ./helper
23 device=`get_usb_storage_device`
24 if [ $? -ne 0 ]; then
25         echo "ERR: can not get storage device file"
26         exit 1
27 fi
28 if [ ! -e /dev/$device ]; then
29         echo "ERR: Can not find device file /dev/$device"
30         exit 1
31 fi
32 clean_partition $device
33 #dd if=/dev/zero of=/dev/$device bs=1024 count=1
34 /sbin/fdisk /dev/${device} <<EOF
35 n
36 p
37 1
38
39 +128M
40 w
41 EOF
42 sleep 5
43 if [ ! -e /dev/${device}1 ]; then
44         echo "Create partiton 1 fail"
45         exit 1
46 fi
47 umount /dev/${device}1
48 /sbin/mkfs.ext3 /dev/${device}1
49 if [ $? -ne 0 ]; then
50         echo "Fail to setup filesystem on USB storage"
51         exit 1
52 fi
53
54 umount /dev/${device}1 
55 [ -d tmpmnt ] || mkdir tmpmnt
56 umount tmpmnt
57 mount /dev/${device}1 tmpmnt
58 if [ $? -ne 0 ]; then
59         echo "Fail to mount filesystem on USB storage"
60         exit 1
61 fi
62 rm -fr tmpmnt/*
63 mkdir tmpmnt/tmpdata
64 dd if=/dev/urandom of=data1 bs=1k count=10000
65 dd if=/dev/urandom of=data2 bs=1k count=20000
66 dd if=/dev/urandom of=data3 bs=1k count=30000
67
68 cp -a data* tmpmnt/tmpdata
69 umount tmpmnt
70 sleep 5
71 mount /dev/${device}1 tmpmnt
72 if [ $? -ne 0 ]; then
73         echo "Fail to mount filesystem on USB storage"
74         exit 1
75 fi
76
77 for i in 'data1' 'data2' 'data3'; do
78         diff $i tmpmnt/tmpdata/$i
79         if [ $? -ne 0 ]; then
80                 echo "cp $i fail"
81                 umount tmpmnt
82                 exit 1
83
84         fi
85 done
86
87 umount tmpmnt
88 rm -rf data1 data2 data3
89
90 clean_partition $device
91 echo "PASS"
92 exit 0
93