From 6c2f5df6c3e519d62a5afc4a71fedc8a7a629386 Mon Sep 17 00:00:00 2001 From: Mateusz Hoppe Date: Wed, 22 Feb 2023 15:45:07 +0000 Subject: [PATCH] test: fix memoryZeroed() in ULTs first byte in the buffer was not checked what resulted in incorrect check if memory was zeroed, Signed-off-by: Mateusz Hoppe --- shared/test/common/helpers/gtest_helpers.h | 4 ++-- shared/test/unit_test/main.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/shared/test/common/helpers/gtest_helpers.h b/shared/test/common/helpers/gtest_helpers.h index 8e8b3120ae..815d6d921e 100644 --- a/shared/test/common/helpers/gtest_helpers.h +++ b/shared/test/common/helpers/gtest_helpers.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -42,7 +42,7 @@ inline bool memoryZeroed(const void *mem, const size_t size) { size_t sizeLeft = (size_t)size; bool memoryZeroed = true; - while (--sizeLeft) { + while (sizeLeft--) { uint8_t *pMem = (uint8_t *)mem; if (pMem[sizeLeft] != 0) { memoryZeroed = false; diff --git a/shared/test/unit_test/main.cpp b/shared/test/unit_test/main.cpp index 9e10255cc3..e6af1d9f2a 100644 --- a/shared/test/unit_test/main.cpp +++ b/shared/test/unit_test/main.cpp @@ -16,6 +16,7 @@ #include "shared/test/common/helpers/custom_event_listener.h" #include "shared/test/common/helpers/default_hw_info.h" #include "shared/test/common/helpers/default_hw_info.inl" +#include "shared/test/common/helpers/gtest_helpers.h" #include "shared/test/common/helpers/kernel_binary_helper.h" #include "shared/test/common/helpers/memory_leak_listener.h" #include "shared/test/common/helpers/test_files.h" @@ -46,6 +47,17 @@ const char *fSeparator = "/"; TEST(Should, pass) { EXPECT_TRUE(true); } +TEST(Helper, MemoryZeroed) { + + uint8_t nonZero[] = {1, 0, 0}; + uint8_t nonZero2[] = {0, 0, 0, 0, 1}; + uint8_t zero[] = {0, 0, 0, 0, 0, 0}; + + EXPECT_FALSE(memoryZeroed(nonZero, sizeof(nonZero))); + EXPECT_FALSE(memoryZeroed(nonZero2, sizeof(nonZero2))); + EXPECT_TRUE(memoryZeroed(zero, sizeof(zero))); +} + namespace NEO { extern const char *hardwarePrefix[]; extern const HardwareInfo *hardwareInfoTable[IGFX_MAX_PRODUCT];