This new patch has checks for sun and apple partition types.



-- 
bvk.chaitanya
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bvk.gro...@gmail.com-20100316210427-i99kah8gbr4l4iqn
# target_branch: file:///home/bvk/work/grub2/mainline/
# testament_sha1: 12ce4233169a3be0392e18848dd0babe4ecba40f
# timestamp: 2010-03-17 03:07:22 +0530
# base_revision_id: bvk.gro...@gmail.com-20100314170717-\
#   q8ppihzgyjyifcke
# 
# Begin patch
=== modified file 'conf/tests.rmk'
--- conf/tests.rmk      2010-01-22 13:37:27 +0000
+++ conf/tests.rmk      2010-03-16 17:06:32 +0000
@@ -50,6 +50,9 @@
 check_SCRIPTS += grub_script_vars1
 grub_script_vars1_SOURCES = tests/grub_script_vars1.in
 
+check_SCRIPTS += partmap_test
+partmap_test_SOURCES = tests/partmap_test.in
+
 # List of tests to execute on "make check"
 # SCRIPTED_TESTS    = example_scripted_test
 # SCRIPTED_TESTS   += example_grub_script_test
@@ -59,6 +62,7 @@
 SCRIPTED_TESTS  = grub_script_echo1
 SCRIPTED_TESTS += grub_script_echo_keywords
 SCRIPTED_TESTS += grub_script_vars1
+SCRIPTED_TESTS += partmap_test
 
 # dependencies between tests and testing-tools
 $(SCRIPTED_TESTS): grub-shell grub-shell-tester

=== added file 'tests/partmap_test.in'
--- tests/partmap_test.in       1970-01-01 00:00:00 +0000
+++ tests/partmap_test.in       2010-03-16 21:04:27 +0000
@@ -0,0 +1,245 @@
+#! /bin/sh -e
+
+parted=/sbin/parted
+grubshe...@builddir@/grub-shell
+
+create_disk_image () {
+    name=$1
+    size=$2
+    qemu-img create ${name} ${size} >/dev/null
+}
+
+check_output () {
+    outfile=$1
+    shift
+
+    for disk in $@; do
+       if ! grep "($disk)" ${outfile} >/dev/null
+       then
+           echo "($disk): disk/partiton not found"
+           exit 1
+       fi
+    done
+}
+
+imgfile=`mktemp`
+outfile=`mktemp`
+
+#
+# MSDOS partition types
+#
+
+echo "Checking MSDOS partition types..."
+
+# 0 primary
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel msdos
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0
+
+# 1 primary
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M >/dev/null
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1
+
+# 2 primary
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2
+
+# 3 primary
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart primary 20M 30M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3
+
+# 4 primary
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart primary 20M 30M mkpart primary 30M 40M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3 hd0,4
+
+# 1 primary, 1 extended
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart extended 20M 100%
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1
+
+# 1 primary, 1 extended, 1 logical 
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart extended 20M 100% mkpart logical 20M 30M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,5
+
+# 1 primary, 1 extended, 2 logical 
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,5 hd0,6
+
+# 1 primary, 1 extended, 3 logical 
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M 
mkpart logical 40M 50M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,5 hd0,6 hd0,7
+
+# 1 primary, 1 extended, 4 logical 
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 
20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M 
mkpart logical 40M 50M mkpart logical 50M 60M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_msdos | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,5 hd0,6 hd0,7 hd0,8
+
+
+#
+# GPT partition types
+#
+
+echo "Checking GPT partition types..."
+
+# 0 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel gpt
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0
+
+# 1 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M >/dev/null
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1
+
+# 2 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2
+
+# 3 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 
20M 30M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3
+
+# 4 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 4 
20M 30M mkpart 5 30M 40M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3 hd0,4
+
+# 5 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 
20M 30M mkpart 4 30M 40M mkpart 5 40M 50M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3 hd0,4 hd0,5
+
+# 6 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 
20M 30M mkpart 4 30M 40M mkpart 5 40M 50M mkpart 6 50M 60M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_gpt | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3 hd0,4 hd0,5 hd0,6
+
+
+#
+# SUN partition types
+#
+# It seems partition #3 is reserved for whole disk by parted.
+#
+
+echo "Checking SUN partition types..."
+
+# 0 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel sun
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0
+
+# 1 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M >/dev/null
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1
+
+# 2 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2
+
+# 3 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4
+
+# 4 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M 
mkpart 30M 40M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5
+
+# 5 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M 
mkpart 30M 40M mkpart 40M 50M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5 hd0,6
+
+# 6 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M 
mkpart 30M 40M mkpart 40M 50M mkpart 50M 60M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_sun | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5 hd0,6 hd0,7
+
+
+#
+# Apple partition types
+#
+# Partition table itself is part of some partition, so there is always
+# a partition by default.  But I don't understand why GRUB displays
+# two partitions by default :-(
+#
+
+echo "Checking APPLE partition types..."
+
+# 0 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel mac
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2
+
+# 1 parts
+create_disk_image ${imgfile} 64M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M >/dev/null
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3
+
+# 2 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,3 hd0,4
+
+# 3 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 
20M 30M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5
+
+# 4 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 
20M 30M mkpart d 30M 40M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5 hd0,6
+
+# 5 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 
20M 30M mkpart d 30M 40M mkpart e 40M 50M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5 hd0,6 hd0,7
+
+# 6 parts
+create_disk_image ${imgfile} 128M
+${parted} -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 
20M 30M mkpart d 30M 40M mkpart e 40M 50M mkpart f 50M 60M
+echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" 
--modules=part_apple | tee ${outfile}
+check_output ${outfile} hd0 hd0,1 hd0,2 hd0,4 hd0,5 hd0,6 hd0,7 hd0,8

# Begin bundle
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
yRThQkOlae8M
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to