mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-23 09:04:22 +01:00
daemon: first unit test, infrastructure.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
45
daemon/test/run-maxfee.c
Normal file
45
daemon/test/run-maxfee.c
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "daemon/channel.c"
|
||||
#include "daemon/htlc.c"
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/* AUTOGENERATED MOCKS START */
|
||||
/* Generated stub for db_new_htlc */
|
||||
bool db_new_htlc(struct peer *peer, const struct htlc *htlc)
|
||||
{ fprintf(stderr, "db_new_htlc called!\n"); abort(); }
|
||||
/* Generated stub for db_update_htlc_state */
|
||||
bool db_update_htlc_state(struct peer *peer, const struct htlc *htlc,
|
||||
enum htlc_state oldstate)
|
||||
{ fprintf(stderr, "db_update_htlc_state called!\n"); abort(); }
|
||||
/* Generated stub for log_ */
|
||||
void log_(struct log *log, enum log_level level, const char *fmt, ...)
|
||||
|
||||
{ fprintf(stderr, "log_ called!\n"); abort(); }
|
||||
/* 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;
|
||||
}
|
||||
Reference in New Issue
Block a user