(
obj: &Object,
diff_config: &DiffObjConfig,
function_name: &str,
ins_row_idx: usize,
literal_label: &str,
literal_value: &str,
)
| 53 | |
| 54 | #[allow(dead_code)] |
| 55 | pub 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 | } |
no test coverage detected