1#!/bin/sh 2# 3# 4# Copyright (c) International Business Machines Corp., 2001 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 2 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 14# the GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19# 20# 21# 22# FILE : stress_floppy 23# 24# PURPOSE : Tests the reading/writing/formatting on a floppy drive 25# 26# HISTORY: 27# 06/01 Robbie Williamson (robbiew@us.ibm.com) 28# -Ported 29# 30# 31#--------------------------------------------------------------------------- 32 33TCdat=${TCdat:-$LTP_DATAROOT} 34 35TCID="io_floppy" 36TST_TOTAL=7 37. test.sh 38 39setup() 40{ 41 tst_tmpdir 42 43 tst_check_cmds fdformat tar dump cpio dd mkfs mkdosfs 44 45 TCtmp=$(pwd) 46} 47 48cleanup() 49{ 50 tst_rmdir 51} 52 53 54test_for_device() 55{ 56 grep fd /proc/devices 57 if [ $? = 0 ]; then 58 num_device=$(ls /dev | grep fd0 | wc -l) 59 if [ $num_device = 0 ]; then 60 tst_brkm TCONF "No floppy diskette drive available!" 61 else 62 tst_resm TINFO "Floppy diskette drive fd0 available." 63 fi 64 else 65 tst_brkm TCONF "No floppy diskette drive available!" 66 fi 67} 68 69test_format() 70{ 71 tst_resm TINFO "Testing format..." 72 fdformat /dev/fd0 73 if [ $? -ne 0 ]; then 74 tst_resm TFAIL "Format failed!" 75 else 76 tst_resm TPASS "Format successful." 77 fi 78} 79 80test_tar() 81{ 82 for the_file in 1K_file 10K_file 100K_file 1000K_file 83 do 84 tst_resm TINFO "Testing $the_file tar..." 85 tar -C $TCdat/dumpdir -cvf /dev/fd0 $the_file 86 if [ $? -ne 0 ]; then 87 tst_resm TFAIL "$the_file Tar write failed!" 88 return 89 else 90 tst_resm TINFO "$the_file Tar write passed." 91 fi 92 tar -xvf /dev/fd0 93 if [ $? -ne 0 ]; then 94 tst_resm TFAIL "$the_file Tar read failed!" 95 return 96 else 97 tst_resm TINFO "$the_file Tar read passed." 98 fi 99 diff $TCdat/dumpdir/$the_file $the_file 2>&1 >/dev/null 100 if [ $? -ne 0 ]; then 101 tst_resm TFAIL "Diff of the $the_file tar files failed!" 102 return 103 else 104 tst_resm TINFO "Diff of the $the_file tar files passed." 105 fi 106 rm -f $the_file 107 done 108 tst_resm TPASS "test_tar: PASS." 109} 110 111test_dump() 112{ 113 tst_resm TINFO "Testing dump/restore..." 114 cp -r $TCdat/dumpdir ./ 115 if [ $? -ne 0 ]; then 116 tst_resm TFAIL "Could not create dumpdir directory in $TCtmp" 117 return 118 fi 119 120 dump -f /dev/fd0 dumpdir 121 if [ $? -ne 0 ]; then 122 tst_resm TFAIL "$the_file dump write failed!" 123 return 124 else 125 tst_resm TINFO "$the_file dump write passed." 126 fi 127 128 rm -rf dumpdir 129 cd / 130 131 restore -v -r -f /dev/fd0 2>/dev/null 132 if [ $? -ne 0 ]; then 133 tst_resm TFAIL "$the_file restore read failed!" 134 return 135 else 136 tst_resm TINFO "$the_file restore read passed." 137 fi 138 139 cd - 140 141 for the_file in 1K_file 10K_file 100K_file 142 do 143 diff dumpdir/$the_file /$TCdat/dumpdir/$the_file 2>&1 >/dev/null 144 if [ $? -ne 0 ]; then 145 tst_resm TFAIL \ 146 "Diff of the $the_file backup files failed!" 147 return 148 else 149 tst_resm TINFO \ 150 "Diff of the $the_file backup files passed." 151 fi 152 done 153 tst_resm TPASS "test_dump: PASS." 154 rm -rf dumpdir 155 rm -f restoresymtable 156} 157 158test_cpio() 159{ 160 for the_file in 1K_file 10K_file 100K_file 1000K_file 161 do 162 tst_resm TINFO "Testing $the_file cpio..." 163 cd $TCdat/dumpdir 164 echo $the_file | cpio -o > /dev/fd0 165 if [ $? -ne 0 ]; then 166 tst_resm TFAIL "$the_file cpio write failed!" 167 return 168 else 169 tst_resm TINFO "$the_file cpio write passed." 170 fi 171 cd $TCtmp 172 if [ $? -ne 0 ]; then 173 tst_resm TFAIL "Could not change to $TCtmp directory!" 174 return 175 fi 176 cpio -i < /dev/fd0 177 if [ $? -ne 0 ]; then 178 tst_resm TFAIL "$the_file cpio read failed!" 179 return 180 else 181 tst_resm TINFO "$the_file cpio read passed." 182 fi 183 diff $TCdat/dumpdir/$the_file $the_file 2>&1 >/dev/null 184 if [ $? -ne 0 ]; then 185 tst_resm TFAIL \ 186 "Diff of the $the_file cpio files failed!" 187 return 188 else 189 tst_resm TINFO \ 190 "Diff of the $the_file cpio files passed." 191 fi 192 rm -f $the_file 193 done 194 tst_resm TPASS "test_cpio: PASS." 195} 196 197test_dd() 198{ 199 for the_file in dd_file 200 do 201 tst_resm TINFO "Testing $the_file dd..." 202 dd if=$TCdat/$the_file of=/dev/fd0 ibs=1b obs=90b conv=sync 203 if [ $? -ne 0 ]; then 204 tst_resm TFAIL "$the_file dd write failed!" 205 return 206 else 207 tst_resm TINFO "$the_file dd write passed." 208 fi 209 dd if=/dev/fd0 of=$the_file ibs=90b obs=1b conv=sync 210 if [ $? -ne 0 ]; then 211 tst_resm TFAIL "$the_file dd read failed!" 212 return 213 else 214 tst_resm TINFO "$the_file dd read passed." 215 fi 216 diff $TCdat/$the_file $the_file 2>&1 >/dev/null 217 if [ $? -ne 0 ]; then 218 tst_resm TFAIL "Diff of the $the_file dd files failed!" 219 return 220 else 221 tst_resm TINFO "Diff of the $the_file dd files passed." 222 fi 223 rm -f $the_file 224 done 225 tst_resm TPASS "test_dd: PASS." 226} 227 228test_linuxformat() 229{ 230 tst_resm TINFO "Testing mkdosfs...." 231 mkfs -v /dev/fd0 232 if [ $? -ne 0 ]; then 233 tst_resm TFAIL "Linux (ext2) format failed!" 234 else 235 tst_resm TPASS "Linux (ext2) successful." 236 fi 237} 238 239test_dosformat() 240{ 241 tst_resm TINFO "Testing mkdosfs...." 242 mkdosfs -v /dev/fd0 243 if [ $? -ne 0 ]; then 244 tst_resm TFAIL "Dosformat failed!" 245 else 246 tst_resm TPASS "Dosformat successful." 247 fi 248} 249 250setup 251 252TST_CLEANUP=cleanup 253 254test_for_device 255 256test_format 257test_tar 258test_dump 259test_cpio 260test_dd 261test_linuxformat 262test_dosformat 263 264tst_exit 265