Skip to content

Commit bf0682b

Browse files
committed
remove parameter since it was *always* true
1 parent 0c8ee00 commit bf0682b

1 file changed

Lines changed: 26 additions & 31 deletions

File tree

src/test/invalid_wkb.rs

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,9 @@ mod tests {
99
use crate::reader::{Wkb, MAX_WKB_NESTING_DEPTH};
1010

1111
// --- Helper Functions ---
12-
fn make_wkb_header(typ: WkbType, is_little_endian: bool) -> Vec<u8> {
13-
let type_id = u32::from(typ);
14-
let mut header = vec![if is_little_endian { 0x01 } else { 0x00 }];
15-
if is_little_endian {
16-
header.extend_from_slice(&type_id.to_le_bytes());
17-
} else {
18-
header.extend_from_slice(&type_id.to_be_bytes());
19-
}
12+
fn make_wkb_header(typ: WkbType) -> Vec<u8> {
13+
let mut header = vec![0x01]; // little endian
14+
header.extend_from_slice(&u32::from(typ).to_le_bytes());
2015
header
2116
}
2217

@@ -38,15 +33,15 @@ mod tests {
3833
// --- Point WKB Errors ---
3934
#[test]
4035
fn test_wkb_point_xy_buffer_too_short_for_coords() {
41-
let mut wkb_data = make_wkb_header(Point(Xy), true); // 5 bytes
36+
let mut wkb_data = make_wkb_header(Point(Xy)); // 5 bytes
4237
wkb_data.extend_from_slice(&[0u8; 8]); // Only 8 bytes for coords, need 16
4338
let result = Wkb::try_new(&wkb_data);
4439
assert!(result.is_err());
4540
}
4641

4742
#[test]
4843
fn test_wkb_point_xyz_buffer_too_short_for_coords() {
49-
let mut wkb_data = make_wkb_header(Point(Xyz), true); // 5 bytes
44+
let mut wkb_data = make_wkb_header(Point(Xyz)); // 5 bytes
5045
wkb_data.extend_from_slice(&[0u8; 16]); // Only 16 bytes for coords, need 24
5146
let result = Wkb::try_new(&wkb_data);
5247
assert!(result.is_err());
@@ -56,14 +51,14 @@ mod tests {
5651
#[test]
5752
fn test_wkb_linestring_buffer_too_short_for_num_points() {
5853
// Missing the num_points field (4 bytes)
59-
let wkb_data = make_wkb_header(LineString(Xy), true);
54+
let wkb_data = make_wkb_header(LineString(Xy));
6055
let result = Wkb::try_new(&wkb_data);
6156
assert!(result.is_err());
6257
}
6358

6459
#[test]
6560
fn test_wkb_linestring_num_points_too_large_for_buffer() {
66-
let mut wkb_data = make_wkb_header(LineString(Xy), true); // 5 bytes
61+
let mut wkb_data = make_wkb_header(LineString(Xy)); // 5 bytes
6762
wkb_data.extend_from_slice(&10u32.to_le_bytes()); // 10 points declared
6863
wkb_data.extend_from_slice(&1.0f64.to_le_bytes()); // Only 1 point's data (16 bytes)
6964
wkb_data.extend_from_slice(&2.0f64.to_le_bytes());
@@ -74,7 +69,7 @@ mod tests {
7469

7570
#[test]
7671
fn test_wkb_linestring_invalid_num_points_value() {
77-
let mut wkb_data = make_wkb_header(LineString(Xy), true);
72+
let mut wkb_data = make_wkb_header(LineString(Xy));
7873
// u32::MAX num_points would cause massive size calculation if not for try_into error first
7974
wkb_data.extend_from_slice(&u32::MAX.to_le_bytes());
8075
let result = Wkb::try_new(&wkb_data);
@@ -85,14 +80,14 @@ mod tests {
8580
#[test]
8681
fn test_wkb_polygon_buffer_too_short_for_num_rings() {
8782
// Missing the num_rings field (4 bytes)
88-
let wkb_data = make_wkb_header(Polygon(Xy), true);
83+
let wkb_data = make_wkb_header(Polygon(Xy));
8984
let result = Wkb::try_new(&wkb_data);
9085
assert!(result.is_err());
9186
}
9287

9388
#[test]
9489
fn test_wkb_polygon_buffer_too_short_for_ring_num_points() {
95-
let mut wkb_data = make_wkb_header(Polygon(Xy), true);
90+
let mut wkb_data = make_wkb_header(Polygon(Xy));
9691
// 1 ring, but the ring's num_points (4 bytes) is missing
9792
wkb_data.extend_from_slice(&1u32.to_le_bytes());
9893
let result = Wkb::try_new(&wkb_data);
@@ -101,7 +96,7 @@ mod tests {
10196

10297
#[test]
10398
fn test_wkb_polygon_ring_num_points_too_large_for_buffer() {
104-
let mut wkb_data = make_wkb_header(Polygon(Xy), true);
99+
let mut wkb_data = make_wkb_header(Polygon(Xy));
105100
wkb_data.extend_from_slice(&1u32.to_le_bytes());
106101
// 1 ring declaring 4 points (closed), but only 1 point's worth of data follows
107102
wkb_data.extend_from_slice(&4u32.to_le_bytes());
@@ -117,14 +112,14 @@ mod tests {
117112
#[test]
118113
fn test_wkb_multipoint_buffer_too_short_for_num_multipoints_header() {
119114
// Missing num_points for the MultiPoint itself (4 bytes)
120-
let wkb_data = make_wkb_header(MultiPoint(Xy), true);
115+
let wkb_data = make_wkb_header(MultiPoint(Xy));
121116
let result = Wkb::try_new(&wkb_data);
122117
assert!(result.is_err());
123118
}
124119

125120
#[test]
126121
fn test_wkb_multipoint_buffer_too_short_for_contained_point_header() {
127-
let mut wkb_data = make_wkb_header(MultiPoint(Xy), true);
122+
let mut wkb_data = make_wkb_header(MultiPoint(Xy));
128123
// 1 point, but its WKB header (5 bytes: 1 byte order + 4 type) is missing
129124
wkb_data.extend_from_slice(&1u32.to_le_bytes());
130125
let result = Wkb::try_new(&wkb_data);
@@ -133,9 +128,9 @@ mod tests {
133128

134129
#[test]
135130
fn test_wkb_multipoint_buffer_too_short_for_contained_point_coords() {
136-
let mut wkb_data = make_wkb_header(MultiPoint(Xy), true);
131+
let mut wkb_data = make_wkb_header(MultiPoint(Xy));
137132
wkb_data.extend_from_slice(&1u32.to_le_bytes()); // 1 point in multipoint
138-
wkb_data.extend(make_wkb_header(Point(Xy), true)); // Contained Point header (5 bytes)
133+
wkb_data.extend(make_wkb_header(Point(Xy))); // Contained Point header (5 bytes)
139134
wkb_data.extend_from_slice(&[0u8; 8]); // Only 8 bytes for contained point's coords, needs 16
140135
let result = Wkb::try_new(&wkb_data);
141136
assert!(result.is_err());
@@ -145,14 +140,14 @@ mod tests {
145140
#[test]
146141
fn test_wkb_multilinestring_buffer_too_short_for_num_multilinestrings_header() {
147142
// Missing num_linestrings for the MultiLineString itself (4 bytes)
148-
let wkb_data = make_wkb_header(MultiLineString(Xy), true);
143+
let wkb_data = make_wkb_header(MultiLineString(Xy));
149144
let result = Wkb::try_new(&wkb_data);
150145
assert!(result.is_err());
151146
}
152147

153148
#[test]
154149
fn test_wkb_multilinestring_buffer_too_short_for_contained_linestring_header() {
155-
let mut wkb_data = make_wkb_header(MultiLineString(Xy), true);
150+
let mut wkb_data = make_wkb_header(MultiLineString(Xy));
156151
// 1 linestring, but its WKB header (5 bytes) is missing
157152
wkb_data.extend_from_slice(&1u32.to_le_bytes());
158153
let result = Wkb::try_new(&wkb_data);
@@ -161,10 +156,10 @@ mod tests {
161156

162157
#[test]
163158
fn test_wkb_multilinestring_buffer_too_short_for_contained_linestring_num_points() {
164-
let mut wkb_data = make_wkb_header(MultiLineString(Xy), true);
159+
let mut wkb_data = make_wkb_header(MultiLineString(Xy));
165160
wkb_data.extend_from_slice(&1u32.to_le_bytes());
166161
// The contained LineString has a header, but its num_points (4 bytes) is missing
167-
wkb_data.extend(make_wkb_header(LineString(Xy), true));
162+
wkb_data.extend(make_wkb_header(LineString(Xy)));
168163
let result = Wkb::try_new(&wkb_data);
169164
assert!(result.is_err());
170165
}
@@ -173,14 +168,14 @@ mod tests {
173168
#[test]
174169
fn test_wkb_multipolygon_buffer_too_short_for_num_multipolygons_header() {
175170
// Missing num_polygons for the MultiPolygon itself (4 bytes)
176-
let wkb_data = make_wkb_header(MultiPolygon(Xy), true);
171+
let wkb_data = make_wkb_header(MultiPolygon(Xy));
177172
let result = Wkb::try_new(&wkb_data);
178173
assert!(result.is_err());
179174
}
180175

181176
#[test]
182177
fn test_wkb_multipolygon_buffer_too_short_for_contained_polygon_header() {
183-
let mut wkb_data = make_wkb_header(MultiPolygon(Xy), true);
178+
let mut wkb_data = make_wkb_header(MultiPolygon(Xy));
184179
// 1 polygon, but its WKB header (5 bytes) is missing
185180
wkb_data.extend_from_slice(&1u32.to_le_bytes());
186181
let result = Wkb::try_new(&wkb_data);
@@ -191,14 +186,14 @@ mod tests {
191186
#[test]
192187
fn test_wkb_geomcollection_buffer_too_short_for_num_geometries_header() {
193188
// Missing num_geometries for the GeometryCollection itself (4 bytes)
194-
let wkb_data = make_wkb_header(GeometryCollection(Xy), true);
189+
let wkb_data = make_wkb_header(GeometryCollection(Xy));
195190
let result = Wkb::try_new(&wkb_data);
196191
assert!(result.is_err());
197192
}
198193

199194
#[test]
200195
fn test_wkb_geomcollection_buffer_too_short_for_contained_geometry_header() {
201-
let mut wkb_data = make_wkb_header(GeometryCollection(Xy), true);
196+
let mut wkb_data = make_wkb_header(GeometryCollection(Xy));
202197
// 1 geometry, but its WKB header (e.g. a Point, 5 bytes) is missing
203198
wkb_data.extend_from_slice(&1u32.to_le_bytes());
204199
let result = Wkb::try_new(&wkb_data);
@@ -211,10 +206,10 @@ mod tests {
211206
// `levels` GeometryCollections each holding a single child, wrapping a terminal Point.
212207
let mut buf = Vec::new();
213208
for _ in 0..levels {
214-
buf.extend(make_wkb_header(GeometryCollection(Xy), true));
209+
buf.extend(make_wkb_header(GeometryCollection(Xy)));
215210
buf.extend_from_slice(&1u32.to_le_bytes()); // one geometry
216211
}
217-
buf.extend(make_wkb_header(Point(Xy), true));
212+
buf.extend(make_wkb_header(Point(Xy)));
218213
buf.extend_from_slice(&0.0f64.to_le_bytes());
219214
buf.extend_from_slice(&0.0f64.to_le_bytes());
220215
buf
@@ -253,7 +248,7 @@ mod tests {
253248
// A header claiming u32::MAX elements must not pre-allocate gigabytes before the (missing)
254249
// body is read; it should just fail to read the first element.
255250
fn assert_huge_count_errs(typ: WkbType) {
256-
let mut wkb_data = make_wkb_header(typ, true);
251+
let mut wkb_data = make_wkb_header(typ);
257252
wkb_data.extend_from_slice(&u32::MAX.to_le_bytes());
258253
assert!(Wkb::try_new(&wkb_data).is_err());
259254
}

0 commit comments

Comments
 (0)