Browse Source
I'll eventually move the utils into a different location (maybe CCAN?) but for now I'm keeping it close to where it is used.ppa-0.6.1
Christian Decker
8 years ago
committed by
Rusty Russell
3 changed files with 71 additions and 15 deletions
@ -0,0 +1,24 @@ |
|||
#ifndef LIGHTNING_WALLET_TEST_UTILS_H |
|||
#define LIGHTNING_WALLET_TEST_UTILS_H |
|||
|
|||
/* Definitions "inspired" by libsecp256k1 */ |
|||
#define TEST_FAILURE(msg) do { \ |
|||
fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, msg); \ |
|||
return false; \ |
|||
} while(0) |
|||
|
|||
#ifdef HAVE_BUILTIN_EXPECT |
|||
#define EXPECT(x,c) __builtin_expect((x),(c)) |
|||
#else |
|||
#define EXPECT(x,c) (x) |
|||
#endif |
|||
|
|||
#define CHECK_MSG(cond,msg) do { \ |
|||
if (EXPECT(!(cond), 0)) { \ |
|||
TEST_FAILURE(msg); \ |
|||
} \ |
|||
} while(0) |
|||
|
|||
#define CHECK(cond) CHECK_MSG(cond,"test condition failed"); |
|||
|
|||
#endif /* LIGHTNING_WALLET_TEST_UTILS_H */ |
@ -0,0 +1,41 @@ |
|||
#include "wallet.c" |
|||
|
|||
#include "db.c" |
|||
#include "wallet/test_utils.h" |
|||
|
|||
#include <stdio.h> |
|||
#include <unistd.h> |
|||
|
|||
static bool test_wallet_add_utxo(void) |
|||
{ |
|||
char filename[] = "/tmp/ldb-XXXXXX"; |
|||
struct utxo u; |
|||
int fd = mkstemp(filename); |
|||
struct wallet *w = tal(NULL, struct wallet); |
|||
CHECK_MSG(fd != -1, "Unable to generate temp filename"); |
|||
close(fd); |
|||
|
|||
w->db = db_open(w, filename); |
|||
CHECK_MSG(w->db,"Failed opening the db"); |
|||
CHECK_MSG(db_migrate(w->db), "DB migration failed"); |
|||
|
|||
memset(&u, 0, sizeof(u)); |
|||
|
|||
/* Should work, it's the first time we add it */ |
|||
CHECK_MSG(wallet_add_utxo(w, &u, p2sh_wpkh), "wallet_add_utxo failed on first add"); |
|||
|
|||
/* Should fail, we already have that UTXO */ |
|||
CHECK_MSG(!wallet_add_utxo(w, &u, p2sh_wpkh), "wallet_add_utxo succeeded on second add"); |
|||
tal_free(w); |
|||
return true; |
|||
|
|||
} |
|||
|
|||
int main(void) |
|||
{ |
|||
bool ok = true; |
|||
|
|||
ok &= test_wallet_add_utxo(); |
|||
|
|||
return !ok; |
|||
} |
Loading…
Reference in new issue