xref: /aosp_15_r20/external/gptfdisk/gdisk_test.sh (revision 57696d54d05c64fd1b1787f8371dbcf104911cfb)
1*57696d54SAkhilesh Sanikop#!/bin/bash
2*57696d54SAkhilesh Sanikop# test gdisk and sgdisk by creating a dd file
3*57696d54SAkhilesh Sanikop# Copyright (C) 2011 Guillaume Delacour <[email protected]>
4*57696d54SAkhilesh Sanikop#
5*57696d54SAkhilesh Sanikop# This program is free software; you can redistribute it and/or modify
6*57696d54SAkhilesh Sanikop# it under the terms of the GNU General Public License as published by
7*57696d54SAkhilesh Sanikop# the Free Software Foundation; either version 2 of the License, or
8*57696d54SAkhilesh Sanikop# (at your option) any later version.
9*57696d54SAkhilesh Sanikop#
10*57696d54SAkhilesh Sanikop# This program is distributed in the hope that it will be useful,
11*57696d54SAkhilesh Sanikop# but WITHOUT ANY WARRANTY; without even the implied warranty of
12*57696d54SAkhilesh Sanikop# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*57696d54SAkhilesh Sanikop# GNU General Public License for more details.
14*57696d54SAkhilesh Sanikop#
15*57696d54SAkhilesh Sanikop# You should have received a copy of the GNU General Public License along
16*57696d54SAkhilesh Sanikop# with this program; if not, write to the Free Software Foundation, Inc.,
17*57696d54SAkhilesh Sanikop# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*57696d54SAkhilesh Sanikop#
19*57696d54SAkhilesh Sanikop#
20*57696d54SAkhilesh Sanikop# Requires: coreutils (mktemp, dd) and 64M of disk space in /tmp (temp dd disk)
21*57696d54SAkhilesh Sanikop#
22*57696d54SAkhilesh Sanikop# This script test gdisk commands through the following scenario:
23*57696d54SAkhilesh Sanikop# - Initialize a new GPT table
24*57696d54SAkhilesh Sanikop# - Create a single Linux partition
25*57696d54SAkhilesh Sanikop# - Change name of partition
26*57696d54SAkhilesh Sanikop# - Change type of partition
27*57696d54SAkhilesh Sanikop# - Backup to file the GPT table
28*57696d54SAkhilesh Sanikop# - Delete the single partition
29*57696d54SAkhilesh Sanikop# - Restore from backup file the GPT table
30*57696d54SAkhilesh Sanikop# - Wipe the GPT table
31*57696d54SAkhilesh Sanikop
32*57696d54SAkhilesh Sanikop# TODO
33*57696d54SAkhilesh Sanikop# Try to generate a wrong GPT table to detect problems (test --verify)
34*57696d54SAkhilesh Sanikop# Create MBR partition table with fdisk and migrate it with gdisk
35*57696d54SAkhilesh Sanikop
36*57696d54SAkhilesh SanikopGDISK_BIN=./gdisk
37*57696d54SAkhilesh SanikopSGDISK_BIN=./sgdisk
38*57696d54SAkhilesh Sanikop
39*57696d54SAkhilesh SanikopOPT_CLEAR="o"
40*57696d54SAkhilesh SanikopOPT_NEW="n"
41*57696d54SAkhilesh SanikopOPT_CHANGE_NAME="c"
42*57696d54SAkhilesh SanikopOPT_CHANGE_TYPE="t"
43*57696d54SAkhilesh SanikopOPT_BACKUP="b"
44*57696d54SAkhilesh SanikopOPT_DELETE="d"
45*57696d54SAkhilesh SanikopOPT_ZAP="z"
46*57696d54SAkhilesh Sanikop
47*57696d54SAkhilesh Sanikop# temp disk for testing gdisk
48*57696d54SAkhilesh SanikopTEMP_DISK=$(mktemp)
49*57696d54SAkhilesh Sanikop# 64 MiB
50*57696d54SAkhilesh SanikopTEMP_DISK_SIZE=65536
51*57696d54SAkhilesh Sanikop
52*57696d54SAkhilesh Sanikop# the test partition to create
53*57696d54SAkhilesh SanikopTEST_PART_TYPE="8300"
54*57696d54SAkhilesh SanikopTEST_PART_DEFAULT_NAME="Linux filesystem"
55*57696d54SAkhilesh Sanikop
56*57696d54SAkhilesh Sanikop# newname for the partition
57*57696d54SAkhilesh SanikopTEST_PART_NEWNAME=$(tr -dc "[:alpha:]" < /dev/urandom | head -c 8)
58*57696d54SAkhilesh Sanikop# and new type (swap for example)
59*57696d54SAkhilesh SanikopTEST_PART_NEWTYPE="8200"
60*57696d54SAkhilesh Sanikop
61*57696d54SAkhilesh Sanikop# GPT data backup to filename
62*57696d54SAkhilesh SanikopGPT_BACKUP_FILENAME=$(mktemp)
63*57696d54SAkhilesh Sanikop
64*57696d54SAkhilesh Sanikop# Pretty print string (Red if FAILED or green if SUCCESS)
65*57696d54SAkhilesh Sanikop# $1: string to pretty print
66*57696d54SAkhilesh Sanikoppretty_print() {
67*57696d54SAkhilesh Sanikop	if [ "$1" = "SUCCESS" ]
68*57696d54SAkhilesh Sanikop	then
69*57696d54SAkhilesh Sanikop		# green
70*57696d54SAkhilesh Sanikop		color="32"
71*57696d54SAkhilesh Sanikop	else
72*57696d54SAkhilesh Sanikop		# red
73*57696d54SAkhilesh Sanikop		color="31"
74*57696d54SAkhilesh Sanikop	fi
75*57696d54SAkhilesh Sanikop
76*57696d54SAkhilesh Sanikop	printf "\033[0;${color}m**$1**\033[m $2\n"
77*57696d54SAkhilesh Sanikop}
78*57696d54SAkhilesh Sanikop
79*57696d54SAkhilesh Sanikop# Verify that the partition exist and has the given type/name
80*57696d54SAkhilesh Sanikop# $1: Partition type to verify (ex.: 8300)
81*57696d54SAkhilesh Sanikop# $2: Partition name to verify (ex.: Linux filesystem)
82*57696d54SAkhilesh Sanikop# $3: Text to print
83*57696d54SAkhilesh Sanikopverify_part() {
84*57696d54SAkhilesh Sanikop	partition=$($GDISK_BIN -l $TEMP_DISK | tail -n 1)
85*57696d54SAkhilesh Sanikop	echo $partition | grep -q "$1[[:space:]]$2$"
86*57696d54SAkhilesh Sanikop
87*57696d54SAkhilesh Sanikop	if [ $? -eq 0 ]
88*57696d54SAkhilesh Sanikop	then
89*57696d54SAkhilesh Sanikop		pretty_print "SUCCESS" "$3"
90*57696d54SAkhilesh Sanikop	else
91*57696d54SAkhilesh Sanikop		pretty_print "FAILED" "$3"
92*57696d54SAkhilesh Sanikop		exit 1
93*57696d54SAkhilesh Sanikop	fi
94*57696d54SAkhilesh Sanikop}
95*57696d54SAkhilesh Sanikop
96*57696d54SAkhilesh Sanikop
97*57696d54SAkhilesh Sanikop#####################################
98*57696d54SAkhilesh Sanikop# Get GUID of disk
99*57696d54SAkhilesh Sanikop#####################################
100*57696d54SAkhilesh Sanikopget_diskguid() {
101*57696d54SAkhilesh Sanikop	DISK_GUID=$($GDISK_BIN -l $TEMP_DISK | grep "^Disk identifier (GUID):" | awk '{print $4}')
102*57696d54SAkhilesh Sanikop	return $DISK_GUID
103*57696d54SAkhilesh Sanikop}
104*57696d54SAkhilesh Sanikop
105*57696d54SAkhilesh Sanikop
106*57696d54SAkhilesh Sanikop#####################################
107*57696d54SAkhilesh Sanikop# Create a new empty table
108*57696d54SAkhilesh Sanikop#####################################
109*57696d54SAkhilesh Sanikopcreate_table() {
110*57696d54SAkhilesh Sanikop	case $1 in
111*57696d54SAkhilesh Sanikop		gdisk)
112*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
113*57696d54SAkhilesh Sanikop$OPT_CLEAR
114*57696d54SAkhilesh SanikopY
115*57696d54SAkhilesh Sanikopw
116*57696d54SAkhilesh SanikopY
117*57696d54SAkhilesh SanikopEOF
118*57696d54SAkhilesh Sanikop
119*57696d54SAkhilesh Sanikop			ret=$?
120*57696d54SAkhilesh Sanikop			if [ $ret -ne 0 ]
121*57696d54SAkhilesh Sanikop			then
122*57696d54SAkhilesh Sanikop				pretty_print "FAILED" "gdisk return $ret when creating partition table"
123*57696d54SAkhilesh Sanikop				exit 1
124*57696d54SAkhilesh Sanikop			fi
125*57696d54SAkhilesh Sanikop		;;
126*57696d54SAkhilesh Sanikop		sgdisk)
127*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_CLEAR}
128*57696d54SAkhilesh Sanikop
129*57696d54SAkhilesh Sanikop			ret=$?
130*57696d54SAkhilesh Sanikop			if [ $ret -ne 0 ]
131*57696d54SAkhilesh Sanikop			then
132*57696d54SAkhilesh Sanikop				pretty_print "FAILED" "sgdisk return $ret when creating partition table"
133*57696d54SAkhilesh Sanikop				exit 1
134*57696d54SAkhilesh Sanikop			fi
135*57696d54SAkhilesh Sanikop		;;
136*57696d54SAkhilesh Sanikop	esac
137*57696d54SAkhilesh Sanikop
138*57696d54SAkhilesh Sanikop	# verify that the table is empty
139*57696d54SAkhilesh Sanikop	# only the columns should appear in the table
140*57696d54SAkhilesh Sanikop	verify_part "Code" "Name" "Create new empty GPT table"
141*57696d54SAkhilesh Sanikop	echo ""
142*57696d54SAkhilesh Sanikop}
143*57696d54SAkhilesh Sanikop
144*57696d54SAkhilesh Sanikop
145*57696d54SAkhilesh Sanikop
146*57696d54SAkhilesh Sanikop#####################################
147*57696d54SAkhilesh Sanikop# First create a new partition
148*57696d54SAkhilesh Sanikop#####################################
149*57696d54SAkhilesh Sanikopcreate_partition() {
150*57696d54SAkhilesh Sanikop	case $1 in
151*57696d54SAkhilesh Sanikop		gdisk)
152*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
153*57696d54SAkhilesh Sanikop$OPT_NEW
154*57696d54SAkhilesh Sanikop1
155*57696d54SAkhilesh Sanikop
156*57696d54SAkhilesh Sanikop
157*57696d54SAkhilesh Sanikop$TEST_PART_TYPE
158*57696d54SAkhilesh Sanikopw
159*57696d54SAkhilesh SanikopY
160*57696d54SAkhilesh SanikopEOF
161*57696d54SAkhilesh Sanikop		;;
162*57696d54SAkhilesh Sanikop
163*57696d54SAkhilesh Sanikop		sgdisk)
164*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_NEW} 1 -${OPT_CHANGE_NAME} 1:"${TEST_PART_DEFAULT_NAME}" -${OPT_CHANGE_TYPE} 1:$TEST_PART_TYPE
165*57696d54SAkhilesh Sanikop		;;
166*57696d54SAkhilesh Sanikop	esac
167*57696d54SAkhilesh Sanikop
168*57696d54SAkhilesh Sanikop	verify_part "$TEST_PART_TYPE" "$TEST_PART_DEFAULT_NAME" "Create new partition"
169*57696d54SAkhilesh Sanikop	echo ""
170*57696d54SAkhilesh Sanikop}
171*57696d54SAkhilesh Sanikop
172*57696d54SAkhilesh Sanikop
173*57696d54SAkhilesh Sanikop#####################################
174*57696d54SAkhilesh Sanikop# Change name of partition
175*57696d54SAkhilesh Sanikop#####################################
176*57696d54SAkhilesh Sanikopchange_partition_name() {
177*57696d54SAkhilesh Sanikop	case $1 in
178*57696d54SAkhilesh Sanikop		gdisk)
179*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
180*57696d54SAkhilesh Sanikop$OPT_CHANGE_NAME
181*57696d54SAkhilesh Sanikop$TEST_PART_NEWNAME
182*57696d54SAkhilesh Sanikopw
183*57696d54SAkhilesh SanikopY
184*57696d54SAkhilesh SanikopEOF
185*57696d54SAkhilesh Sanikop		;;
186*57696d54SAkhilesh Sanikop
187*57696d54SAkhilesh Sanikop		sgdisk)
188*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_CHANGE_NAME} 1:${TEST_PART_NEWNAME}
189*57696d54SAkhilesh Sanikop		;;
190*57696d54SAkhilesh Sanikop	esac
191*57696d54SAkhilesh Sanikop
192*57696d54SAkhilesh Sanikop	verify_part "$TEST_PART_TYPE" "$TEST_PART_NEWNAME" "Change partition 1 name ($TEST_PART_DEFAULT_NAME -> $TEST_PART_NEWNAME)"
193*57696d54SAkhilesh Sanikop	echo ""
194*57696d54SAkhilesh Sanikop}
195*57696d54SAkhilesh Sanikop
196*57696d54SAkhilesh Sanikop
197*57696d54SAkhilesh Sanikopchange_partition_type() {
198*57696d54SAkhilesh Sanikop#####################################
199*57696d54SAkhilesh Sanikop# Change type of partition
200*57696d54SAkhilesh Sanikop#####################################
201*57696d54SAkhilesh Sanikop	case $1 in
202*57696d54SAkhilesh Sanikop		gdisk)
203*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
204*57696d54SAkhilesh Sanikop$OPT_CHANGE_TYPE
205*57696d54SAkhilesh Sanikop$TEST_PART_NEWTYPE
206*57696d54SAkhilesh Sanikopw
207*57696d54SAkhilesh SanikopY
208*57696d54SAkhilesh SanikopEOF
209*57696d54SAkhilesh Sanikop		;;
210*57696d54SAkhilesh Sanikop
211*57696d54SAkhilesh Sanikop		sgdisk)
212*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_CHANGE_TYPE} 1:${TEST_PART_NEWTYPE}
213*57696d54SAkhilesh Sanikop		;;
214*57696d54SAkhilesh Sanikop	esac
215*57696d54SAkhilesh Sanikop
216*57696d54SAkhilesh Sanikop	verify_part "$TEST_PART_NEWTYPE" "$TEST_PART_NEWNAME" "Change partition 1 type ($TEST_PART_TYPE -> $TEST_PART_NEWTYPE)"
217*57696d54SAkhilesh Sanikop	echo ""
218*57696d54SAkhilesh Sanikop}
219*57696d54SAkhilesh Sanikop
220*57696d54SAkhilesh Sanikop
221*57696d54SAkhilesh Sanikop#####################################
222*57696d54SAkhilesh Sanikop# Backup GPT data to file
223*57696d54SAkhilesh Sanikop#####################################
224*57696d54SAkhilesh Sanikopbackup_table() {
225*57696d54SAkhilesh Sanikop	case $1 in
226*57696d54SAkhilesh Sanikop		gdisk)
227*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
228*57696d54SAkhilesh Sanikop$OPT_BACKUP
229*57696d54SAkhilesh Sanikop$GPT_BACKUP_FILENAME
230*57696d54SAkhilesh Sanikopq
231*57696d54SAkhilesh SanikopEOF
232*57696d54SAkhilesh Sanikopecho ""
233*57696d54SAkhilesh Sanikop		;;
234*57696d54SAkhilesh Sanikop
235*57696d54SAkhilesh Sanikop		sgdisk)
236*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_BACKUP} ${GPT_BACKUP_FILENAME}
237*57696d54SAkhilesh Sanikop		;;
238*57696d54SAkhilesh Sanikop	esac
239*57696d54SAkhilesh Sanikop
240*57696d54SAkhilesh Sanikop	# if exist and not empty; we will test it after
241*57696d54SAkhilesh Sanikop	if [ -s $GPT_BACKUP_FILENAME ]
242*57696d54SAkhilesh Sanikop	then
243*57696d54SAkhilesh Sanikop		pretty_print "SUCCESS" "GPT data backuped sucessfully"
244*57696d54SAkhilesh Sanikop	else
245*57696d54SAkhilesh Sanikop		pretty_print "FAILED" "Unable to create GPT backup file !"
246*57696d54SAkhilesh Sanikop		exit 1
247*57696d54SAkhilesh Sanikop	fi
248*57696d54SAkhilesh Sanikop}
249*57696d54SAkhilesh Sanikop
250*57696d54SAkhilesh Sanikop
251*57696d54SAkhilesh Sanikop#####################################
252*57696d54SAkhilesh Sanikop# Now, we can delete the partition
253*57696d54SAkhilesh Sanikop#####################################
254*57696d54SAkhilesh Sanikopdelete_partition() {
255*57696d54SAkhilesh Sanikop	case $1 in
256*57696d54SAkhilesh Sanikop		gdisk)
257*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
258*57696d54SAkhilesh Sanikop$OPT_DELETE
259*57696d54SAkhilesh Sanikopw
260*57696d54SAkhilesh SanikopY
261*57696d54SAkhilesh SanikopEOF
262*57696d54SAkhilesh Sanikop		;;
263*57696d54SAkhilesh Sanikop
264*57696d54SAkhilesh Sanikop		sgdisk)
265*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_DELETE} 1
266*57696d54SAkhilesh Sanikop		;;
267*57696d54SAkhilesh Sanikop	esac
268*57696d54SAkhilesh Sanikop
269*57696d54SAkhilesh Sanikop	# verify that the table is empty (just one partition):
270*57696d54SAkhilesh Sanikop	# only the columns should appear in the table
271*57696d54SAkhilesh Sanikop	verify_part "Code" "Name" "Delete partition 1"
272*57696d54SAkhilesh Sanikop	echo ""
273*57696d54SAkhilesh Sanikop}
274*57696d54SAkhilesh Sanikop
275*57696d54SAkhilesh Sanikop
276*57696d54SAkhilesh Sanikop#####################################
277*57696d54SAkhilesh Sanikop# Restore GPT table
278*57696d54SAkhilesh Sanikop#####################################
279*57696d54SAkhilesh Sanikoprestore_table() {
280*57696d54SAkhilesh Sanikop	$GDISK_BIN $TEMP_DISK << EOF
281*57696d54SAkhilesh Sanikopr
282*57696d54SAkhilesh Sanikopr
283*57696d54SAkhilesh Sanikopl
284*57696d54SAkhilesh Sanikop$GPT_BACKUP_FILENAME
285*57696d54SAkhilesh Sanikopw
286*57696d54SAkhilesh SanikopY
287*57696d54SAkhilesh SanikopEOF
288*57696d54SAkhilesh Sanikop
289*57696d54SAkhilesh Sanikop	verify_part "$TEST_PART_NEWTYPE" "$TEST_PART_NEWNAME" "Restore the GPT backup"
290*57696d54SAkhilesh Sanikop	echo ""
291*57696d54SAkhilesh Sanikop}
292*57696d54SAkhilesh Sanikop
293*57696d54SAkhilesh Sanikop
294*57696d54SAkhilesh Sanikop#####################################
295*57696d54SAkhilesh Sanikop# Change UID of disk
296*57696d54SAkhilesh Sanikop#####################################
297*57696d54SAkhilesh Sanikopchange_disk_uid() {
298*57696d54SAkhilesh Sanikop
299*57696d54SAkhilesh Sanikop	# get UID of disk before changing it
300*57696d54SAkhilesh Sanikop	GUID=get_diskguid
301*57696d54SAkhilesh Sanikop
302*57696d54SAkhilesh Sanikop
303*57696d54SAkhilesh Sanikop	case $1 in
304*57696d54SAkhilesh Sanikop		gdisk)
305*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
306*57696d54SAkhilesh Sanikopx
307*57696d54SAkhilesh Sanikopg
308*57696d54SAkhilesh SanikopR
309*57696d54SAkhilesh Sanikopw
310*57696d54SAkhilesh SanikopY
311*57696d54SAkhilesh SanikopEOF
312*57696d54SAkhilesh Sanikop		;;
313*57696d54SAkhilesh Sanikop
314*57696d54SAkhilesh Sanikop		sgdisk)
315*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -U=R
316*57696d54SAkhilesh Sanikop		;;
317*57696d54SAkhilesh Sanikop	esac
318*57696d54SAkhilesh Sanikop
319*57696d54SAkhilesh Sanikop	# get GUID after change
320*57696d54SAkhilesh Sanikop	NEW_DISK_GUID=get_diskguid
321*57696d54SAkhilesh Sanikop
322*57696d54SAkhilesh Sanikop	# compare them
323*57696d54SAkhilesh Sanikop	if [ "$DISK_GUID" != "$NEW_DISK_GUID" ]
324*57696d54SAkhilesh Sanikop	then
325*57696d54SAkhilesh Sanikop		pretty_print "SUCCESS" "GUID of disk has been sucessfully changed"
326*57696d54SAkhilesh Sanikop	else
327*57696d54SAkhilesh Sanikop		pretty_print "FAILED" "GUID of disk is the same as the previous one"
328*57696d54SAkhilesh Sanikop		exit 1
329*57696d54SAkhilesh Sanikop	fi
330*57696d54SAkhilesh Sanikop}
331*57696d54SAkhilesh Sanikop
332*57696d54SAkhilesh Sanikop#####################################
333*57696d54SAkhilesh Sanikop# Wipe GPT table
334*57696d54SAkhilesh Sanikop#####################################
335*57696d54SAkhilesh Sanikopwipe_table() {
336*57696d54SAkhilesh Sanikop	case $1 in
337*57696d54SAkhilesh Sanikop		gdisk)
338*57696d54SAkhilesh Sanikop			$GDISK_BIN $TEMP_DISK << EOF
339*57696d54SAkhilesh Sanikopx
340*57696d54SAkhilesh Sanikop$OPT_ZAP
341*57696d54SAkhilesh SanikopY
342*57696d54SAkhilesh SanikopY
343*57696d54SAkhilesh SanikopEOF
344*57696d54SAkhilesh Sanikop		;;
345*57696d54SAkhilesh Sanikop
346*57696d54SAkhilesh Sanikop		sgdisk)
347*57696d54SAkhilesh Sanikop			$SGDISK_BIN $TEMP_DISK -${OPT_ZAP}
348*57696d54SAkhilesh Sanikop	esac
349*57696d54SAkhilesh Sanikop
350*57696d54SAkhilesh Sanikop	# verify that the table is empty (just one partition):
351*57696d54SAkhilesh Sanikop	# only the columns should appear in the table
352*57696d54SAkhilesh Sanikop	verify_part "Code" "Name" "Wipe GPT table"
353*57696d54SAkhilesh Sanikop	echo ""
354*57696d54SAkhilesh Sanikop}
355*57696d54SAkhilesh Sanikop
356*57696d54SAkhilesh Sanikop#####################################
357*57696d54SAkhilesh Sanikop# Test stdin EOF
358*57696d54SAkhilesh Sanikop#####################################
359*57696d54SAkhilesh Sanikopeof_stdin() {
360*57696d54SAkhilesh Sanikop	$SGDISK_BIN $TEMP_DISK << EOF
361*57696d54SAkhilesh Sanikop^D
362*57696d54SAkhilesh SanikopEOF
363*57696d54SAkhilesh Sanikop	pretty_print "SUCCESS" "EOF successfully exit gdisk"
364*57696d54SAkhilesh Sanikop}
365*57696d54SAkhilesh Sanikop
366*57696d54SAkhilesh Sanikop###################################
367*57696d54SAkhilesh Sanikop# Main
368*57696d54SAkhilesh Sanikop###################################
369*57696d54SAkhilesh Sanikop
370*57696d54SAkhilesh Sanikop# create a file to simulate a real device
371*57696d54SAkhilesh Sanikopdd if=/dev/zero of=$TEMP_DISK bs=1024 count=$TEMP_DISK_SIZE > /dev/null 2>&1
372*57696d54SAkhilesh Sanikop
373*57696d54SAkhilesh Sanikopif [ -s $TEMP_DISK ]
374*57696d54SAkhilesh Sanikopthen
375*57696d54SAkhilesh Sanikop	pretty_print "SUCCESS" "Temp disk sucessfully created"
376*57696d54SAkhilesh Sanikopelse
377*57696d54SAkhilesh Sanikop	pretty_print "FAILED" "Unable to create temp disk !"
378*57696d54SAkhilesh Sanikop	exit 1
379*57696d54SAkhilesh Sanikopfi
380*57696d54SAkhilesh Sanikop
381*57696d54SAkhilesh Sanikop# test gdisk and sgdisk
382*57696d54SAkhilesh Sanikopfor binary in gdisk sgdisk
383*57696d54SAkhilesh Sanikopdo
384*57696d54SAkhilesh Sanikop	echo ""
385*57696d54SAkhilesh Sanikop	printf "\033[0;34m**Testing $binary binary**\033[m\n"
386*57696d54SAkhilesh Sanikop	echo ""
387*57696d54SAkhilesh Sanikop	create_table          "$binary"
388*57696d54SAkhilesh Sanikop	create_partition      "$binary"
389*57696d54SAkhilesh Sanikop	change_partition_name "$binary"
390*57696d54SAkhilesh Sanikop	change_partition_type "$binary"
391*57696d54SAkhilesh Sanikop	backup_table          "$binary"
392*57696d54SAkhilesh Sanikop	delete_partition      "$binary"
393*57696d54SAkhilesh Sanikop	restore_table         # only with gdisk
394*57696d54SAkhilesh Sanikop	change_disk_uid       "$binary"
395*57696d54SAkhilesh Sanikop	wipe_table            "$binary"
396*57696d54SAkhilesh Sanikop	eof_stdin             # only with gdisk
397*57696d54SAkhilesh Sanikopdone
398*57696d54SAkhilesh Sanikop
399*57696d54SAkhilesh Sanikop# remove temp files
400*57696d54SAkhilesh Sanikoprm -f $TEMP_DISK $GPT_BACKUP_FILENAME
401*57696d54SAkhilesh Sanikop
402*57696d54SAkhilesh Sanikopexit 0
403