(t *testing.T)
| 123 | } |
| 124 | |
| 125 | func TestAddr2LinerLookup(t *testing.T) { |
| 126 | for _, tc := range []struct { |
| 127 | desc string |
| 128 | nmOutput string |
| 129 | wantSymbolized map[uint64]string |
| 130 | wantUnsymbolized []uint64 |
| 131 | }{ |
| 132 | { |
| 133 | desc: "odd symbol count", |
| 134 | nmOutput: ` |
| 135 | 0x1000 T 1000 100 |
| 136 | 0x2000 T 2000 120 |
| 137 | 0x3000 T 3000 130 |
| 138 | `, |
| 139 | wantSymbolized: map[uint64]string{ |
| 140 | 0x1000: "0x1000", |
| 141 | 0x1001: "0x1000", |
| 142 | 0x1FFF: "0x1000", |
| 143 | 0x2000: "0x2000", |
| 144 | 0x2001: "0x2000", |
| 145 | 0x3000: "0x3000", |
| 146 | 0x312f: "0x3000", |
| 147 | }, |
| 148 | wantUnsymbolized: []uint64{0x0fff, 0x3130}, |
| 149 | }, |
| 150 | { |
| 151 | desc: "even symbol count", |
| 152 | nmOutput: ` |
| 153 | 0x1000 T 1000 100 |
| 154 | 0x2000 T 2000 120 |
| 155 | 0x3000 T 3000 130 |
| 156 | 0x4000 T 4000 140 |
| 157 | `, |
| 158 | wantSymbolized: map[uint64]string{ |
| 159 | 0x1000: "0x1000", |
| 160 | 0x1001: "0x1000", |
| 161 | 0x1FFF: "0x1000", |
| 162 | 0x2000: "0x2000", |
| 163 | 0x2fff: "0x2000", |
| 164 | 0x3000: "0x3000", |
| 165 | 0x3fff: "0x3000", |
| 166 | 0x4000: "0x4000", |
| 167 | 0x413f: "0x4000", |
| 168 | }, |
| 169 | wantUnsymbolized: []uint64{0x0fff, 0x4140}, |
| 170 | }, |
| 171 | { |
| 172 | desc: "different symbol types", |
| 173 | nmOutput: ` |
| 174 | absolute_0x100 a 100 |
| 175 | absolute_0x200 A 200 |
| 176 | text_0x1000 t 1000 100 |
| 177 | bss_0x2000 b 2000 120 |
| 178 | data_0x3000 d 3000 130 |
| 179 | rodata_0x4000 r 4000 140 |
| 180 | weak_0x5000 v 5000 150 |
| 181 | text_0x6000 T 6000 160 |
| 182 | bss_0x7000 B 7000 170 |
nothing calls this directly
no test coverage detected
searching dependent graphs…