ImHex/tests/pattern_language/include/test_patterns/test_pattern_padding.hpp

38 lines
1.3 KiB
C++
Raw Normal View History

2021-09-11 21:13:49 +00:00
#pragma once
#include "test_pattern.hpp"
namespace hex::test {
class TestPatternPadding : public TestPattern {
public:
TestPatternPadding() : TestPattern("Padding") {
2021-10-03 10:32:58 +00:00
auto testStruct = create<PatternDataStruct>("TestStruct", "testStruct", 0x100, sizeof(s32) + 20 + sizeof(u8[0x10]), nullptr);
2021-09-11 21:13:49 +00:00
2021-10-03 10:32:58 +00:00
auto variable = create<PatternDataSigned>("s32", "variable", 0x100, sizeof(s32), nullptr);
auto padding = create<PatternDataPadding>("padding", "", 0x100 + sizeof(s32), 20, nullptr);
auto array = create<PatternDataStaticArray>("u8", "array", 0x100 + sizeof(s32) + 20, sizeof(u8[0x10]), nullptr);
array->setEntries(create<PatternDataUnsigned>("u8", "", 0x100 + sizeof(s32) + 20, sizeof(u8), nullptr), 0x10);
2021-09-11 21:13:49 +00:00
testStruct->setMembers({ variable, padding, array });
addPattern(testStruct);
}
~TestPatternPadding() override = default;
[[nodiscard]]
std::string getSourceCode() const override {
return R"(
struct TestStruct {
s32 variable;
padding[20];
u8 array[0x10];
};
TestStruct testStruct @ 0x100;
)";
}
};
}