Files
wgpu/tests/validation_tests/api/buffer.rs
Kevin Reid c4b25b8794 Duplicate BufferSlice methods onto Buffer and vice versa. (#7123)
This allows users to skip creation of `BufferSlice` if they have no use
for it, and brings `wgpu` closer to the WebGPU API without removing any
Rust convenience. New functions:

* `BufferSlice::slice()`
* `Buffer::map_async()`
* `Buffer::get_mapped_range()`
* `Buffer::get_mapped_range_mut()`
* `Buffer::get_mapped_range()`
2025-02-13 14:40:09 +01:00

33 lines
924 B
Rust

//! Tests of [`wgpu::Buffer`] and related.
mod buffer_slice {
#[test]
fn reslice_success() {
let (device, _queue) = crate::request_noop_device();
let buffer = device.create_buffer(&wgpu::BufferDescriptor {
label: None,
size: 100,
usage: wgpu::BufferUsages::VERTEX,
mapped_at_creation: false,
});
assert_eq!(buffer.slice(10..90).slice(10..70), buffer.slice(20..80));
}
#[test]
#[should_panic = "slice offset 10 size 80 is out of range for buffer of size 80"]
fn reslice_out_of_bounds() {
let (device, _queue) = crate::request_noop_device();
let buffer = device.create_buffer(&wgpu::BufferDescriptor {
label: None,
size: 100,
usage: wgpu::BufferUsages::VERTEX,
mapped_at_creation: false,
});
buffer.slice(10..90).slice(10..90);
}
}