mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
Address review comments with small factoring out of conditional failure test pattern.
This commit is contained in:
committed by
Connor Fitzgerald
parent
688643d2b6
commit
8a7240cdbe
@@ -1,6 +1,6 @@
|
||||
//! Tests for buffer usages validation.
|
||||
|
||||
use crate::common::{fail, initialize_test, valid, TestParameters};
|
||||
use crate::common::{fail_if, initialize_test, TestParameters};
|
||||
use wgt::BufferAddress;
|
||||
|
||||
const BUFFER_SIZE: BufferAddress = 1234;
|
||||
@@ -15,28 +15,18 @@ fn buffer_usage() {
|
||||
|
||||
initialize_test(parameters, |ctx| {
|
||||
for (expect_validation_error, usage) in
|
||||
usages
|
||||
.iter()
|
||||
.flat_map(|&(expect_validation_error, usages)| {
|
||||
usages
|
||||
.iter()
|
||||
.copied()
|
||||
.map(move |u| (expect_validation_error, u))
|
||||
})
|
||||
usages.iter().flat_map(|&(expect_error, usages)| {
|
||||
usages.iter().copied().map(move |u| (expect_error, u))
|
||||
})
|
||||
{
|
||||
let create_buffer = || {
|
||||
fail_if(&ctx.device, expect_validation_error, || {
|
||||
let _buffer = ctx.device.create_buffer(&wgpu::BufferDescriptor {
|
||||
label: None,
|
||||
size: BUFFER_SIZE,
|
||||
usage,
|
||||
mapped_at_creation: false,
|
||||
});
|
||||
};
|
||||
if expect_validation_error {
|
||||
fail(&ctx.device, create_buffer);
|
||||
} else {
|
||||
valid(&ctx.device, create_buffer);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -71,7 +61,7 @@ fn buffer_usage() {
|
||||
],
|
||||
);
|
||||
try_create(
|
||||
true,
|
||||
true, // enable Features::MAPPABLE_PRIMARY_BUFFERS
|
||||
&[
|
||||
(false, always_valid),
|
||||
(false, needs_mappable_primary_buffers),
|
||||
|
||||
@@ -331,3 +331,13 @@ pub fn valid<T>(device: &wgpu::Device, callback: impl FnOnce() -> T) -> T {
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
// Run some code in an error scope and assert that validation succeeds or fails depending on the
|
||||
// provided `should_fail` boolean.
|
||||
pub fn fail_if<T>(device: &wgpu::Device, should_fail: bool, callback: impl FnOnce() -> T) -> T {
|
||||
if should_fail {
|
||||
fail(device, callback)
|
||||
} else {
|
||||
valid(device, callback)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user