Skip to content

Commit

Permalink
Address review comments with small factoring out of conditional failu…
Browse files Browse the repository at this point in the history
…re test pattern.
  • Loading branch information
Imberflur authored and cwfitzgerald committed Nov 2, 2022
1 parent 688643d commit 8a7240c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
24 changes: 7 additions & 17 deletions wgpu/tests/buffer_usages.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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);
}
});
}
});
}
Expand Down Expand Up @@ -71,7 +61,7 @@ fn buffer_usage() {
],
);
try_create(
true,
true, // enable Features::MAPPABLE_PRIMARY_BUFFERS
&[
(false, always_valid),
(false, needs_mappable_primary_buffers),
Expand Down
10 changes: 10 additions & 0 deletions wgpu/tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

0 comments on commit 8a7240c

Please sign in to comment.