| 1 | use debugger_test::debugger_test; |
| 2 | use smallvec::{smallvec, SmallVec}; |
| 3 | |
| 4 | #[inline (never)] |
| 5 | fn __break() {} |
| 6 | |
| 7 | #[debugger_test ( |
| 8 | debugger = "cdb" , |
| 9 | commands = r#" |
| 10 | .nvlist |
| 11 | dx sv |
| 12 | |
| 13 | g |
| 14 | |
| 15 | dx sv |
| 16 | |
| 17 | g |
| 18 | |
| 19 | dx sv |
| 20 | "# , |
| 21 | expected_statements = r#" |
| 22 | sv : { len=0x2 is_inline=true } [Type: smallvec::SmallVec<array$<i32,4> >] |
| 23 | [<Raw View>] [Type: smallvec::SmallVec<array$<i32,4> >] |
| 24 | [capacity] : 4 |
| 25 | [len] : 0x2 [Type: unsigned __int64] |
| 26 | [0] : 1 [Type: int] |
| 27 | [1] : 2 [Type: int] |
| 28 | |
| 29 | sv : { len=0x5 is_inline=false } [Type: smallvec::SmallVec<array$<i32,4> >] |
| 30 | [<Raw View>] [Type: smallvec::SmallVec<array$<i32,4> >] |
| 31 | [capacity] : 0x8 [Type: unsigned __int64] |
| 32 | [len] : 0x5 [Type: unsigned __int64] |
| 33 | [0] : 5 [Type: int] |
| 34 | [1] : 2 [Type: int] |
| 35 | [2] : 3 [Type: int] |
| 36 | [3] : 4 [Type: int] |
| 37 | [4] : 5 [Type: int] |
| 38 | |
| 39 | sv : { len=0x5 is_inline=false } [Type: smallvec::SmallVec<array$<i32,4> >] |
| 40 | [<Raw View>] [Type: smallvec::SmallVec<array$<i32,4> >] |
| 41 | [capacity] : 0x8 [Type: unsigned __int64] |
| 42 | [len] : 0x5 [Type: unsigned __int64] |
| 43 | [0] : 2 [Type: int] |
| 44 | [1] : 3 [Type: int] |
| 45 | [2] : 4 [Type: int] |
| 46 | [3] : 5 [Type: int] |
| 47 | [4] : 5 [Type: int] |
| 48 | "# |
| 49 | )] |
| 50 | #[inline (never)] |
| 51 | fn test_debugger_visualizer() { |
| 52 | // This SmallVec can hold up to 4 items on the stack: |
| 53 | let mut sv: SmallVec<[i32; 4]> = smallvec![1, 2]; |
| 54 | __break(); |
| 55 | |
| 56 | // Overfill the SmallVec to move its contents to the heap |
| 57 | for i in 3..6 { |
| 58 | sv.push(i); |
| 59 | } |
| 60 | |
| 61 | // Update the contents of the first value of the SmallVec. |
| 62 | sv[0] = sv[1] + sv[2]; |
| 63 | __break(); |
| 64 | |
| 65 | // Sort the SmallVec in place. |
| 66 | sv.sort(); |
| 67 | __break(); |
| 68 | } |
| 69 | |