()
| 869 | |
| 870 | #[test] |
| 871 | fn test_multiblock() { |
| 872 | let reg = pcode::VarNode::new(1, 2); |
| 873 | |
| 874 | let mut block1 = pcode::Block::new(); |
| 875 | block1.push((reg, pcode::Op::Load(0), 0x1000)); |
| 876 | |
| 877 | // Load cannot be resized just looking at the current block. |
| 878 | check(block1.clone(), 0, None); |
| 879 | |
| 880 | let mut block2 = pcode::Block::new(); |
| 881 | block2.push((reg, pcode::Op::Copy, 0xaa_u16)); |
| 882 | |
| 883 | let mut block3 = pcode::Block::new(); |
| 884 | block3.push((reg, pcode::Op::Copy, 0xaa_u16)); |
| 885 | |
| 886 | // Modified by both so can be successfully resized. |
| 887 | check_multiblock([block1.clone(), block2.clone(), block3], 0, Some((15, 0))); |
| 888 | |
| 889 | // Does not overwrite reg. |
| 890 | let block4 = pcode::Block::new(); |
| 891 | |
| 892 | // Modified in only one block (cannot be resized). |
| 893 | check_multiblock([block1.clone(), block2.clone(), block4.clone()], 0, None); |
| 894 | check_multiblock([block1.clone(), block4.clone(), block2.clone()], 0, None); |
| 895 | } |
nothing calls this directly
no test coverage detected