@ -431,7 +431,7 @@ static void advanced(void)
p_opt ( " msat_opt2 " , json_tok_msat , & msat_opt2 ) ,
NULL ) ) ;
assert ( label ! = NULL ) ;
assert ( ! strcmp ( label - > s , " lightning " ) ) ;
assert ( streq ( label - > s , " lightning " ) ) ;
assert ( * msat = = 24 ) ;
assert ( tok ) ;
assert ( msat_opt1 ) ;
@ -445,8 +445,8 @@ static void advanced(void)
p_req ( " label " , json_tok_label , & label ) ,
p_opt ( " foo " , json_tok_label , & foo ) ,
NULL ) ) ;
assert ( ! strcmp ( label - > s , " 3 " ) ) ;
assert ( ! strcmp ( foo - > s , " foo " ) ) ;
assert ( streq ( label - > s , " 3 " ) ) ;
assert ( streq ( foo - > s , " foo " ) ) ;
}
{
u64 * msat ;
@ -507,6 +507,54 @@ static void json_tok_tests(void)
test_cb ( json_tok_percent , double , " [ 'wow' ] " , 0 , false ) ;
}
static void test_invoice ( struct command * cmd , const char * buffer ,
const jsmntok_t * params )
{
u64 * msatoshi_val ;
struct json_escaped * label_val ;
const char * desc_val ;
u64 * expiry ;
const jsmntok_t * fallbacks ;
const jsmntok_t * preimagetok ;
assert ( cmd - > mode = = CMD_USAGE ) ;
if ( ! param ( cmd , buffer , params ,
p_req ( " msatoshi " , json_tok_msat , & msatoshi_val ) ,
p_req ( " label " , json_tok_label , & label_val ) ,
p_req ( " description " , json_tok_escaped_string , & desc_val ) ,
p_opt ( " expiry " , json_tok_u64 , & expiry ) ,
p_opt ( " fallbacks " , json_tok_array , & fallbacks ) ,
p_opt ( " preimage " , json_tok_tok , & preimagetok ) , NULL ) )
return ;
/* should not be here since we are in the mode of CMD_USAGE
* and it always returns false . */
abort ( ) ;
}
static void usage ( void )
{
/* Do this to simulate a call to our pretend handler (test_invoice) */
struct json_command invoice_command = {
" invoice " ,
test_invoice ,
" " ,
false ,
" "
} ;
cmd - > mode = CMD_USAGE ;
cmd - > json_cmd = & invoice_command ;
cmd - > json_cmd - > dispatch ( cmd , NULL , NULL ) ;
assert ( streq ( cmd - > usage ,
" msatoshi label description "
" [expiry] [fallbacks] [preimage] " ) ) ;
cmd - > mode = CMD_NORMAL ;
}
int main ( void )
{
setup_locale ( ) ;
@ -528,6 +576,8 @@ int main(void)
advanced ( ) ;
advanced_fail ( ) ;
json_tok_tests ( ) ;
usage ( ) ;
tal_free ( tmpctx ) ;
printf ( " run-params ok \n " ) ;
}