* Check to make sure there are no programming mistakes. */
| 302 | * Check to make sure there are no programming mistakes. |
| 303 | */ |
| 304 | static void bad_programmer(void) |
| 305 | { |
| 306 | u64 *ival; |
| 307 | u64 *ival2; |
| 308 | u64 *fpval; |
| 309 | struct json *j = json_parse(cmd, "[ '25', '546', '26' ]"); |
| 310 | |
| 311 | /* check for repeated names */ |
| 312 | assert(!param(cmd, j->buffer, j->toks, |
| 313 | p_req("repeat", param_u64, &ival), |
| 314 | p_req("fp", param_millionths, &fpval), |
| 315 | p_req("repeat", param_u64, &ival2), NULL)); |
| 316 | assert(check_fail()); |
| 317 | assert(strstr(fail_msg, "developer error")); |
| 318 | |
| 319 | assert(!param(cmd, j->buffer, j->toks, |
| 320 | p_req("repeat", param_u64, &ival), |
| 321 | p_req("fp", param_millionths, &fpval), |
| 322 | p_req("repeat", param_u64, &ival), NULL)); |
| 323 | assert(check_fail()); |
| 324 | assert(strstr(fail_msg, "developer error")); |
| 325 | |
| 326 | assert(!param(cmd, j->buffer, j->toks, |
| 327 | p_req("u64", param_u64, &ival), |
| 328 | p_req("repeat", param_millionths, &fpval), |
| 329 | p_req("repeat", param_millionths, &fpval), NULL)); |
| 330 | assert(check_fail()); |
| 331 | assert(strstr(fail_msg, "developer error")); |
| 332 | |
| 333 | /* check for repeated arguments */ |
| 334 | assert(!param(cmd, j->buffer, j->toks, |
| 335 | p_req("u64", param_u64, &ival), |
| 336 | p_req("repeated-arg", param_u64, &ival), NULL)); |
| 337 | assert(check_fail()); |
| 338 | assert(strstr(fail_msg, "developer error")); |
| 339 | |
| 340 | assert(!param(cmd, j->buffer, j->toks, |
| 341 | p_req("u64", (param_cbx) NULL, NULL), NULL)); |
| 342 | assert(check_fail()); |
| 343 | assert(strstr(fail_msg, "developer error")); |
| 344 | |
| 345 | /* Add required param after optional */ |
| 346 | j = json_parse(cmd, "[ '25', '546', '26', '1.1' ]"); |
| 347 | unsigned int *msatoshi; |
| 348 | u64 *riskfactor_millionths; |
| 349 | assert(!param( |
| 350 | cmd, j->buffer, j->toks, p_req("u64", param_u64, &ival), |
| 351 | p_req("fp", param_millionths, &fpval), |
| 352 | p_opt_def("msatoshi", param_number, &msatoshi, 100), |
| 353 | p_req("riskfactor", param_millionths, &riskfactor_millionths), |
| 354 | NULL)); |
| 355 | assert(*msatoshi); |
| 356 | assert(*msatoshi == 100); |
| 357 | assert(check_fail()); |
| 358 | assert(strstr(fail_msg, "developer error")); |
| 359 | } |
| 360 | #endif |
| 361 |
no test coverage detected