[Lldb-commits] [lldb] 00c6049 - [lldb][NFC] Refactor test to enable subsequent reuse
Felipe de Azevedo Piovezan via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 19 06:16:32 PDT 2023
Author: Felipe de Azevedo Piovezan
Date: 2023-07-19T09:15:48-04:00
New Revision: 00c60496775b611d92bae5a69d4e6794ecad4084
URL: https://github.com/llvm/llvm-project/commit/00c60496775b611d92bae5a69d4e6794ecad4084
DIFF: https://github.com/llvm/llvm-project/commit/00c60496775b611d92bae5a69d4e6794ecad4084.diff
LOG: [lldb][NFC] Refactor test to enable subsequent reuse
On a subsequent commit, I intend to update the expression and call the evaluate
function more times. This refactors enables reusing some of the existing code
for that.
Differential Revision: https://reviews.llvm.org/D155197
Added:
Modified:
lldb/unittests/Expression/DWARFExpressionTest.cpp
Removed:
################################################################################
diff --git a/lldb/unittests/Expression/DWARFExpressionTest.cpp b/lldb/unittests/Expression/DWARFExpressionTest.cpp
index 7d153d7fbed881..e35f35b369ea1e 100644
--- a/lldb/unittests/Expression/DWARFExpressionTest.cpp
+++ b/lldb/unittests/Expression/DWARFExpressionTest.cpp
@@ -500,19 +500,26 @@ TEST_F(DWARFExpressionMockProcessTest, WASM_DW_OP_addr_index) {
platform_sp, target_sp);
ExecutionContext exe_ctx(target_sp, false);
+
+ auto evaluate = [&](DWARFExpression &expr, Status &status, Value &result) {
+ DataExtractor extractor;
+ expr.GetExpressionData(extractor);
+ return DWARFExpression::Evaluate(
+ &exe_ctx, /*reg_ctx*/ nullptr, /*module_sp*/ {}, extractor, dwarf_cu,
+ lldb::eRegisterKindLLDB,
+ /*initial_value_ptr*/ nullptr,
+ /*object_address_ptr*/ nullptr, result, &status);
+ };
+
// DW_OP_addrx takes a single leb128 operand, the index in the addr table:
- uint8_t expr[] = {DW_OP_addrx, 0x01};
- DataExtractor extractor(expr, sizeof(expr), lldb::eByteOrderLittle,
+ uint8_t expr_data[] = {DW_OP_addrx, 0x01};
+ DataExtractor extractor(expr_data, sizeof(expr_data), lldb::eByteOrderLittle,
/*addr_size*/ 4);
- Value result;
- Status status;
- ASSERT_TRUE(DWARFExpression::Evaluate(
- &exe_ctx, /*reg_ctx*/ nullptr, /*module_sp*/ {}, extractor, dwarf_cu,
- lldb::eRegisterKindLLDB,
- /*initial_value_ptr*/ nullptr,
- /*object_address_ptr*/ nullptr, result, &status))
- << status.ToError();
+ DWARFExpression expr(extractor);
+ Status status;
+ Value result;
+ ASSERT_TRUE(evaluate(expr, status, result)) << status.ToError();
ASSERT_EQ(result.GetValueType(), Value::ValueType::LoadAddress);
ASSERT_EQ(result.GetScalar().UInt(), 0x5678u);
}
More information about the lldb-commits
mailing list