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