Expand HAL CTS test coverage and initialize pointers. (#8466)
* Consistency initialize pointers to NULL in HAL CTS tests.
* Expand test coverage in buffer_mapping and descriptor_set tests.
I tried to set up coverage reporting to help guide this work, but gave up after trying a few different versions of gcc/clang and still getting version mismatches between tools with unhelpful error messages >_>
diff --git a/iree/hal/cts/allocator_test.h b/iree/hal/cts/allocator_test.h
index ac2235d..5e0347c 100644
--- a/iree/hal/cts/allocator_test.h
+++ b/iree/hal/cts/allocator_test.h
@@ -75,7 +75,7 @@
iree_hal_buffer_params_t params = {0};
params.type = IREE_HAL_MEMORY_TYPE_DEVICE_VISIBLE;
params.usage = IREE_HAL_BUFFER_USAGE_TRANSFER;
- iree_hal_buffer_t* buffer = nullptr;
+ iree_hal_buffer_t* buffer = NULL;
IREE_ASSERT_OK(iree_hal_allocator_allocate_buffer(
device_allocator_, params, kAllocationSize, iree_const_byte_span_empty(),
&buffer));
@@ -98,7 +98,7 @@
iree_hal_buffer_params_t params = {0};
params.type = IREE_HAL_MEMORY_TYPE_DEVICE_VISIBLE;
params.usage = IREE_HAL_BUFFER_USAGE_TRANSFER;
- iree_hal_buffer_t* buffer = nullptr;
+ iree_hal_buffer_t* buffer = NULL;
IREE_ASSERT_OK(iree_hal_allocator_allocate_buffer(
device_allocator_, params, /*allocation_size=*/0,
iree_const_byte_span_empty(), &buffer));
diff --git a/iree/hal/cts/buffer_mapping_test.h b/iree/hal/cts/buffer_mapping_test.h
index f00b396..652d010 100644
--- a/iree/hal/cts/buffer_mapping_test.h
+++ b/iree/hal/cts/buffer_mapping_test.h
@@ -36,7 +36,8 @@
// failures may indicate issues in either the code doing the writing or the
// code doing the reading.
//
-// Tests for each function are organized in increasing order of complexity:
+// Where applicable, tests for each function are organized in increasing order
+// of complexity, such as:
// * write to full buffer
// * write with an offset and length
// * write into a subspan of a buffer
@@ -451,8 +452,8 @@
}
TEST_P(buffer_mapping_test, CopyData) {
- iree_hal_buffer_t* buffer_a;
- iree_hal_buffer_t* buffer_b;
+ iree_hal_buffer_t* buffer_a = NULL;
+ iree_hal_buffer_t* buffer_b = NULL;
AllocateUninitializedBuffer(kDefaultAllocationSize, &buffer_a);
AllocateUninitializedBuffer(kDefaultAllocationSize, &buffer_b);
@@ -478,9 +479,69 @@
iree_hal_buffer_release(buffer_b);
}
+// Maps a buffer range for reading from device -> host.
+// This is roughly what iree_hal_buffer_read_data does internally.
+TEST_P(buffer_mapping_test, MapRangeRead) {
+ iree_device_size_t buffer_size = 16;
+ iree_hal_buffer_t* buffer = NULL;
+ AllocateUninitializedBuffer(buffer_size, &buffer);
+
+ uint8_t fill_value = 0xEF;
+ IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
+ IREE_WHOLE_BUFFER, &fill_value,
+ sizeof(fill_value)));
+
+ iree_hal_buffer_mapping_t mapping;
+ IREE_ASSERT_OK(iree_hal_buffer_map_range(
+ buffer, IREE_HAL_MAPPING_MODE_SCOPED, IREE_HAL_MEMORY_ACCESS_READ,
+ /*byte_offset=*/0, /*byte_length=*/buffer_size, &mapping));
+ EXPECT_EQ(buffer, mapping.buffer);
+ EXPECT_GE(mapping.contents.data_length, (iree_host_size_t)buffer_size);
+
+ std::vector<uint8_t> reference_buffer(buffer_size);
+ std::memset(reference_buffer.data(), fill_value, buffer_size);
+ std::vector<uint8_t> mapping_data(
+ mapping.contents.data,
+ mapping.contents.data + mapping.contents.data_length);
+ EXPECT_THAT(mapping_data, ContainerEq(reference_buffer));
+
+ iree_hal_buffer_unmap_range(&mapping);
+ iree_hal_buffer_release(buffer);
+}
+
+// Maps a buffer range for writing from host -> device.
+// This is roughly what iree_hal_buffer_write_data does internally.
+TEST_P(buffer_mapping_test, MapRangeWrite) {
+ iree_device_size_t buffer_size = 16;
+ iree_hal_buffer_t* buffer = NULL;
+ AllocateUninitializedBuffer(buffer_size, &buffer);
+
+ iree_hal_buffer_mapping_t mapping;
+ IREE_ASSERT_OK(iree_hal_buffer_map_range(
+ buffer, IREE_HAL_MAPPING_MODE_SCOPED,
+ IREE_HAL_MEMORY_ACCESS_DISCARD_WRITE,
+ /*byte_offset=*/0, /*byte_length=*/buffer_size, &mapping));
+ EXPECT_EQ(buffer, mapping.buffer);
+ EXPECT_GE(mapping.contents.data_length, (iree_host_size_t)buffer_size);
+
+ // Write into the mapped memory, flush for device access, then read back.
+ uint8_t fill_value = 0x12;
+ std::memset(mapping.contents.data, fill_value, buffer_size);
+ IREE_ASSERT_OK(iree_hal_buffer_flush_range(&mapping, /*byte_offset=*/0,
+ /*byte_length=*/buffer_size));
+ std::vector<uint8_t> actual_data(buffer_size);
+ IREE_ASSERT_OK(iree_hal_buffer_read_data(
+ buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
+ std::vector<uint8_t> reference_buffer(buffer_size);
+ std::memset(reference_buffer.data(), fill_value, buffer_size);
+ EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
+
+ iree_hal_buffer_unmap_range(&mapping);
+ iree_hal_buffer_release(buffer);
+}
+
// TODO(scotttodd): iree_hal_allocator_wrap_buffer
// TODO(scotttodd): iree_hal_heap_buffer_wrap
-// TODO(scotttodd): iree_hal_buffer_map_range
} // namespace cts
} // namespace hal
diff --git a/iree/hal/cts/command_buffer_dispatch_test.h b/iree/hal/cts/command_buffer_dispatch_test.h
index 2fffa29..d3386d4 100644
--- a/iree/hal/cts/command_buffer_dispatch_test.h
+++ b/iree/hal/cts/command_buffer_dispatch_test.h
@@ -67,7 +67,7 @@
TEST_P(command_buffer_dispatch_test, DispatchAbs) {
PrepareAbsExecutable();
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_,
IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT |
diff --git a/iree/hal/cts/command_buffer_test.h b/iree/hal/cts/command_buffer_test.h
index 6cf4c23..10e0639 100644
--- a/iree/hal/cts/command_buffer_test.h
+++ b/iree/hal/cts/command_buffer_test.h
@@ -47,10 +47,10 @@
iree_device_size_t fill_length,
const void* pattern,
iree_host_size_t pattern_length) {
- iree_hal_buffer_t* device_buffer;
+ iree_hal_buffer_t* device_buffer = NULL;
CreateZeroedDeviceBuffer(buffer_size, &device_buffer);
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_CHECK_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_ANY, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -80,7 +80,7 @@
};
TEST_P(command_buffer_test, Create) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -94,7 +94,7 @@
}
TEST_P(command_buffer_test, BeginEnd) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -107,7 +107,7 @@
}
TEST_P(command_buffer_test, SubmitEmpty) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -123,7 +123,7 @@
}
TEST_P(command_buffer_test, CopyWholeBuffer) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_TRANSFER, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -425,10 +425,10 @@
0xA1, 0xA2, 0xA3, 0xA4, //
0xA5, 0xA6, 0xA7, 0xA8};
- iree_hal_buffer_t* device_buffer;
+ iree_hal_buffer_t* device_buffer = NULL;
CreateZeroedDeviceBuffer(target_buffer_size, &device_buffer);
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_CHECK_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_ANY, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -461,10 +461,10 @@
0xA1, 0xA2, 0xA3, 0xA4, //
0xA5, 0xA6, 0xA7, 0xA8};
- iree_hal_buffer_t* device_buffer;
+ iree_hal_buffer_t* device_buffer = NULL;
CreateZeroedDeviceBuffer(target_buffer_size, &device_buffer);
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_CHECK_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_ANY, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -501,7 +501,7 @@
0xA1, 0xA2, 0xA3, 0xA4, //
0xA5, 0xA6, 0xA7, 0xA8};
- iree_hal_buffer_t* device_buffer;
+ iree_hal_buffer_t* device_buffer = NULL;
CreateZeroedDeviceBuffer(target_buffer_size, &device_buffer);
// Create a subspan.
@@ -510,7 +510,7 @@
IREE_ASSERT_OK(iree_hal_buffer_subspan(device_buffer, /*byte_offset=*/4,
subspan_length, &buffer_subspan));
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_CHECK_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_ANY, IREE_HAL_QUEUE_AFFINITY_ANY,
diff --git a/iree/hal/cts/cts_test_base.h b/iree/hal/cts/cts_test_base.h
index 7f3599a..32e4431 100644
--- a/iree/hal/cts/cts_test_base.h
+++ b/iree/hal/cts/cts_test_base.h
@@ -44,7 +44,7 @@
// Get driver with the given name and create its default device.
// Skip drivers that are (gracefully) unavailable, fail if creation fails.
- iree_hal_driver_t* driver;
+ iree_hal_driver_t* driver = NULL;
iree_status_t status = TryGetDriver(driver_name, &driver);
if (iree_status_is_unavailable(status)) {
iree_status_free(status);
@@ -56,7 +56,7 @@
IREE_ASSERT_OK(status);
driver_ = driver;
- iree_hal_device_t* device;
+ iree_hal_device_t* device = NULL;
status = iree_hal_driver_create_default_device(
driver_, iree_allocator_system(), &device);
if (iree_status_is_unavailable(status)) {
diff --git a/iree/hal/cts/descriptor_set_layout_test.h b/iree/hal/cts/descriptor_set_layout_test.h
index 8c01082..2b5515c 100644
--- a/iree/hal/cts/descriptor_set_layout_test.h
+++ b/iree/hal/cts/descriptor_set_layout_test.h
@@ -22,7 +22,7 @@
// Note: bindingCount == 0 is valid in VkDescriptorSetLayoutCreateInfo:
// https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorSetLayoutCreateInfo.html
TEST_P(descriptor_set_layout_test, CreateWithNoBindings) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
IREE_ASSERT_OK(iree_hal_descriptor_set_layout_create(
device_, IREE_HAL_DESCRIPTOR_SET_LAYOUT_USAGE_TYPE_IMMUTABLE,
/*binding_count=*/0,
@@ -31,7 +31,7 @@
}
TEST_P(descriptor_set_layout_test, CreateWithOneBinding) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
};
@@ -43,7 +43,7 @@
}
TEST_P(descriptor_set_layout_test, CreateWithTwoBindings) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{/*binding=*/1, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
@@ -56,7 +56,7 @@
}
TEST_P(descriptor_set_layout_test, CreateWithPushDescriptorType) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{/*binding=*/1, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
diff --git a/iree/hal/cts/descriptor_set_test.h b/iree/hal/cts/descriptor_set_test.h
index 323f533..241ad95 100644
--- a/iree/hal/cts/descriptor_set_test.h
+++ b/iree/hal/cts/descriptor_set_test.h
@@ -19,8 +19,27 @@
class descriptor_set_test : public CtsTestBase {};
+TEST_P(descriptor_set_test, CreateWithNoBindings) {
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
+ IREE_ASSERT_OK(iree_hal_descriptor_set_layout_create(
+ device_, IREE_HAL_DESCRIPTOR_SET_LAYOUT_USAGE_TYPE_IMMUTABLE,
+ /*binding_count=*/0,
+ /*bindings=*/NULL, &descriptor_set_layout));
+
+ iree_hal_descriptor_set_t* descriptor_set = NULL;
+ IREE_ASSERT_OK(iree_hal_descriptor_set_create(
+ device_, descriptor_set_layout, /*binding_count=*/0,
+ /*bindings=*/NULL, &descriptor_set));
+
+ // The descriptor set struct is an opaque handle. We can't test for much more
+ // than successful creation.
+
+ iree_hal_descriptor_set_release(descriptor_set);
+ iree_hal_descriptor_set_layout_release(descriptor_set_layout);
+}
+
TEST_P(descriptor_set_test, CreateWithTwoBindings) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{/*binding=*/1, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
@@ -34,12 +53,14 @@
{/*binding=*/0, /*buffer=*/NULL, /*offset=*/0, /*length=*/0},
{/*binding=*/1, /*buffer=*/NULL, /*offset=*/0, /*length=*/0},
};
-
- iree_hal_descriptor_set_t* descriptor_set;
+ iree_hal_descriptor_set_t* descriptor_set = NULL;
IREE_ASSERT_OK(iree_hal_descriptor_set_create(
device_, descriptor_set_layout, IREE_ARRAYSIZE(descriptor_set_bindings),
descriptor_set_bindings, &descriptor_set));
+ // The descriptor set struct is an opaque handle. We can't test for much more
+ // than successful creation.
+
iree_hal_descriptor_set_release(descriptor_set);
iree_hal_descriptor_set_layout_release(descriptor_set_layout);
}
diff --git a/iree/hal/cts/driver_test.h b/iree/hal/cts/driver_test.h
index 6c2084d..0ebb947 100644
--- a/iree/hal/cts/driver_test.h
+++ b/iree/hal/cts/driver_test.h
@@ -23,7 +23,7 @@
class driver_test : public CtsTestBase {};
TEST_P(driver_test, QueryAndCreateAvailableDevices) {
- iree_hal_device_info_t* device_infos;
+ iree_hal_device_info_t* device_infos = NULL;
iree_host_size_t device_info_count;
IREE_ASSERT_OK(iree_hal_driver_query_available_devices(
driver_, iree_allocator_system(), &device_infos, &device_info_count));
diff --git a/iree/hal/cts/event_test.h b/iree/hal/cts/event_test.h
index 505e0f7..7bc1769 100644
--- a/iree/hal/cts/event_test.h
+++ b/iree/hal/cts/event_test.h
@@ -22,16 +22,16 @@
class event_test : public CtsTestBase {};
TEST_P(event_test, Create) {
- iree_hal_event_t* event;
+ iree_hal_event_t* event = NULL;
IREE_ASSERT_OK(iree_hal_event_create(device_, &event));
iree_hal_event_release(event);
}
TEST_P(event_test, SignalAndReset) {
- iree_hal_event_t* event;
+ iree_hal_event_t* event = NULL;
IREE_ASSERT_OK(iree_hal_event_create(device_, &event));
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -52,11 +52,11 @@
}
TEST_P(event_test, SubmitWithChainedCommandBuffers) {
- iree_hal_event_t* event;
+ iree_hal_event_t* event = NULL;
IREE_ASSERT_OK(iree_hal_event_create(device_, &event));
- iree_hal_command_buffer_t* command_buffer_1;
- iree_hal_command_buffer_t* command_buffer_2;
+ iree_hal_command_buffer_t* command_buffer_1 = NULL;
+ iree_hal_command_buffer_t* command_buffer_2 = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
diff --git a/iree/hal/cts/executable_cache_test.h b/iree/hal/cts/executable_cache_test.h
index 3801f2e..0a8d71e 100644
--- a/iree/hal/cts/executable_cache_test.h
+++ b/iree/hal/cts/executable_cache_test.h
@@ -21,7 +21,7 @@
class executable_cache_test : public CtsTestBase {};
TEST_P(executable_cache_test, Create) {
- iree_hal_executable_cache_t* executable_cache;
+ iree_hal_executable_cache_t* executable_cache = NULL;
IREE_ASSERT_OK(iree_hal_executable_cache_create(
device_, iree_make_cstring_view("default"), &executable_cache));
@@ -29,7 +29,7 @@
}
TEST_P(executable_cache_test, CantPrepareUnknownFormat) {
- iree_hal_executable_cache_t* executable_cache;
+ iree_hal_executable_cache_t* executable_cache = NULL;
IREE_ASSERT_OK(iree_hal_executable_cache_create(
device_, iree_make_cstring_view("default"), &executable_cache));
@@ -40,12 +40,12 @@
}
TEST_P(executable_cache_test, PrepareExecutable) {
- iree_hal_executable_cache_t* executable_cache;
+ iree_hal_executable_cache_t* executable_cache = NULL;
IREE_ASSERT_OK(iree_hal_executable_cache_create(
device_, iree_make_cstring_view("default"), &executable_cache));
// Note: this layout must match the testdata executable.
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{0, IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{1, IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
@@ -69,7 +69,7 @@
executable_spec.executable_layout_count = 1;
executable_spec.executable_layouts = &executable_layout;
- iree_hal_executable_t* executable;
+ iree_hal_executable_t* executable = NULL;
IREE_ASSERT_OK(iree_hal_executable_cache_prepare_executable(
executable_cache, &executable_spec, &executable));
diff --git a/iree/hal/cts/executable_layout_test.h b/iree/hal/cts/executable_layout_test.h
index 83200a5..8af3e60 100644
--- a/iree/hal/cts/executable_layout_test.h
+++ b/iree/hal/cts/executable_layout_test.h
@@ -20,7 +20,7 @@
class executable_layout_test : public CtsTestBase {};
TEST_P(executable_layout_test, CreateWithNoLayouts) {
- iree_hal_executable_layout_t* executable_layout;
+ iree_hal_executable_layout_t* executable_layout = NULL;
IREE_ASSERT_OK(iree_hal_executable_layout_create(
device_, /*push_constants=*/0, /*set_layout_count=*/0, NULL,
&executable_layout));
@@ -29,7 +29,7 @@
}
TEST_P(executable_layout_test, CreateWithPushConstants) {
- iree_hal_executable_layout_t* executable_layout;
+ iree_hal_executable_layout_t* executable_layout = NULL;
// Note: The Vulkan maxPushConstantsSize limit must be at least 128 bytes:
// https://www.khronos.org/registry/vulkan/specs/1.2/html/vkspec.html#limits-minmax
IREE_ASSERT_OK(iree_hal_executable_layout_create(
@@ -40,7 +40,7 @@
}
TEST_P(executable_layout_test, CreateWithOneLayout) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layout;
+ iree_hal_descriptor_set_layout_t* descriptor_set_layout = NULL;
iree_hal_descriptor_set_layout_binding_t descriptor_set_layout_bindings[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{/*binding=*/1, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
@@ -50,7 +50,7 @@
IREE_ARRAYSIZE(descriptor_set_layout_bindings),
descriptor_set_layout_bindings, &descriptor_set_layout));
- iree_hal_executable_layout_t* executable_layout;
+ iree_hal_executable_layout_t* executable_layout = NULL;
IREE_ASSERT_OK(iree_hal_executable_layout_create(
device_, /*push_constants=*/0, /*set_layout_count=*/1,
&descriptor_set_layout, &executable_layout));
@@ -60,7 +60,7 @@
}
TEST_P(executable_layout_test, CreateWithTwoLayouts) {
- iree_hal_descriptor_set_layout_t* descriptor_set_layouts[2];
+ iree_hal_descriptor_set_layout_t* descriptor_set_layouts[2] = {NULL};
iree_hal_descriptor_set_layout_binding_t layout_bindings_0[] = {
{/*binding=*/0, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
{/*binding=*/1, /*type=*/IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER},
@@ -80,7 +80,7 @@
IREE_ARRAYSIZE(layout_bindings_1), layout_bindings_1,
&descriptor_set_layouts[1]));
- iree_hal_executable_layout_t* executable_layout;
+ iree_hal_executable_layout_t* executable_layout = NULL;
IREE_ASSERT_OK(iree_hal_executable_layout_create(
device_, /*push_constants=*/0, IREE_ARRAYSIZE(descriptor_set_layouts),
descriptor_set_layouts, &executable_layout));
diff --git a/iree/hal/cts/semaphore_submission_test.h b/iree/hal/cts/semaphore_submission_test.h
index ac15536..0c41c76 100644
--- a/iree/hal/cts/semaphore_submission_test.h
+++ b/iree/hal/cts/semaphore_submission_test.h
@@ -29,7 +29,7 @@
submission_batch.wait_semaphores.payload_values = NULL;
submission_batch.command_buffer_count = 0;
submission_batch.command_buffers = NULL;
- iree_hal_semaphore_t* signal_semaphore;
+ iree_hal_semaphore_t* signal_semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &signal_semaphore));
iree_hal_semaphore_t* signal_semaphore_ptrs[] = {signal_semaphore};
submission_batch.signal_semaphores.count =
@@ -49,7 +49,7 @@
}
TEST_P(semaphore_submission_test, SubmitAndSignal) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -65,7 +65,7 @@
submission_batch.wait_semaphores.payload_values = NULL;
submission_batch.command_buffer_count = 1;
submission_batch.command_buffers = &command_buffer;
- iree_hal_semaphore_t* signal_semaphore;
+ iree_hal_semaphore_t* signal_semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &signal_semaphore));
iree_hal_semaphore_t* signal_semaphore_ptrs[] = {signal_semaphore};
submission_batch.signal_semaphores.count =
@@ -87,7 +87,7 @@
TEST_P(semaphore_submission_test, SubmitWithWait) {
// Empty command buffer.
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -97,8 +97,8 @@
// One wait and one signal semaphore.
iree_hal_submission_batch_t submission_batch;
- iree_hal_semaphore_t* wait_semaphore;
- iree_hal_semaphore_t* signal_semaphore;
+ iree_hal_semaphore_t* wait_semaphore = NULL;
+ iree_hal_semaphore_t* signal_semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &wait_semaphore));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 100ull, &signal_semaphore));
iree_hal_semaphore_t* wait_semaphore_ptrs[] = {wait_semaphore};
@@ -136,7 +136,7 @@
}
TEST_P(semaphore_submission_test, SubmitWithMultipleSemaphores) {
- iree_hal_command_buffer_t* command_buffer;
+ iree_hal_command_buffer_t* command_buffer = NULL;
IREE_ASSERT_OK(iree_hal_command_buffer_create(
device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT,
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
@@ -146,10 +146,10 @@
IREE_ASSERT_OK(iree_hal_command_buffer_end(command_buffer));
iree_hal_submission_batch_t submission_batch;
- iree_hal_semaphore_t* wait_semaphore_1;
- iree_hal_semaphore_t* wait_semaphore_2;
- iree_hal_semaphore_t* signal_semaphore_1;
- iree_hal_semaphore_t* signal_semaphore_2;
+ iree_hal_semaphore_t* wait_semaphore_1 = NULL;
+ iree_hal_semaphore_t* wait_semaphore_2 = NULL;
+ iree_hal_semaphore_t* signal_semaphore_1 = NULL;
+ iree_hal_semaphore_t* signal_semaphore_2 = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &wait_semaphore_1));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &wait_semaphore_2));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &signal_semaphore_1));
diff --git a/iree/hal/cts/semaphore_test.h b/iree/hal/cts/semaphore_test.h
index c79cde8..d44dd13 100644
--- a/iree/hal/cts/semaphore_test.h
+++ b/iree/hal/cts/semaphore_test.h
@@ -24,7 +24,7 @@
// Tests that a semaphore that is unused properly cleans itself up.
TEST_P(semaphore_test, NoOp) {
- iree_hal_semaphore_t* semaphore;
+ iree_hal_semaphore_t* semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 123ull, &semaphore));
uint64_t value;
@@ -36,7 +36,7 @@
// Tests that a semaphore will accept new values as it is signaled.
TEST_P(semaphore_test, NormalSignaling) {
- iree_hal_semaphore_t* semaphore;
+ iree_hal_semaphore_t* semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 2ull, &semaphore));
uint64_t value;
@@ -58,7 +58,7 @@
// Tests semaphore failure handling.
TEST_P(semaphore_test, Failure) {
- iree_hal_semaphore_t* semaphore;
+ iree_hal_semaphore_t* semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 2ull, &semaphore));
IREE_ASSERT_OK(iree_hal_semaphore_signal(semaphore, 3ull));
@@ -97,7 +97,7 @@
// Tests waiting on a semaphore that has already been signaled.
// **Never completes when using SwiftShader**
TEST_P(semaphore_test, DISABLED_WaitAlreadySignaled) {
- iree_hal_semaphore_t* semaphore;
+ iree_hal_semaphore_t* semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 2ull, &semaphore));
// Test both previous and current values.
@@ -116,7 +116,7 @@
// Tests waiting on a semaphore that has not been signaled.
TEST_P(semaphore_test, WaitUnsignaled) {
- iree_hal_semaphore_t* semaphore;
+ iree_hal_semaphore_t* semaphore = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 2ull, &semaphore));
// NOTE: we don't actually block here because otherwise we'd lock up.
@@ -133,8 +133,8 @@
// Tests IREE_HAL_WAIT_MODE_ALL when not all are signaled.
TEST_P(semaphore_test, WaitAllButNotAllSignaled) {
- iree_hal_semaphore_t* semaphore_a;
- iree_hal_semaphore_t* semaphore_b;
+ iree_hal_semaphore_t* semaphore_a = NULL;
+ iree_hal_semaphore_t* semaphore_b = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &semaphore_a));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 1ull, &semaphore_b));
@@ -158,8 +158,8 @@
// Tests IREE_HAL_WAIT_MODE_ALL when all are signaled.
TEST_P(semaphore_test, WaitAllAndAllSignaled) {
- iree_hal_semaphore_t* semaphore_a;
- iree_hal_semaphore_t* semaphore_b;
+ iree_hal_semaphore_t* semaphore_a = NULL;
+ iree_hal_semaphore_t* semaphore_b = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 1ull, &semaphore_a));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 1ull, &semaphore_b));
@@ -184,8 +184,8 @@
// Tests IREE_HAL_WAIT_MODE_ANY.
// **Fails using timeline semaphore emulation**
TEST_P(semaphore_test, DISABLED_WaitAny) {
- iree_hal_semaphore_t* semaphore_a;
- iree_hal_semaphore_t* semaphore_b;
+ iree_hal_semaphore_t* semaphore_a = NULL;
+ iree_hal_semaphore_t* semaphore_b = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &semaphore_a));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 1ull, &semaphore_b));
@@ -207,8 +207,8 @@
// Tests threading behavior by ping-ponging between the test main thread and
// a little thread.
TEST_P(semaphore_test, PingPong) {
- iree_hal_semaphore_t* a2b;
- iree_hal_semaphore_t* b2a;
+ iree_hal_semaphore_t* a2b = NULL;
+ iree_hal_semaphore_t* b2a = NULL;
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &a2b));
IREE_ASSERT_OK(iree_hal_semaphore_create(device_, 0ull, &b2a));
std::thread thread([&]() {