#include "gtest/gtest.h"
#include "Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/StreamBuffer.h"
#include "lldb/Utility/StreamString.h"
#include "llvm/DebugInfo/DIContext.h"
#include "llvm/DebugInfo/DWARF/DWARFExpression.h"
usingnamespacelldb;
usingnamespacelldb_private;
usingnamespacelldb_private::npdb;
static void
CheckValidProgramTranslation(llvm::StringRef fpo_program,
llvm::StringRef target_register_name,
llvm::StringRef expected_dwarf_expression) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, SingleAssignmentRegisterRef) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, MultipleIndependentAssignments) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, MultipleDependentAssignments) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, DependencyChain) { … }
static void
CheckInvalidProgramTranslation(llvm::StringRef fpo_program,
llvm::StringRef target_register_name) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, InvalidAssignmentSingle) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, InvalidAssignmentMultiple) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, UnknownOp) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, InvalidOpBinary) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, InvalidOpUnary) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, MissingTargetRegister) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, UnresolvedRegisterReference) { … }
TEST(PDBFPOProgramToDWARFExpressionTests,
UnresolvedRegisterAssignmentReference) { … }
TEST(PDBFPOProgramToDWARFExpressionTests,
UnresolvedCyclicRegisterAssignmentReference) { … }
TEST(PDBFPOProgramToDWARFExpressionTests,
UnresolvedDependentCyclicRegisterAssignmentReference) { … }
TEST(PDBFPOProgramToDWARFExpressionTests, UnsupportedRASearch) { … }