7#include <gtest/gtest.h>
11TEST(KernelElfTest, DefaultConstructorTest) {
17TEST(KernelElfTest, ConstructorWithElfAddrTest) {
24TEST(KernelElfTest, ConstructorWithElfAddrAndElfSizeTest) {
31TEST(KernelElfTest, DefaultAssignConstructorTest) {
37 kerlen_elf = kerlen_elf2;
44TEST(KernelElfTest, DefaultCopyConstructorTest) {
54TEST(KernelElfTest, GetElfSizeTest) {
59TEST(KernelElfTest, SymtabAccessTest) {
66 bool found_symbol =
false;
67 for (
const auto& sym : kerlen_elf.
symtab) {
68 if (sym.st_name != 0 && kerlen_elf.
strtab !=
nullptr) {
69 const char* sym_name =
70 reinterpret_cast<const char*
>(kerlen_elf.
strtab + sym.st_name);
71 if (sym_name !=
nullptr &&
strlen(sym_name) > 0) {
80TEST(KernelElfTest, StrtabNotNullTest) {
85TEST(KernelElfTest, MoveConstructorTest) {
87 auto original_strtab = kerlen_elf.
strtab;
88 auto original_symtabsize = kerlen_elf.
symtab.size();
90 KernelElf kerlen_elf2(std::move(kerlen_elf));
96TEST(KernelElfTest, MoveAssignmentTest) {
98 auto original_strtab = kerlen_elf.
strtab;
99 auto original_symtabsize = kerlen_elf.
symtab.size();
102 kerlen_elf2 = std::move(kerlen_elf);
auto GetElfSize() const -> size_t
获取 elf 文件大小
std::span< Elf64_Sym > symtab
符号表
static constexpr uint8_t kernel_elf_data[]
测试用 elf 文件
TEST(KernelElfTest, DefaultConstructorTest)
#define EXPECT_TRUE(cond, msg)
#define EXPECT_NE(val1, val2, msg)
#define EXPECT_GT(val1, val2, msg)
#define EXPECT_EQ(val1, val2, msg)