#! /bin/bash test_mklabel() { ped_test "mklabel" "mklabel msdos" } test_mkpart() { ped_test "mkpart" "mklabel msdos mkpart primary ext2 10 20" } test_create_extended_at_start() { ped_test "creating an extended partition at the start of the disk"\ "mklabel msdos \ mkpart extended 0 500" } test_mkpartfs() { ped_test "mkpartfs" "mklabel msdos mkpartfs primary ext2 10 20" } test_rm() { ped_test "rm" "mklabel msdos mkpart primary ext2 10 20 rm 1" } test_too_many_primary() { ped_test_expect_fail "too many primary partitions" \ "mklabel msdos \ mkpart primary ext2 10 20 \ mkpart primary ext2 20 30 \ mkpart primary ext2 30 40 \ mkpart primary ext2 40 50 \ mkpart primary ext2 50 60" } test_logical_without_extended() { ped_test_expect_fail "logical partitions without extended partition"\ "mklabel msdos \ mkpart logical ext2 10 20" } # Parted's constraint solver "corrects" this. Hmmm... is this wise? test_logical_outside_extended() { ped_test "correction of logical partitions outside extended partition"\ "mklabel msdos \ mkpart extended 50 100\ mkpart logical ext2 90 150" } test_shrink_extended_too_far() { ped_test "correction of excessive extended partition shrink"\ "mklabel msdos \ mkpart extended 50 150\ mkpart logical ext2 90 110\ resize 1 50 100" } test_shrink_extended() { ped_test "extended partition shrink"\ "mklabel msdos \ mkpart extended 50 150\ mkpart logical ext2 90 110\ resize 1 80 110" } test_many_logical() { ped_test "many logical partitions"\ "mklabel msdos \ mkpart extended 100 1000 \ mkpart logical ext2 100 200 \ mkpart logical ext2 200 300 \ mkpart logical ext2 300 400 \ mkpart logical ext2 400 500 \ mkpart logical ext2 500 600 \ mkpart logical ext2 600 700 \ mkpart logical ext2 700 800" } test_primary_overlap() { ped_test "correction of primary partition overlapping"\ "mklabel msdos \ mkpart primary ext2 0 100\ mkpart primary ext2 50 150" } test_extended_primary_overlap() { ped_test "correction of primary with extended partition overlapping"\ "mklabel msdos \ mkpart extended 1 100\ mkpart primary ext2 50 150" } test_nonexistent_remove() { ped_test_expect_fail "removal of non-existent partition"\ "mklabel msdos \ rm 1" } test_create_small() { ped_test "create small partition"\ "mklabel msdos \ mkpartfs primary ext2 1 2" } test_move_primary() { ped_test "move primary partition"\ "mklabel msdos \ mkpartfs primary fat16 0 100 \ mkpartfs primary fat16 100 200 \ move 1 200 300" } test_move_logical() { ped_test "move logical partition"\ "mklabel msdos \ mkpart extended 0 500 mkpartfs logical fat16 0 100 \ mkpartfs logical fat16 100 200 \ move 5 200 300" } test_create_end() { ped_test "create partition at end-of-disk"\ "mklabel msdos \ mkpartfs primary ext2 \ $[TEST_DRIVE_SIZE - 10] $[TEST_DRIVE_SIZE]" } main() { if ! test_mklabel; then exit 1 fi test_mkpart test_create_extended_at_start test_mkpartfs test_rm test_too_many_primary test_logical_without_extended test_logical_outside_extended test_shrink_extended_too_far test_shrink_extended test_many_logical test_primary_overlap test_extended_primary_overlap test_nonexistent_remove test_create_small test_move_primary test_move_logical test_create_end } main