blob: 4933ed41c7de7cdb771c0adbe89e0ef925cd6906 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
#! /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
|