version 1.6, 2015/12/04 17:15:21 |
version 1.7, 2015/12/05 14:23:41 |
|
|
# POSSIBILITY OF SUCH DAMAGE. |
# POSSIBILITY OF SUCH DAMAGE. |
# |
# |
|
|
|
bootblk=/usr/mdec/gptmbr.bin |
size=10240 |
size=10240 |
newsize=20480 |
newsize=20480 |
shdr=34 |
shdr=34 |
Line 37 zero="00000000-0000-0000-0000-0000000000 |
|
Line 38 zero="00000000-0000-0000-0000-0000000000 |
|
src=$(atf_get_srcdir) |
src=$(atf_get_srcdir) |
|
|
prepare() { |
prepare() { |
rm -f $disk |
rm -f "$disk" |
dd if=/dev/zero of=$disk seek=$size count=1 |
dd if=/dev/zero of="$disk" seek="$size" count=1 |
} |
} |
|
|
prepare_2part() { |
prepare_2part() { |
prepare |
prepare |
atf_check -s exit:0 -o empty -e empty gpt create $disk |
atf_check -s exit:0 -o empty -e empty gpt create "$disk" |
atf_check -s exit:0 -o match:"$(partaddmsg 1 34 1024)" -e empty \ |
atf_check -s exit:0 -o match:"$(partaddmsg 1 34 1024)" -e empty \ |
gpt add -t efi -s 1024 $disk |
gpt add -t efi -s 1024 "$disk" |
atf_check -s exit:0 -o match:"$(partaddmsg 2 1058 9150)" -e empty \ |
atf_check -s exit:0 -o match:"$(partaddmsg 2 1058 9150)" -e empty \ |
gpt add $disk |
gpt add "$disk" |
} |
} |
|
|
# Calling this from tests does not work. BUG! |
# Calling this from tests does not work. BUG! |
check_2part() { |
check_2part() { |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.normal" \ |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.normal" \ |
-e empty gpt show $disk |
-e empty gpt show "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.uuid" \ |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.uuid" \ |
-e empty gpt show -u $disk |
-e empty gpt show -u "$disk" |
} |
} |
|
|
partaddmsg() { |
partaddmsg() { |
|
|
echo "^$disk: Partition $1 label changed\$" |
echo "^$disk: Partition $1 label changed\$" |
} |
} |
|
|
|
partbootmsg() { |
|
echo "^$disk: Partition $1 marked as bootable\$" |
|
|
|
} |
|
|
recovermsg() { |
recovermsg() { |
echo "^$disk: Recovered $1 GPT [a-z]* from $2\$" |
echo "^$disk: Recovered $1 GPT [a-z]* from $2\$" |
} |
} |
Line 85 create_empty_head() { |
|
Line 91 create_empty_head() { |
|
|
|
create_empty_body() { |
create_empty_body() { |
prepare |
prepare |
atf_check -s exit:0 -o empty -e empty gpt create $disk |
atf_check -s exit:0 -o empty -e empty gpt create "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.empty.show.normal" \ |
atf_check -s exit:0 -o file:"$src/gpt.empty.show.normal" \ |
-e empty gpt show $disk |
-e empty gpt show "$disk" |
} |
} |
|
|
atf_test_case create_2part |
atf_test_case create_2part |
Line 107 backup_2part_head() { |
|
Line 113 backup_2part_head() { |
|
|
|
backup_2part_body() { |
backup_2part_body() { |
prepare_2part |
prepare_2part |
atf_check -s exit:0 -o save:test.backup -e empty gpt backup $disk |
atf_check -s exit:0 -o save:test.backup -e empty gpt backup "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.backup" -e empty \ |
atf_check -s exit:0 -o file:"$src/gpt.backup" -e empty \ |
sed -e "s/$uuid/$zero/g" "test.backup" |
sed -e "s/$uuid/$zero/g" "test.backup" |
} |
} |
Line 119 restore_2part_head() { |
|
Line 125 restore_2part_head() { |
|
|
|
restore_2part_body() { |
restore_2part_body() { |
prepare_2part |
prepare_2part |
atf_check -s exit:0 -o save:test.backup -e empty gpt backup $disk |
atf_check -s exit:0 -o save:test.backup -e empty gpt backup "$disk" |
prepare |
prepare |
atf_check -s exit:0 -o empty -e empty gpt restore -i test.backup $disk |
atf_check -s exit:0 -o empty -e empty gpt restore -i test.backup "$disk" |
check_2part |
check_2part |
} |
} |
|
|
Line 132 recover_backup_head() { |
|
Line 138 recover_backup_head() { |
|
|
|
recover_backup_body() { |
recover_backup_body() { |
prepare_2part |
prepare_2part |
dd conv=notrunc if=/dev/zero of=$disk seek=$((size - shdr)) count=$shdr |
dd conv=notrunc if=/dev/zero of="$disk" seek="$((size - shdr))" \ |
|
count="$shdr" |
atf_check -s exit:0 -o match:"$(recovermsg secondary primary)" \ |
atf_check -s exit:0 -o match:"$(recovermsg secondary primary)" \ |
-e empty gpt recover $disk |
-e empty gpt recover "$disk" |
check_2part |
check_2part |
} |
} |
|
|
Line 145 recover_primary_head() { |
|
Line 152 recover_primary_head() { |
|
|
|
recover_primary_body() { |
recover_primary_body() { |
prepare_2part |
prepare_2part |
dd conv=notrunc if=/dev/zero of=$disk seek=1 count=$shdr |
dd conv=notrunc if=/dev/zero of="$disk" seek=1 count="$shdr" |
atf_check -s exit:0 -o match:"$(recovermsg primary secondary)" \ |
atf_check -s exit:0 -o match:"$(recovermsg primary secondary)" \ |
-e empty gpt recover $disk |
-e empty gpt recover "$disk" |
check_2part |
check_2part |
} |
} |
|
|
Line 158 resize_2part_head() { |
|
Line 165 resize_2part_head() { |
|
|
|
resize_2part_body() { |
resize_2part_body() { |
prepare_2part |
prepare_2part |
dd conv=notrunc if=/dev/zero of=$disk seek=$newsize count=1 |
dd conv=notrunc if=/dev/zero of="$disk" seek="$newsize" count=1 |
atf_check -s exit:0 -o empty -e empty gpt resizedisk $disk |
atf_check -s exit:0 -o empty -e empty gpt resizedisk "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.resizedisk.show.normal" \ |
atf_check -s exit:0 -o file:"$src/gpt.resizedisk.show.normal" \ |
gpt show $disk |
gpt show "$disk" |
atf_check -s exit:0 -o match:"$(partresmsg 2 1058 19390)" \ |
atf_check -s exit:0 -o match:"$(partresmsg 2 1058 19390)" \ |
-e empty gpt resize -i 2 $disk |
-e empty gpt resize -i 2 "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.resizepart.show.normal" \ |
atf_check -s exit:0 -o file:"$src/gpt.resizepart.show.normal" \ |
gpt show $disk |
gpt show "$disk" |
} |
} |
|
|
atf_test_case remove_2part |
atf_test_case remove_2part |
Line 176 remove_2part_head() { |
|
Line 183 remove_2part_head() { |
|
remove_2part_body() { |
remove_2part_body() { |
prepare_2part |
prepare_2part |
atf_check -s exit:0 -o match:"$(partremmsg 1)" -e empty gpt remove \ |
atf_check -s exit:0 -o match:"$(partremmsg 1)" -e empty gpt remove \ |
-i 1 $disk |
-i 1 "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.removepart.show.normal" \ |
atf_check -s exit:0 -o file:"$src/gpt.removepart.show.normal" \ |
gpt show $disk |
gpt show "$disk" |
} |
} |
|
|
atf_test_case label_2part |
atf_test_case label_2part |
label_2part_head() { |
label_2part_head() { |
atf_set "descr" "Label partitions in 2 partition disk" |
atf_set "descr" "Label partitions in a 2 partition disk" |
} |
} |
|
|
label_2part_body() { |
label_2part_body() { |
prepare_2part |
prepare_2part |
atf_check -s exit:0 -o match:"$(partlblmsg 1)" -e empty \ |
atf_check -s exit:0 -o match:"$(partlblmsg 1)" -e empty \ |
gpt label -i 1 -l potato $disk |
gpt label -i 1 -l potato "$disk" |
atf_check -s exit:0 -o match:"$(partlblmsg 2)" -e empty \ |
atf_check -s exit:0 -o match:"$(partlblmsg 2)" -e empty \ |
gpt label -i 2 -l tomato $disk |
gpt label -i 2 -l tomato "$disk" |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.label" gpt show -l $disk |
atf_check -s exit:0 -o file:"$src/gpt.2part.show.label" \ |
|
gpt show -l "$disk" |
|
} |
|
|
|
atf_test_case bootable_2part |
|
bootable_2part_head() { |
|
atf_set "descr" "Make partition 2 bootable in a 2 partition disk" |
|
} |
|
|
|
bootable_2part_body() { |
|
prepare_2part |
|
atf_check -s exit:0 -o match:"$(partbootmsg 2)" -e empty \ |
|
gpt biosboot -i 2 "$disk" |
|
local bootsz="$(ls -l "$bootblk" | awk '{ print $5 }')" |
|
dd if="$disk" of=bootblk bs=1 count="$bootsz" |
|
atf_check -s exit:0 -o empty -e empty cmp "$bootblk" bootblk |
|
gpt show -i 2 "$disk" | tail -1 > bootattr |
|
atf_check -s exit:0 -o match:"^ legacy BIOS boot partition\$" \ |
|
-e empty cat bootattr |
} |
} |
|
|
atf_init_test_cases() { |
atf_init_test_cases() { |
Line 205 atf_init_test_cases() { |
|
Line 230 atf_init_test_cases() { |
|
atf_add_test_case recover_primary |
atf_add_test_case recover_primary |
atf_add_test_case resize_2part |
atf_add_test_case resize_2part |
atf_add_test_case label_2part |
atf_add_test_case label_2part |
|
atf_add_test_case bootable_2part |
} |
} |