Neels Hofmeyr | 7dde1f4 | 2020-05-11 19:43:20 +0200 | [diff] [blame] | 1 | |
| 2 | osmo_tmsi_nri_v_get(0x00000000, 10) -> nri_v=0x0 rc=0 |
| 3 | ........|NRI->.................. |
| 4 | 00000000000000000000000000000000 tmsi nri_bitlen=10 |
| 5 | 0000000000 = 0x0 ok |
| 6 | osmo_tmsi_nri_v_set(0x00000000, 0x0, 10) -> tmsi=0x00000000 rc=0 |
| 7 | 0000000000 |
| 8 | 00000000000000000000000000000000 ok |
| 9 | |
| 10 | osmo_tmsi_nri_v_get(0x00000000, 10) -> nri_v=0x0 rc=0 |
| 11 | ........|NRI->.................. |
| 12 | 00000000000000000000000000000000 tmsi nri_bitlen=10 |
| 13 | 0000000000 = 0x0 ok |
| 14 | osmo_tmsi_nri_v_set(0x00000000, 0x7fff, 10) -> tmsi=0x00ffc000 rc=0 |
| 15 | 1111111111 |
| 16 | 00000000111111111100000000000000 ok |
| 17 | |
| 18 | osmo_tmsi_nri_v_get(0xffffffff, 10) -> nri_v=0x3ff rc=0 |
| 19 | ........|NRI->.................. |
| 20 | 11111111111111111111111111111111 tmsi nri_bitlen=10 |
| 21 | 1111111111 = 0x3ff ok |
| 22 | osmo_tmsi_nri_v_set(0xffffffff, 0x0, 10) -> tmsi=0xff003fff rc=0 |
| 23 | 0000000000 |
| 24 | 11111111000000000011111111111111 ok |
| 25 | |
| 26 | osmo_tmsi_nri_v_get(0xffffffff, 10) -> nri_v=0x3ff rc=0 |
| 27 | ........|NRI->.................. |
| 28 | 11111111111111111111111111111111 tmsi nri_bitlen=10 |
| 29 | 1111111111 = 0x3ff ok |
| 30 | osmo_tmsi_nri_v_set(0xffffffff, 0x7fff, 10) -> tmsi=0xffffffff rc=0 |
| 31 | 1111111111 |
| 32 | 11111111111111111111111111111111 ok |
| 33 | |
| 34 | osmo_tmsi_nri_v_get(0x00000000, 5) -> nri_v=0x0 rc=0 |
| 35 | ........|NRI->.................. |
| 36 | 00000000000000000000000000000000 tmsi nri_bitlen=5 |
| 37 | 00000 = 0x0 ok |
| 38 | osmo_tmsi_nri_v_set(0x00000000, 0x0, 5) -> tmsi=0x00000000 rc=0 |
| 39 | 00000 |
| 40 | 00000000000000000000000000000000 ok |
| 41 | |
| 42 | osmo_tmsi_nri_v_get(0x00000000, 5) -> nri_v=0x0 rc=0 |
| 43 | ........|NRI->.................. |
| 44 | 00000000000000000000000000000000 tmsi nri_bitlen=5 |
| 45 | 00000 = 0x0 ok |
| 46 | osmo_tmsi_nri_v_set(0x00000000, 0x7fff, 5) -> tmsi=0x00f80000 rc=0 |
| 47 | 11111 |
| 48 | 00000000111110000000000000000000 ok |
| 49 | |
| 50 | osmo_tmsi_nri_v_get(0xffffffff, 5) -> nri_v=0x1f rc=0 |
| 51 | ........|NRI->.................. |
| 52 | 11111111111111111111111111111111 tmsi nri_bitlen=5 |
| 53 | 11111 = 0x1f ok |
| 54 | osmo_tmsi_nri_v_set(0xffffffff, 0x0, 5) -> tmsi=0xff07ffff rc=0 |
| 55 | 00000 |
| 56 | 11111111000001111111111111111111 ok |
| 57 | |
| 58 | osmo_tmsi_nri_v_get(0xffffffff, 5) -> nri_v=0x1f rc=0 |
| 59 | ........|NRI->.................. |
| 60 | 11111111111111111111111111111111 tmsi nri_bitlen=5 |
| 61 | 11111 = 0x1f ok |
| 62 | osmo_tmsi_nri_v_set(0xffffffff, 0x7fff, 5) -> tmsi=0xffffffff rc=0 |
| 63 | 11111 |
| 64 | 11111111111111111111111111111111 ok |
| 65 | |
| 66 | osmo_tmsi_nri_v_get(0x01234567, 8) -> nri_v=0x23 rc=0 |
| 67 | ........|NRI->.................. |
| 68 | 00000001001000110100010101100111 tmsi nri_bitlen=8 |
| 69 | 00100011 = 0x23 ok |
| 70 | osmo_tmsi_nri_v_set(0x01234567, 0x42, 8) -> tmsi=0x01424567 rc=0 |
| 71 | 01000010 |
| 72 | 00000001010000100100010101100111 ok |
| 73 | |
| 74 | osmo_tmsi_nri_v_get(0x01234567, 15) -> nri_v=0x11a2 rc=0 |
| 75 | ........|NRI->.................. |
| 76 | 00000001001000110100010101100111 tmsi nri_bitlen=15 |
| 77 | 001000110100010 = 0x11a2 ok |
| 78 | osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 15) -> tmsi=0x01ffff67 rc=0 |
| 79 | 111111111111111 |
| 80 | 00000001111111111111111101100111 ok |
| 81 | |
| 82 | osmo_tmsi_nri_v_get(0x01234567, 16) -> nri_v=0xffffffff rc=-1 |
| 83 | ok |
| 84 | osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 16) -> tmsi=0x01234567 rc=-1 |
| 85 | ok |
| 86 | |
| 87 | osmo_tmsi_nri_v_get(0x01234567, 0) -> nri_v=0xffffffff rc=-1 |
| 88 | ok |
| 89 | osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 0) -> tmsi=0x01234567 rc=-1 |
| 90 | ok |
| 91 | |
| 92 | test_nri_validate() |
| 93 | osmo_nri_v_validate(-32768, 10) = -1 ok |
| 94 | osmo_nri_v_validate(-23, 10) = -1 ok |
| 95 | osmo_nri_v_validate(-1, 10) = -1 ok |
| 96 | osmo_nri_v_validate(0, 10) = 0 ok |
| 97 | osmo_nri_v_validate(1023, 10) = 0 ok |
| 98 | osmo_nri_v_validate(1024, 10) = 1 ok |
| 99 | osmo_nri_v_validate(32767, 10) = 1 ok |
| 100 | osmo_nri_v_validate(-32768, 5) = -1 ok |
| 101 | osmo_nri_v_validate(-23, 5) = -1 ok |
| 102 | osmo_nri_v_validate(-1, 5) = -1 ok |
| 103 | osmo_nri_v_validate(0, 5) = 0 ok |
| 104 | osmo_nri_v_validate(31, 5) = 0 ok |
| 105 | osmo_nri_v_validate(32, 5) = 1 ok |
| 106 | osmo_nri_v_validate(32767, 5) = 1 ok |
| 107 | osmo_nri_v_validate(-32768, 1) = -1 ok |
| 108 | osmo_nri_v_validate(-23, 1) = -1 ok |
| 109 | osmo_nri_v_validate(-1, 1) = -1 ok |
| 110 | osmo_nri_v_validate(0, 1) = 0 ok |
| 111 | osmo_nri_v_validate(1, 1) = 0 ok |
| 112 | osmo_nri_v_validate(2, 1) = 1 ok |
| 113 | osmo_nri_v_validate(32767, 1) = 1 ok |
| 114 | osmo_nri_v_validate(-32768, 0) = -1 ok |
| 115 | osmo_nri_v_validate(-23, 0) = -1 ok |
| 116 | osmo_nri_v_validate(-1, 0) = -1 ok |
| 117 | osmo_nri_v_validate(0, 0) = 1 ok |
| 118 | osmo_nri_v_validate(1, 0) = 1 ok |
| 119 | osmo_nri_v_validate(32767, 0) = 1 ok |
| 120 | |
| 121 | test_nri_range_validate() |
| 122 | osmo_nri_range_validate({-32768,-32768}, 10) = -1 ok |
| 123 | osmo_nri_range_validate({-23,-23}, 10) = -1 ok |
| 124 | osmo_nri_range_validate({-1,-1}, 10) = -1 ok |
| 125 | osmo_nri_range_validate({0,0}, 10) = 0 ok |
| 126 | osmo_nri_range_validate({1023,1023}, 10) = 0 ok |
| 127 | osmo_nri_range_validate({1024,1024}, 10) = 1 ok |
| 128 | osmo_nri_range_validate({32767,32767}, 10) = 1 ok |
| 129 | osmo_nri_range_validate({-32768,-32768}, 5) = -1 ok |
| 130 | osmo_nri_range_validate({-23,-23}, 5) = -1 ok |
| 131 | osmo_nri_range_validate({-1,-1}, 5) = -1 ok |
| 132 | osmo_nri_range_validate({0,0}, 5) = 0 ok |
| 133 | osmo_nri_range_validate({31,31}, 5) = 0 ok |
| 134 | osmo_nri_range_validate({32,32}, 5) = 1 ok |
| 135 | osmo_nri_range_validate({32767,32767}, 5) = 1 ok |
| 136 | osmo_nri_range_validate({-32768,-32768}, 1) = -1 ok |
| 137 | osmo_nri_range_validate({-23,-23}, 1) = -1 ok |
| 138 | osmo_nri_range_validate({-1,-1}, 1) = -1 ok |
| 139 | osmo_nri_range_validate({0,0}, 1) = 0 ok |
| 140 | osmo_nri_range_validate({1,1}, 1) = 0 ok |
| 141 | osmo_nri_range_validate({2,2}, 1) = 1 ok |
| 142 | osmo_nri_range_validate({32767,32767}, 1) = 1 ok |
| 143 | osmo_nri_range_validate({-32768,-32768}, 0) = -1 ok |
| 144 | osmo_nri_range_validate({-23,-23}, 0) = -1 ok |
| 145 | osmo_nri_range_validate({-1,-1}, 0) = -1 ok |
| 146 | osmo_nri_range_validate({0,0}, 0) = 1 ok |
| 147 | osmo_nri_range_validate({1,1}, 0) = 1 ok |
| 148 | osmo_nri_range_validate({32767,32767}, 0) = 1 ok |
| 149 | osmo_nri_range_validate({0,-32768}, 10) = -2 ok |
| 150 | osmo_nri_range_validate({0,-23}, 10) = -2 ok |
| 151 | osmo_nri_range_validate({0,-1}, 10) = -2 ok |
| 152 | osmo_nri_range_validate({0,0}, 10) = 0 ok |
| 153 | osmo_nri_range_validate({0,1023}, 10) = 0 ok |
| 154 | osmo_nri_range_validate({0,1024}, 10) = 2 ok |
| 155 | osmo_nri_range_validate({0,32767}, 10) = 2 ok |
| 156 | osmo_nri_range_validate({0,-32768}, 5) = -2 ok |
| 157 | osmo_nri_range_validate({0,-23}, 5) = -2 ok |
| 158 | osmo_nri_range_validate({0,-1}, 5) = -2 ok |
| 159 | osmo_nri_range_validate({0,0}, 5) = 0 ok |
| 160 | osmo_nri_range_validate({0,31}, 5) = 0 ok |
| 161 | osmo_nri_range_validate({0,32}, 5) = 2 ok |
| 162 | osmo_nri_range_validate({0,32767}, 5) = 2 ok |
| 163 | osmo_nri_range_validate({0,-32768}, 1) = -2 ok |
| 164 | osmo_nri_range_validate({0,-23}, 1) = -2 ok |
| 165 | osmo_nri_range_validate({0,-1}, 1) = -2 ok |
| 166 | osmo_nri_range_validate({0,0}, 1) = 0 ok |
| 167 | osmo_nri_range_validate({0,1}, 1) = 0 ok |
| 168 | osmo_nri_range_validate({0,2}, 1) = 2 ok |
| 169 | osmo_nri_range_validate({0,32767}, 1) = 2 ok |
| 170 | osmo_nri_range_validate({0,-32768}, 0) = 1 ok |
| 171 | osmo_nri_range_validate({0,-23}, 0) = 1 ok |
| 172 | osmo_nri_range_validate({0,-1}, 0) = 1 ok |
| 173 | osmo_nri_range_validate({0,0}, 0) = 1 ok |
| 174 | osmo_nri_range_validate({0,1}, 0) = 1 ok |
| 175 | osmo_nri_range_validate({0,32767}, 0) = 1 ok |
| 176 | osmo_nri_range_validate({0,0}, 10) = 0 ok |
| 177 | osmo_nri_range_validate({1,0}, 10) = -3 ok |
| 178 | osmo_nri_range_validate({1023,1023}, 10) = 0 ok |
| 179 | osmo_nri_range_validate({1023,1022}, 10) = -3 ok |
| 180 | osmo_nri_range_validate({1023,0}, 10) = -3 ok |
| 181 | osmo_nri_range_validate({0,0}, 5) = 0 ok |
| 182 | osmo_nri_range_validate({1,0}, 5) = -3 ok |
| 183 | osmo_nri_range_validate({31,31}, 5) = 0 ok |
| 184 | osmo_nri_range_validate({31,30}, 5) = -3 ok |
| 185 | osmo_nri_range_validate({31,0}, 5) = -3 ok |
| 186 | osmo_nri_range_validate({0,0}, 1) = 0 ok |
| 187 | osmo_nri_range_validate({1,1}, 1) = 0 ok |
| 188 | osmo_nri_range_validate({1,0}, 1) = -3 ok |
| 189 | |
| 190 | test_nri_list() |
| 191 | nri_ranges = { |
| 192 | }; |
| 193 | osmo_nri_v_matches_ranges(-32768) -> false |
| 194 | osmo_nri_v_matches_ranges(-1) -> false |
| 195 | osmo_nri_v_matches_ranges(0) -> false |
| 196 | osmo_nri_v_matches_ranges(32767) -> false |
| 197 | osmo_nri_v_matches_ranges(100) -> false |
| 198 | osmo_nri_range_overlaps_ranges(-32768, -1) -> false |
| 199 | osmo_nri_range_overlaps_ranges(-100, 100) -> false |
| 200 | osmo_nri_range_overlaps_ranges(10, 20) -> false |
| 201 | osmo_nri_ranges_add(100, 200) -> 0 |
| 202 | nri_ranges = { |
| 203 | { 100, 200 }, |
| 204 | }; |
| 205 | osmo_nri_v_matches_ranges(-32768) -> false |
| 206 | osmo_nri_v_matches_ranges(-1) -> false |
| 207 | osmo_nri_v_matches_ranges(0) -> false |
| 208 | osmo_nri_v_matches_ranges(32767) -> false |
| 209 | osmo_nri_v_matches_ranges(99) -> false |
| 210 | osmo_nri_v_matches_ranges(100) -> true |
| 211 | osmo_nri_v_matches_ranges(101) -> true |
| 212 | osmo_nri_v_matches_ranges(199) -> true |
| 213 | osmo_nri_v_matches_ranges(200) -> true |
| 214 | osmo_nri_v_matches_ranges(201) -> false |
| 215 | osmo_nri_range_overlaps_ranges(-32768, -1) -> false |
| 216 | osmo_nri_range_overlaps_ranges(-100, 100) -> true |
| 217 | osmo_nri_range_overlaps_ranges(10, 20) -> false |
| 218 | osmo_nri_range_overlaps_ranges(10, 99) -> false |
| 219 | osmo_nri_range_overlaps_ranges(10, 100) -> true |
| 220 | osmo_nri_range_overlaps_ranges(10, 150) -> true |
| 221 | osmo_nri_range_overlaps_ranges(99, 99) -> false |
| 222 | osmo_nri_range_overlaps_ranges(100, 100) -> true |
| 223 | osmo_nri_range_overlaps_ranges(150, 300) -> true |
| 224 | osmo_nri_range_overlaps_ranges(200, 300) -> true |
| 225 | osmo_nri_range_overlaps_ranges(201, 300) -> false |
| 226 | |
| 227 | del from start: |
| 228 | osmo_nri_ranges_del(0, 110) -> 0 |
| 229 | nri_ranges = { |
| 230 | { 111, 200 }, |
| 231 | }; |
| 232 | osmo_nri_ranges_del(111, 111) -> 0 |
| 233 | nri_ranges = { |
| 234 | { 112, 200 }, |
| 235 | }; |
| 236 | osmo_nri_ranges_del(112, 199) -> 0 |
| 237 | nri_ranges = { |
| 238 | { 200, 200 }, |
| 239 | }; |
| 240 | osmo_nri_v_matches_ranges(-32768) -> false |
| 241 | osmo_nri_v_matches_ranges(-1) -> false |
| 242 | osmo_nri_v_matches_ranges(0) -> false |
| 243 | osmo_nri_v_matches_ranges(32767) -> false |
| 244 | osmo_nri_v_matches_ranges(199) -> false |
| 245 | osmo_nri_v_matches_ranges(200) -> true |
| 246 | osmo_nri_v_matches_ranges(201) -> false |
| 247 | osmo_nri_range_overlaps_ranges(-32768, -1) -> false |
| 248 | osmo_nri_range_overlaps_ranges(-1000, 1000) -> true |
| 249 | osmo_nri_range_overlaps_ranges(0, 199) -> false |
| 250 | osmo_nri_range_overlaps_ranges(0, 200) -> true |
| 251 | osmo_nri_range_overlaps_ranges(0, 201) -> true |
| 252 | osmo_nri_range_overlaps_ranges(0, 1000) -> true |
| 253 | osmo_nri_range_overlaps_ranges(199, 199) -> false |
| 254 | osmo_nri_range_overlaps_ranges(200, 200) -> true |
| 255 | osmo_nri_range_overlaps_ranges(201, 201) -> false |
| 256 | |
| 257 | del from end: |
| 258 | osmo_nri_ranges_add(100, 200) -> 0 |
| 259 | nri_ranges = { |
| 260 | { 100, 200 }, |
| 261 | }; |
| 262 | osmo_nri_ranges_del(190, 32767) -> 0 |
| 263 | nri_ranges = { |
| 264 | { 100, 189 }, |
| 265 | }; |
| 266 | osmo_nri_ranges_del(189, 189) -> 0 |
| 267 | nri_ranges = { |
| 268 | { 100, 188 }, |
| 269 | }; |
| 270 | osmo_nri_ranges_del(101, 188) -> 0 |
| 271 | nri_ranges = { |
| 272 | { 100, 100 }, |
| 273 | }; |
| 274 | osmo_nri_v_matches_ranges(-32768) -> false |
| 275 | osmo_nri_v_matches_ranges(-1) -> false |
| 276 | osmo_nri_v_matches_ranges(0) -> false |
| 277 | osmo_nri_v_matches_ranges(32767) -> false |
| 278 | osmo_nri_v_matches_ranges(99) -> false |
| 279 | osmo_nri_v_matches_ranges(100) -> true |
| 280 | osmo_nri_v_matches_ranges(101) -> false |
| 281 | |
| 282 | del from middle: |
| 283 | osmo_nri_ranges_add(100, 200) -> 0 |
| 284 | nri_ranges = { |
| 285 | { 100, 200 }, |
| 286 | }; |
| 287 | osmo_nri_ranges_del(150, 160) -> 0 |
| 288 | nri_ranges = { |
| 289 | { 100, 149 }, |
| 290 | { 161, 200 }, |
| 291 | }; |
| 292 | osmo_nri_ranges_del(110, 120) -> 0 |
| 293 | nri_ranges = { |
| 294 | { 100, 109 }, |
| 295 | { 121, 149 }, |
| 296 | { 161, 200 }, |
| 297 | }; |
| 298 | osmo_nri_ranges_del(130, 130) -> 0 |
| 299 | nri_ranges = { |
| 300 | { 100, 109 }, |
| 301 | { 121, 129 }, |
| 302 | { 131, 149 }, |
| 303 | { 161, 200 }, |
| 304 | }; |
| 305 | osmo_nri_ranges_del(180, 190) -> 0 |
| 306 | nri_ranges = { |
| 307 | { 100, 109 }, |
| 308 | { 121, 129 }, |
| 309 | { 131, 149 }, |
| 310 | { 161, 179 }, |
| 311 | { 191, 200 }, |
| 312 | }; |
| 313 | osmo_nri_v_matches_ranges(-32768) -> false |
| 314 | osmo_nri_v_matches_ranges(-1) -> false |
| 315 | osmo_nri_v_matches_ranges(0) -> false |
| 316 | osmo_nri_v_matches_ranges(32767) -> false |
| 317 | osmo_nri_v_matches_ranges(99) -> false |
| 318 | osmo_nri_v_matches_ranges(100) -> true |
| 319 | osmo_nri_v_matches_ranges(109) -> true |
| 320 | osmo_nri_v_matches_ranges(110) -> false |
| 321 | osmo_nri_v_matches_ranges(120) -> false |
| 322 | osmo_nri_v_matches_ranges(121) -> true |
| 323 | osmo_nri_v_matches_ranges(129) -> true |
| 324 | osmo_nri_v_matches_ranges(130) -> false |
| 325 | osmo_nri_v_matches_ranges(131) -> true |
| 326 | osmo_nri_v_matches_ranges(148) -> true |
| 327 | osmo_nri_v_matches_ranges(149) -> true |
| 328 | osmo_nri_v_matches_ranges(150) -> false |
| 329 | osmo_nri_v_matches_ranges(160) -> false |
| 330 | osmo_nri_v_matches_ranges(161) -> true |
| 331 | osmo_nri_v_matches_ranges(170) -> true |
| 332 | osmo_nri_v_matches_ranges(179) -> true |
| 333 | osmo_nri_v_matches_ranges(180) -> false |
| 334 | osmo_nri_v_matches_ranges(185) -> false |
| 335 | osmo_nri_v_matches_ranges(190) -> false |
| 336 | osmo_nri_v_matches_ranges(191) -> true |
| 337 | osmo_nri_v_matches_ranges(195) -> true |
| 338 | osmo_nri_v_matches_ranges(200) -> true |
| 339 | osmo_nri_v_matches_ranges(201) -> false |
| 340 | osmo_nri_v_matches_ranges(1000) -> false |
| 341 | osmo_nri_range_overlaps_ranges(110, 120) -> false |
| 342 | osmo_nri_range_overlaps_ranges(110, 130) -> true |
| 343 | osmo_nri_range_overlaps_ranges(100, 200) -> true |
| 344 | |
| 345 | del across whole chunks: |
| 346 | osmo_nri_ranges_del(115, 185) -> 0 |
| 347 | nri_ranges = { |
| 348 | { 100, 109 }, |
| 349 | { 191, 200 }, |
| 350 | }; |
| 351 | osmo_nri_ranges_del(105, 195) -> 0 |
| 352 | nri_ranges = { |
| 353 | { 100, 104 }, |
| 354 | { 196, 200 }, |
| 355 | }; |
| 356 | osmo_nri_ranges_del(0, 1000) -> 0 |
| 357 | nri_ranges = { |
| 358 | }; |
| 359 | |
| 360 | add to join chunks: |
| 361 | osmo_nri_ranges_add(0, 100) -> 0 |
| 362 | nri_ranges = { |
| 363 | { 0, 100 }, |
| 364 | }; |
| 365 | osmo_nri_ranges_del(11, 19) -> 0 |
| 366 | nri_ranges = { |
| 367 | { 0, 10 }, |
| 368 | { 20, 100 }, |
| 369 | }; |
| 370 | osmo_nri_ranges_del(23, 23) -> 0 |
| 371 | nri_ranges = { |
| 372 | { 0, 10 }, |
| 373 | { 20, 22 }, |
| 374 | { 24, 100 }, |
| 375 | }; |
| 376 | osmo_nri_ranges_del(30, 41) -> 0 |
| 377 | nri_ranges = { |
| 378 | { 0, 10 }, |
| 379 | { 20, 22 }, |
| 380 | { 24, 29 }, |
| 381 | { 42, 100 }, |
| 382 | }; |
| 383 | osmo_nri_ranges_add(23, 23) -> 0 |
| 384 | nri_ranges = { |
| 385 | { 0, 10 }, |
| 386 | { 20, 29 }, |
| 387 | { 42, 100 }, |
| 388 | }; |
| 389 | osmo_nri_ranges_add(11, 41) -> 0 |
| 390 | nri_ranges = { |
| 391 | { 0, 100 }, |
| 392 | }; |
| 393 | osmo_nri_v_matches_ranges(0) -> true |
| 394 | osmo_nri_v_matches_ranges(10) -> true |
| 395 | osmo_nri_v_matches_ranges(11) -> true |
| 396 | osmo_nri_v_matches_ranges(24) -> true |
| 397 | osmo_nri_v_matches_ranges(41) -> true |
| 398 | osmo_nri_v_matches_ranges(42) -> true |
| 399 | osmo_nri_v_matches_ranges(100) -> true |
| 400 | osmo_nri_v_matches_ranges(101) -> false |
| 401 | |
| 402 | border cases: |
| 403 | osmo_nri_ranges_add(0, 0) -> 0 |
| 404 | nri_ranges = { |
| 405 | { 0, 100 }, |
| 406 | }; |
| 407 | osmo_nri_ranges_add(32767, 32767) -> 0 |
| 408 | nri_ranges = { |
| 409 | { 0, 100 }, |
| 410 | { 32767, 32767 }, |
| 411 | }; |
| 412 | osmo_nri_ranges_add(1, 32766) -> 0 |
| 413 | nri_ranges = { |
| 414 | { 0, 32767 }, |
| 415 | }; |
| 416 | osmo_nri_v_matches_ranges(-32768) -> false |
| 417 | osmo_nri_v_matches_ranges(-1) -> false |
| 418 | osmo_nri_v_matches_ranges(0) -> true |
| 419 | osmo_nri_v_matches_ranges(32767) -> true |
| 420 | osmo_nri_ranges_del(0, 0) -> 0 |
| 421 | nri_ranges = { |
| 422 | { 1, 32767 }, |
| 423 | }; |
| 424 | osmo_nri_ranges_del(32767, 32767) -> 0 |
| 425 | nri_ranges = { |
| 426 | { 1, 32766 }, |
| 427 | }; |
| 428 | osmo_nri_ranges_del(1, 32766) -> 0 |
| 429 | nri_ranges = { |
| 430 | }; |
| 431 | |
| 432 | range errors: |
| 433 | osmo_nri_ranges_add(-1, -1) -> -1 |
| 434 | nri_ranges = { |
| 435 | }; |
| 436 | osmo_nri_ranges_add(-20, -10) -> -1 |
| 437 | nri_ranges = { |
| 438 | }; |
| 439 | osmo_nri_ranges_add(100, 1) -> -1 |
| 440 | nri_ranges = { |
| 441 | }; |
| 442 | osmo_nri_ranges_add(0, 32767) -> 0 |
| 443 | nri_ranges = { |
| 444 | { 0, 32767 }, |
| 445 | }; |
| 446 | osmo_nri_ranges_del(-1, -1) -> -1 |
| 447 | nri_ranges = { |
| 448 | { 0, 32767 }, |
| 449 | }; |
| 450 | osmo_nri_ranges_del(-20, -10) -> -1 |
| 451 | nri_ranges = { |
| 452 | { 0, 32767 }, |
| 453 | }; |
| 454 | osmo_nri_ranges_del(100, 1) -> -1 |
| 455 | nri_ranges = { |
| 456 | { 0, 32767 }, |
| 457 | }; |
| 458 | |
| 459 | test_nri_limit_by_ranges() |
| 460 | osmo_nri_ranges_add(10, 10) -> 0 |
| 461 | nri_ranges = { |
| 462 | { 10, 10 }, |
| 463 | }; |
| 464 | osmo_nri_ranges_add(20, 21) -> 0 |
| 465 | nri_ranges = { |
| 466 | { 10, 10 }, |
| 467 | { 20, 21 }, |
| 468 | }; |
| 469 | osmo_nri_ranges_add(30, 32) -> 0 |
| 470 | nri_ranges = { |
| 471 | { 10, 10 }, |
| 472 | { 20, 21 }, |
| 473 | { 30, 32 }, |
| 474 | }; |
| 475 | osmo_nri_v_limit_by_ranges(0) -> nri_v=10 rc=0 ok |
| 476 | osmo_nri_v_limit_by_ranges(1) -> nri_v=20 rc=0 ok |
| 477 | osmo_nri_v_limit_by_ranges(2) -> nri_v=21 rc=0 ok |
| 478 | osmo_nri_v_limit_by_ranges(3) -> nri_v=30 rc=0 ok |
| 479 | osmo_nri_v_limit_by_ranges(4) -> nri_v=31 rc=0 ok |
| 480 | osmo_nri_v_limit_by_ranges(5) -> nri_v=32 rc=0 ok |
| 481 | osmo_nri_v_limit_by_ranges(6) -> nri_v=10 rc=0 ok |
| 482 | osmo_nri_v_limit_by_ranges(7) -> nri_v=20 rc=0 ok |
| 483 | osmo_nri_v_limit_by_ranges(8) -> nri_v=21 rc=0 ok |
| 484 | osmo_nri_v_limit_by_ranges(9) -> nri_v=30 rc=0 ok |
| 485 | osmo_nri_v_limit_by_ranges(10) -> nri_v=31 rc=0 ok |
| 486 | osmo_nri_v_limit_by_ranges(11) -> nri_v=32 rc=0 ok |
| 487 | osmo_nri_v_limit_by_ranges(12) -> nri_v=10 rc=0 ok |
| 488 | osmo_nri_v_limit_by_ranges(13) -> nri_v=20 rc=0 ok |
| 489 | osmo_nri_v_limit_by_ranges(14) -> nri_v=21 rc=0 ok |
| 490 | osmo_nri_v_limit_by_ranges(15) -> nri_v=30 rc=0 ok |
| 491 | osmo_nri_v_limit_by_ranges(16) -> nri_v=31 rc=0 ok |
| 492 | osmo_nri_v_limit_by_ranges(17) -> nri_v=32 rc=0 ok |
| 493 | osmo_nri_v_limit_by_ranges(18) -> nri_v=10 rc=0 ok |
| 494 | osmo_tmsi_nri_v_limit_by_ranges(0x00000000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok |
| 495 | osmo_tmsi_nri_v_limit_by_ranges(0x00010000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok |
| 496 | osmo_tmsi_nri_v_limit_by_ranges(0x00020000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok |
| 497 | osmo_tmsi_nri_v_limit_by_ranges(0x00030000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok |
| 498 | osmo_tmsi_nri_v_limit_by_ranges(0x00040000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok |
| 499 | osmo_tmsi_nri_v_limit_by_ranges(0x00050000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok |
| 500 | osmo_tmsi_nri_v_limit_by_ranges(0x00060000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok |
| 501 | osmo_tmsi_nri_v_limit_by_ranges(0x00070000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok |
| 502 | osmo_tmsi_nri_v_limit_by_ranges(0x00080000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok |
| 503 | osmo_tmsi_nri_v_limit_by_ranges(0x00090000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok |
| 504 | osmo_tmsi_nri_v_limit_by_ranges(0x000a0000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok |
| 505 | osmo_tmsi_nri_v_limit_by_ranges(0x000b0000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok |
| 506 | osmo_tmsi_nri_v_limit_by_ranges(0x000c0000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok |
| 507 | osmo_tmsi_nri_v_limit_by_ranges(0x000d0000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok |
| 508 | osmo_tmsi_nri_v_limit_by_ranges(0x000e0000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok |
| 509 | osmo_tmsi_nri_v_limit_by_ranges(0x000f0000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok |
| 510 | osmo_tmsi_nri_v_limit_by_ranges(0x00100000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok |
| 511 | osmo_tmsi_nri_v_limit_by_ranges(0x00110000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok |
| 512 | osmo_tmsi_nri_v_limit_by_ranges(0x00120000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok |
| 513 | |
| 514 | pass |