#include "config.h" #include "../bolt12.c" #include "../bigsize.c" #include "../../wire/fromwire.c" #include #include /* AUTOGENERATED MOCKS START */ /* Generated stub for amount_asset_is_main */ bool amount_asset_is_main(struct amount_asset *asset UNNEEDED) { fprintf(stderr, "amount_asset_is_main called!\n"); abort(); } /* Generated stub for amount_asset_to_sat */ struct amount_sat amount_asset_to_sat(struct amount_asset *asset UNNEEDED) { fprintf(stderr, "amount_asset_to_sat called!\n"); abort(); } /* Generated stub for amount_sat */ struct amount_sat amount_sat(u64 satoshis UNNEEDED) { fprintf(stderr, "amount_sat called!\n"); abort(); } /* Generated stub for amount_sat_add */ bool amount_sat_add(struct amount_sat *val UNNEEDED, struct amount_sat a UNNEEDED, struct amount_sat b UNNEEDED) { fprintf(stderr, "amount_sat_add called!\n"); abort(); } /* Generated stub for amount_sat_eq */ bool amount_sat_eq(struct amount_sat a UNNEEDED, struct amount_sat b UNNEEDED) { fprintf(stderr, "amount_sat_eq called!\n"); abort(); } /* Generated stub for amount_sat_greater_eq */ bool amount_sat_greater_eq(struct amount_sat a UNNEEDED, struct amount_sat b UNNEEDED) { fprintf(stderr, "amount_sat_greater_eq called!\n"); abort(); } /* Generated stub for amount_sat_sub */ bool amount_sat_sub(struct amount_sat *val UNNEEDED, struct amount_sat a UNNEEDED, struct amount_sat b UNNEEDED) { fprintf(stderr, "amount_sat_sub called!\n"); abort(); } /* Generated stub for amount_sat_to_asset */ struct amount_asset amount_sat_to_asset(struct amount_sat *sat UNNEEDED, const u8 *asset UNNEEDED) { fprintf(stderr, "amount_sat_to_asset called!\n"); abort(); } /* Generated stub for amount_tx_fee */ struct amount_sat amount_tx_fee(u32 fee_per_kw UNNEEDED, size_t weight UNNEEDED) { fprintf(stderr, "amount_tx_fee called!\n"); abort(); } /* Generated stub for features_unsupported */ int features_unsupported(const struct feature_set *our_features UNNEEDED, const u8 *their_features UNNEEDED, enum feature_place p UNNEEDED) { fprintf(stderr, "features_unsupported called!\n"); abort(); } /* Generated stub for from_bech32_charset */ bool from_bech32_charset(const tal_t *ctx UNNEEDED, const char *bech32 UNNEEDED, size_t bech32_len UNNEEDED, char **hrp UNNEEDED, u8 **data UNNEEDED) { fprintf(stderr, "from_bech32_charset called!\n"); abort(); } /* Generated stub for fromwire_tlv_invoice */ struct tlv_invoice *fromwire_tlv_invoice(const tal_t *ctx UNNEEDED, const u8 **cursor UNNEEDED, size_t *max UNNEEDED) { fprintf(stderr, "fromwire_tlv_invoice called!\n"); abort(); } /* Generated stub for fromwire_tlv_invoice_request */ struct tlv_invoice_request *fromwire_tlv_invoice_request(const tal_t *ctx UNNEEDED, const u8 **cursor UNNEEDED, size_t *max UNNEEDED) { fprintf(stderr, "fromwire_tlv_invoice_request called!\n"); abort(); } /* Generated stub for fromwire_tlv_offer */ struct tlv_offer *fromwire_tlv_offer(const tal_t *ctx UNNEEDED, const u8 **cursor UNNEEDED, size_t *max UNNEEDED) { fprintf(stderr, "fromwire_tlv_offer called!\n"); abort(); } /* Generated stub for merkle_tlv */ void merkle_tlv(const struct tlv_field *fields UNNEEDED, struct sha256 *merkle UNNEEDED) { fprintf(stderr, "merkle_tlv called!\n"); abort(); } /* Generated stub for sighash_from_merkle */ void sighash_from_merkle(const char *messagename UNNEEDED, const char *fieldname UNNEEDED, const struct sha256 *merkle UNNEEDED, struct sha256 *sighash UNNEEDED) { fprintf(stderr, "sighash_from_merkle called!\n"); abort(); } /* Generated stub for to_bech32_charset */ char *to_bech32_charset(const tal_t *ctx UNNEEDED, const char *hrp UNNEEDED, const u8 *data UNNEEDED) { fprintf(stderr, "to_bech32_charset called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } /* Generated stub for towire_bool */ void towire_bool(u8 **pptr UNNEEDED, bool v UNNEEDED) { fprintf(stderr, "towire_bool called!\n"); abort(); } /* Generated stub for towire_secp256k1_ecdsa_signature */ void towire_secp256k1_ecdsa_signature(u8 **pptr UNNEEDED, const secp256k1_ecdsa_signature *signature UNNEEDED) { fprintf(stderr, "towire_secp256k1_ecdsa_signature called!\n"); abort(); } /* Generated stub for towire_sha256 */ void towire_sha256(u8 **pptr UNNEEDED, const struct sha256 *sha256 UNNEEDED) { fprintf(stderr, "towire_sha256 called!\n"); abort(); } /* Generated stub for towire_tlv_invoice */ void towire_tlv_invoice(u8 **pptr UNNEEDED, const struct tlv_invoice *record UNNEEDED) { fprintf(stderr, "towire_tlv_invoice called!\n"); abort(); } /* Generated stub for towire_tlv_invoice_request */ void towire_tlv_invoice_request(u8 **pptr UNNEEDED, const struct tlv_invoice_request *record UNNEEDED) { fprintf(stderr, "towire_tlv_invoice_request called!\n"); abort(); } /* Generated stub for towire_tlv_offer */ void towire_tlv_offer(u8 **pptr UNNEEDED, const struct tlv_offer *record UNNEEDED) { fprintf(stderr, "towire_tlv_offer called!\n"); abort(); } /* Generated stub for towire_u32 */ void towire_u32(u8 **pptr UNNEEDED, u32 v UNNEEDED) { fprintf(stderr, "towire_u32 called!\n"); abort(); } /* Generated stub for towire_u64 */ void towire_u64(u8 **pptr UNNEEDED, u64 v UNNEEDED) { fprintf(stderr, "towire_u64 called!\n"); abort(); } /* Generated stub for towire_u8 */ void towire_u8(u8 **pptr UNNEEDED, u8 v UNNEEDED) { fprintf(stderr, "towire_u8 called!\n"); abort(); } /* Generated stub for towire_u8_array */ void towire_u8_array(u8 **pptr UNNEEDED, const u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "towire_u8_array called!\n"); abort(); } /* AUTOGENERATED MOCKS END */ int main(int argc, char *argv[]) { u8 *wire; size_t len, start; common_setup(argv[0]); wire = tal_hexdata(tmpctx, "0010b8538094dbd70d8a0f0439d8e64f766f022006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f0801020a0b73696d706c6520746573741621035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d502006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f582103aa144bcfb083a73e1f51416003083e63c6c68951c04733ab4d042d0cc2237f46f0408d43842db95b6377612674bb21e45ef4e1643289db27e32edb5c15422664b8ca7b052759729cafd7260634a6de053a292ca1859914a4b21e4b8e20e20d2f911b", strlen("0010b8538094dbd70d8a0f0439d8e64f766f022006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f0801020a0b73696d706c6520746573741621035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d502006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f582103aa144bcfb083a73e1f51416003083e63c6c68951c04733ab4d042d0cc2237f46f0408d43842db95b6377612674bb21e45ef4e1643289db27e32edb5c15422664b8ca7b052759729cafd7260634a6de053a292ca1859914a4b21e4b8e20e20d2f911b")); len = tlv_span(wire, 0, UINT64_MAX, &start); assert(start == 0); assert(len == tal_bytelen(wire)); len = tlv_span(wire, 1, UINT64_MAX, &start); assert(start == strlen("0010b8538094dbd70d8a0f0439d8e64f766f") / 2); assert(len == tal_bytelen(wire) - start); len = tlv_span(wire, 0, 1, &start); assert(start == 0); assert(len == strlen("0010b8538094dbd70d8a0f0439d8e64f766f") / 2); common_shutdown(); return 0; }