2024-07-06 02:06:49 +01:00
|
|
|
/*
|
2025-03-10 00:26:55 +00:00
|
|
|
* Copyright (c) 2024 - 2025 Ember
|
2024-07-14 06:07:28 +01:00
|
|
|
*
|
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
*/
|
2024-07-06 02:06:49 +01:00
|
|
|
|
2025-03-10 00:26:55 +00:00
|
|
|
#include <spark/buffers/Shared.h>
|
2024-07-06 02:06:49 +01:00
|
|
|
#include <gtest/gtest.h>
|
|
|
|
|
#include <array>
|
2024-07-06 04:18:41 +01:00
|
|
|
#include <cstdint>
|
2024-07-06 02:06:49 +01:00
|
|
|
|
2025-03-10 00:26:55 +00:00
|
|
|
using namespace ember::spark::io::detail;
|
2024-07-06 02:06:49 +01:00
|
|
|
|
|
|
|
|
TEST(BufferUtility, SrcDestOverlap_Start) {
|
2024-07-06 04:18:41 +01:00
|
|
|
std::array<std::uint8_t, 10> buffer{};
|
2025-03-10 00:26:55 +00:00
|
|
|
ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), buffer.data(), buffer.size()));
|
2024-07-06 02:06:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(BufferUtility, SrcDestOverlap_End) {
|
2024-07-06 04:18:41 +01:00
|
|
|
std::array<std::uint8_t, 10> buffer{};
|
2024-07-06 02:06:49 +01:00
|
|
|
const auto end = buffer.data() + buffer.size();
|
2025-03-10 00:26:55 +00:00
|
|
|
ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), end - 1, 1));
|
2024-07-06 04:18:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(BufferUtility, SrcDestOverlap_BeyondEnd) {
|
|
|
|
|
std::array<std::uint8_t, 10> buffer{};
|
|
|
|
|
const auto end = buffer.data() + buffer.size();
|
2025-03-10 00:26:55 +00:00
|
|
|
ASSERT_FALSE(region_overlap(buffer.data(), buffer.size(), end, 1));
|
2024-07-06 02:06:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(BufferUtility, SrcDestOverlap_Between) {
|
2024-07-06 04:18:41 +01:00
|
|
|
std::array<std::uint8_t, 10> buffer{};
|
2025-03-10 00:26:55 +00:00
|
|
|
ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), buffer.data() + (buffer.size() - 5), 1));
|
2024-07-06 02:06:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST(BufferUtility, SrcDestOverlap_NoOverlap) {
|
2024-07-06 04:18:41 +01:00
|
|
|
std::array<std::uint8_t, 10> buffer{}, buffer2{};
|
2025-03-10 00:26:55 +00:00
|
|
|
ASSERT_FALSE(region_overlap(buffer.data(), buffer.size(), buffer2.data(), buffer2.size()));
|
2024-12-19 16:12:13 +00:00
|
|
|
}
|