You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.6 KiB

#include "daemon/channel.c"
#include "daemon/htlc.c"
#include "daemon/htlc_state.c"
#include <assert.h>
#include <stdio.h>
/* AUTOGENERATED MOCKS START */
/* Generated stub for db_new_htlc */
void db_new_htlc(struct peer *peer UNNEEDED, const struct htlc *htlc UNNEEDED)
{ fprintf(stderr, "db_new_htlc called!\n"); abort(); }
/* Generated stub for db_update_htlc_state */
void db_update_htlc_state(struct peer *peer UNNEEDED, const struct htlc *htlc UNNEEDED,
enum htlc_state oldstate UNNEEDED)
{ fprintf(stderr, "db_update_htlc_state called!\n"); abort(); }
/* Generated stub for log_ */
void log_(struct log *log UNNEEDED, enum log_level level UNNEEDED, const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "log_ called!\n"); abort(); }
/* Generated stub for peer_debug */
void peer_debug(struct peer *peer UNNEEDED, const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "peer_debug called!\n"); abort(); }
/* Could not find declaration for tal_hexstr */
/* Could not find declaration for type_to_string_ */
/* AUTOGENERATED MOCKS END */
static void test_maxfee(size_t htlcs, u64 funds)
{
struct channel_state cstate;
uint64_t maxrate;
cstate.side[LOCAL].pay_msat = funds;
cstate.side[LOCAL].fee_msat = 0;
cstate.num_nondust = htlcs;
maxrate = approx_max_feerate(&cstate, LOCAL);
assert(fee_by_feerate(tx_bytes(htlcs), maxrate) <= funds);
}
int main(void)
{
size_t htlcs, i;
for (htlcs = 0; htlcs < 600; htlcs++) {
for (i = 0; i < 32; i++) {
test_maxfee(htlcs, i);
test_maxfee(htlcs, 1ULL << i);
test_maxfee(htlcs, (1ULL << i) - 1);
test_maxfee(htlcs, (1ULL << i) + 1);
}
}
return 0;
}