[llvm] fa23d2b - [JITLink][AArch32] Add test fixture with helper functions in error tests
Stefan Gränitz via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 25 08:14:19 PST 2023
Author: Stefan Gränitz
Date: 2023-11-25T17:13:16+01:00
New Revision: fa23d2b9d972134fba3424814b690dd29a33c231
URL: https://github.com/llvm/llvm-project/commit/fa23d2b9d972134fba3424814b690dd29a33c231
DIFF: https://github.com/llvm/llvm-project/commit/fa23d2b9d972134fba3424814b690dd29a33c231.diff
LOG: [JITLink][AArch32] Add test fixture with helper functions in error tests
Added:
Modified:
llvm/unittests/ExecutionEngine/JITLink/AArch32ErrorTests.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/ExecutionEngine/JITLink/AArch32ErrorTests.cpp b/llvm/unittests/ExecutionEngine/JITLink/AArch32ErrorTests.cpp
index 0f7c611787aab18..c3bf45e03398c28 100644
--- a/llvm/unittests/ExecutionEngine/JITLink/AArch32ErrorTests.cpp
+++ b/llvm/unittests/ExecutionEngine/JITLink/AArch32ErrorTests.cpp
@@ -26,7 +26,6 @@ auto &Sec =
auto ArmCfg = getArmConfigForCPUArch(ARMBuildAttrs::v7);
-constexpr uint64_t DataAlignment = 4;
constexpr uint64_t ArmAlignment = 4;
constexpr uint64_t ThumbAlignment = 2;
constexpr uint64_t AlignmentOffset = 0;
@@ -34,18 +33,40 @@ constexpr uint64_t AlignmentOffset = 0;
constexpr orc::ExecutorAddrDiff SymbolOffset = 0;
constexpr orc::ExecutorAddrDiff SymbolSize = 4;
-template <size_t sizeOfArray>
-ArrayRef<char> toArrayRefChar(const uint8_t (&Zeros)[sizeOfArray]) {
- return ArrayRef<char>(reinterpret_cast<const char *>(&Zeros), sizeof(Zeros));
-}
+class AArch32Errors_ELF : public testing::Test {
+protected:
+ ArmConfig ArmCfg = getArmConfigForCPUArch(ARMBuildAttrs::v7);
+ std::unique_ptr<LinkGraph> G;
+ Section *S = nullptr;
+
+ const uint8_t Zeros[4]{0x00, 0x00, 0x00, 0x00};
+
+public:
+ static void SetUpTestCase() {}
+
+ void SetUp() override {
+ G = std::make_unique<LinkGraph>("foo", Triple("armv7-linux-gnueabi"),
+ PointerSize, endianness::little,
+ aarch32::getEdgeKindName);
+ S = &G->createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
+ }
+
+ void TearDown() override {}
+
+protected:
+ template <size_t Size>
+ Block &createBlock(const uint8_t (&Content)[Size], uint64_t Addr,
+ uint64_t Alignment = 4) {
+ ArrayRef<char> CharContent{reinterpret_cast<const char *>(&Content),
+ sizeof(Content)};
+ return G->createContentBlock(*S, CharContent, orc::ExecutorAddr(Addr),
+ Alignment, AlignmentOffset);
+ }
+};
-TEST(AArch32_ELF, readAddendDataErrors) {
+TEST_F(AArch32Errors_ELF, readAddendDataErrors) {
+ Block &ZerosBlock = createBlock(Zeros, 0x1000);
constexpr uint64_t ZerosOffset = 0;
- const uint8_t Zeros[] = {0x00, 0x00, 0x00, 0x00};
- constexpr orc::ExecutorAddr ZerosBlockAddr(0x0000);
- auto &ZerosBlock =
- G->createContentBlock(Sec, toArrayRefChar(Zeros), ZerosBlockAddr,
- DataAlignment, AlignmentOffset);
// Invalid edge kind is the only error we can raise here right now.
Edge::Kind Invalid = Edge::GenericEdgeKind::Invalid;
More information about the llvm-commits
mailing list