diff --git a/test/common/buffer.cpp b/test/common/buffer.cpp index 86343d0dad4f899240a7895c0b1855bfda876867..f8a51887537ae26719681f6d447a01b26b22313e 100644 --- a/test/common/buffer.cpp +++ b/test/common/buffer.cpp @@ -21,7 +21,10 @@ namespace kai::test { -Buffer::Buffer(const size_t size) : m_user_buffer_size(size) { +Buffer::Buffer(const size_t size) : Buffer(size, 0) { +} + +Buffer::Buffer(const size_t size, const uint8_t init_value = 0) : m_user_buffer_size(size) { KAI_ASSUME_MSG(size > 0, "Buffers must be of non-zero size"); const char* val = getenv("KAI_TEST_BUFFER_POLICY"); @@ -57,9 +60,7 @@ Buffer::Buffer(const size_t size) : m_user_buffer_size(size) { default: allocate(); } -} -Buffer::Buffer(const size_t size, uint8_t init_value) : Buffer(size) { memset(data(), init_value, size); } diff --git a/test/common/compare.cpp b/test/common/compare.cpp index 29d96493f4e2c8c112d078885d9ffac522e270a7..4f503b1443deef46b031a29bdf84b7ba9334855f 100644 --- a/test/common/compare.cpp +++ b/test/common/compare.cpp @@ -78,6 +78,10 @@ bool compare_raw( const auto [abs_err, rel_err] = calculate_error(imp_value, ref_value); if (abs_err != 0 || rel_err != 0) { + if (!in_roi) { + handler.mark_as_failed(); + } + const auto notifying = !in_roi || handler.handle_data(abs_err, rel_err); if (notifying) { @@ -175,6 +179,10 @@ bool compare_per_row( const auto [abs_err, rel_err] = calculate_error(imp_value, ref_value); if (abs_err != 0 || rel_err != 0) { + if (!in_roi) { + handler.mark_as_failed(); + } + const auto notifying = !in_roi || handler.handle_data(abs_err, rel_err); if (notifying) { diff --git a/test/tests/imatmul_test.cpp b/test/tests/imatmul_test.cpp index ca4b71b37918afd86ce97b270a39629a7d260326..8f4922dd51f8e7575cc36e8239bab123dd2d9d5f 100644 --- a/test/tests/imatmul_test.cpp +++ b/test/tests/imatmul_test.cpp @@ -472,6 +472,10 @@ TEST_P(IndirectMatMulTest, Output) { ReferenceGenerator::get_test_reference({shape, method.pack_shape, method.format, k_chunk_length, clamp_rate}); const Rect portion = output_portion.compute_portion(shape.m, shape.n, method.pack_shape.m, method.pack_shape.n); + if (portion.height() == 0 || portion.width() == 0) { + GTEST_SKIP() << "Empty dimension of matrix(" << portion.width() << "," << portion.height() << ")"; + } + // Call packing kernels, and then imatmul kernel Buffer lhs_packed = pack_lhs(method.lhs, portion, test_data, shape.m, k_chunk); Buffer rhs_packed = pack_rhs(method.rhs, portion, test_data, shape.n, k_chunk, method.format.rhs.data_type());