MCPcopy Index your code
hub / github.com/encounter/objdiff / assert_literal_value

Function assert_literal_value

objdiff-core/tests/common.rs:55–73  ·  view source on GitHub ↗
(
    obj: &Object,
    diff_config: &DiffObjConfig,
    function_name: &str,
    ins_row_idx: usize,
    literal_label: &str,
    literal_value: &str,
)

Source from the content-addressed store, hash-verified

53
54#[allow(dead_code)]
55pub fn assert_literal_value(
56 obj: &Object,
57 diff_config: &DiffObjConfig,
58 function_name: &str,
59 ins_row_idx: usize,
60 literal_label: &str,
61 literal_value: &str,
62) {
63 let symbol_idx = obj.symbols.iter().position(|s| s.name == function_name).unwrap();
64 let diff = objdiff_core::diff::code::no_diff_code(obj, symbol_idx, diff_config).unwrap();
65 let ins_ref = diff.instruction_rows[ins_row_idx].ins_ref.unwrap();
66 let resolved = obj.resolve_instruction_ref(symbol_idx, ins_ref).unwrap();
67 let literals = objdiff_core::diff::display::display_ins_data_literals(obj, resolved);
68 let target_literal =
69 literals.iter().find(|lit_info| lit_info.label_override == Some(literal_label.to_string()));
70 assert_ne!(target_literal, None);
71 let lit_info = target_literal.unwrap();
72 assert_eq!(lit_info.literal, literal_value);
73}

Calls 3

no_diff_codeFunction · 0.85

Tested by

no test coverage detected