| 213 | } |
| 214 | |
| 215 | static void test_feature_trim(void) |
| 216 | { |
| 217 | struct feature_set *f; |
| 218 | |
| 219 | /* cppcheck-suppress uninitvar - false positive on f->bits */ |
| 220 | for (size_t i = 0; i < ARRAY_SIZE(f->bits); i++) { |
| 221 | f = talz(tmpctx, struct feature_set); |
| 222 | |
| 223 | f->bits[i] = tal_arr(f, u8, 0); |
| 224 | set_feature_bit(&f->bits[i], 255); |
| 225 | assert(tal_bytelen(f->bits[i]) == 32); |
| 226 | clear_feature_bit(f->bits[i], 255); |
| 227 | trim_features(&f->bits[i]); |
| 228 | assert(tal_bytelen(f->bits[i]) == 0); |
| 229 | |
| 230 | set_feature_bit(&f->bits[i], 7); |
| 231 | assert(tal_bytelen(f->bits[i]) == 1); |
| 232 | set_feature_bit(&f->bits[i], 255); |
| 233 | assert(tal_bytelen(f->bits[i]) == 32); |
| 234 | clear_feature_bit(f->bits[i], 255); |
| 235 | trim_features(&f->bits[i]); |
| 236 | assert(tal_bytelen(f->bits[i]) == 1); |
| 237 | clear_feature_bit(f->bits[i], 7); |
| 238 | trim_features(&f->bits[i]); |
| 239 | assert(tal_bytelen(f->bits[i]) == 0); |
| 240 | |
| 241 | set_feature_bit(&f->bits[i], 8); |
| 242 | set_feature_bit(&f->bits[i], 10); |
| 243 | assert(tal_bytelen(f->bits[i]) == 2); |
| 244 | clear_feature_bit(f->bits[i], 10); |
| 245 | trim_features(&f->bits[i]); |
| 246 | assert(tal_bytelen(f->bits[i]) == 2); |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | int main(int argc, char *argv[]) |
| 251 | { |
no test coverage detected