#include "kernel_elf.hpp"
#include <gtest/gtest.h>
#include "kernel.elf.h"
Go to the source code of this file.
|
| | TEST (KernelElfTest, DefaultConstructorTest) |
| |
| | TEST (KernelElfTest, ConstructorWithElfAddrTest) |
| |
| | TEST (KernelElfTest, ConstructorWithElfAddrAndElfSizeTest) |
| |
| | TEST (KernelElfTest, DefaultAssignConstructorTest) |
| |
| | TEST (KernelElfTest, DefaultCopyConstructorTest) |
| |
| | TEST (KernelElfTest, GetElfSizeTest) |
| |
| | TEST (KernelElfTest, SymtabAccessTest) |
| |
| | TEST (KernelElfTest, StrtabNotNullTest) |
| |
| | TEST (KernelElfTest, MoveConstructorTest) |
| |
| | TEST (KernelElfTest, MoveAssignmentTest) |
| |
◆ TEST() [1/10]
| TEST |
( |
KernelElfTest |
, |
|
|
ConstructorWithElfAddrAndElfSizeTest |
|
|
) |
| |
Definition at line 24 of file kernel_elf_test.cpp.
24 {
29}
static constexpr uint8_t kernel_elf_data[]
测试用 elf 文件
#define EXPECT_EQ(val1, val2, msg)
◆ TEST() [2/10]
| TEST |
( |
KernelElfTest |
, |
|
|
ConstructorWithElfAddrTest |
|
|
) |
| |
◆ TEST() [3/10]
| TEST |
( |
KernelElfTest |
, |
|
|
DefaultAssignConstructorTest |
|
|
) |
| |
Definition at line 31 of file kernel_elf_test.cpp.
31 {
36
37 kerlen_elf = kerlen_elf2;
38
42}
std::span< Elf64_Sym > symtab
符号表
◆ TEST() [4/10]
| TEST |
( |
KernelElfTest |
, |
|
|
DefaultConstructorTest |
|
|
) |
| |
◆ TEST() [5/10]
| TEST |
( |
KernelElfTest |
, |
|
|
DefaultCopyConstructorTest |
|
|
) |
| |
◆ TEST() [6/10]
| TEST |
( |
KernelElfTest |
, |
|
|
GetElfSizeTest |
|
|
) |
| |
◆ TEST() [7/10]
| TEST |
( |
KernelElfTest |
, |
|
|
MoveAssignmentTest |
|
|
) |
| |
Definition at line 96 of file kernel_elf_test.cpp.
96 {
98 auto original_strtab = kerlen_elf.strtab;
99 auto original_symtabsize = kerlen_elf.symtab.size();
100
102 kerlen_elf2 = std::move(kerlen_elf);
103
106}
◆ TEST() [8/10]
| TEST |
( |
KernelElfTest |
, |
|
|
MoveConstructorTest |
|
|
) |
| |
Definition at line 85 of file kernel_elf_test.cpp.
85 {
87 auto original_strtab = kerlen_elf.strtab;
88 auto original_symtabsize = kerlen_elf.symtab.size();
89
90 KernelElf kerlen_elf2(std::move(kerlen_elf));
91
92 EXPECT_EQ(kerlen_elf2.strtab, original_strtab);
93 EXPECT_EQ(kerlen_elf2.symtab.size(), original_symtabsize);
94}
◆ TEST() [9/10]
| TEST |
( |
KernelElfTest |
, |
|
|
StrtabNotNullTest |
|
|
) |
| |
◆ TEST() [10/10]
| TEST |
( |
KernelElfTest |
, |
|
|
SymtabAccessTest |
|
|
) |
| |
Definition at line 59 of file kernel_elf_test.cpp.
59 {
61
62
64
65
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) {
72 found_symbol = true;
73 break;
74 }
75 }
76 }
78}
#define EXPECT_TRUE(cond, msg)