4 # This file is part of util-linux-ng.
6 # This file 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.
11 # This file 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 the
14 # GNU General Public License for more details.
17 TS_TOPDIR="$(dirname $0)/../.."
18 TS_DESC="doslabel tests"
20 . $TS_TOPDIR/functions.sh
23 # cmd to change number of cylinders to 1024 and changes system id to 0x1
24 FDISK_CMD_INIT='x\nc\n1024\ni\n0x1\nr\n'
25 FDISK_CMD_WRITE_CLOSE='w\nq\n'
26 FDISK_CMD_CREATE_DOSLABEL='o\n' #create dos label
27 FDISK_CMD_CREATE_PRIMARY='n\np\n1\n\n+1M\n' # create primary partition 1 of size 1MB
28 FDISK_CMD_CREATE_EXTENDED='n\ne\n2\n\n+10\n' # create extended partition 2 of size 11 cylinders
29 FDISK_CMD_CREATE_LOGICAL='n\nl\n\n+1\n' # create next logical partition of size 2 cyl
30 FDISK_CMD_DELETE_LOGICALS='d\n6\nd\n5\nd\n6\d5\n' # delete middle, head, tail, last partitions
31 FDISK_CMD_DELETE_PRIMARY='d\n1\n' # delete first primary
32 FDISK_CMD_DELETE_EXTENDED='d\n2\n' # delete second primary
36 ts_log "Initialize empty image"
37 TEST_IMAGE_NAME=$(ts_image_init 10)
38 ts_image_md5sum 2>&1 >> $TS_OUTPUT
40 # need to run init twice, to change system ID after new label, otherwise system
41 # ID will be random and will screw up md5's
42 ts_log "Create new DOS partition table"
43 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_CREATE_DOSLABEL}${FDISK_CMD_INIT}${FDISK_CMD_WRITE_CLOSE}" \
44 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
45 ts_image_md5sum 2>&1 >> $TS_OUTPUT
47 ts_log "Create primary partition"
48 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_CREATE_PRIMARY}${FDISK_CMD_WRITE_CLOSE}" | \
49 $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
50 ts_image_md5sum 2>&1 >> $TS_OUTPUT
52 ts_log "Create extended partition"
53 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_CREATE_EXTENDED}${FDISK_CMD_WRITE_CLOSE}" | \
54 $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
55 ts_image_md5sum 2>&1 >> $TS_OUTPUT
57 ts_log "Create logical partitions"
58 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_CREATE_LOGICAL}${FDISK_CMD_CREATE_LOGICAL}${FDISK_CMD_CREATE_LOGICAL}${FDISK_CMD_CREATE_LOGICAL}${FDISK_CMD_WRITE_CLOSE}" \
59 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
60 ts_image_md5sum 2>&1 >> $TS_OUTPUT
62 ts_log "Delete logical partitions"
63 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_DELETE_LOGICALS}${FDISK_CMD_WRITE_CLOSE}" \
64 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
65 ts_image_md5sum 2>&1 >> $TS_OUTPUT
67 ts_log "Create another logical partition"
68 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_CREATE_LOGICAL}${FDISK_CMD_WRITE_CLOSE}" \
69 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
70 ts_image_md5sum 2>&1 >> $TS_OUTPUT
72 ts_log "Delete primary partition"
73 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_DELETE_PRIMARY}${FDISK_CMD_WRITE_CLOSE}" \
74 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
75 ts_image_md5sum 2>&1 >> $TS_OUTPUT
77 ts_log "Delete extended partition"
78 echo -e "${FDISK_CMD_INIT}${FDISK_CMD_DELETE_EXTENDED}${FDISK_CMD_WRITE_CLOSE}" \
79 | $TS_CMD_FDISK ${TEST_IMAGE_NAME} &> /dev/null
80 ts_image_md5sum 2>&1 >> $TS_OUTPUT