emberemu/tests/BufferUtility.cpp

41 lines
1.3 KiB
C++
Raw Permalink Normal View History

2024-07-06 02:06:49 +01: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
#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
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{};
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();
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();
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{};
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{};
ASSERT_FALSE(region_overlap(buffer.data(), buffer.size(), buffer2.data(), buffer2.size()));
}