From cedebfd2d93383fbc7925770b8dabb326d0ffe69 Mon Sep 17 00:00:00 2001 From: lisa neigut Date: Fri, 19 Jul 2019 19:18:26 -0500 Subject: [PATCH] bolt-gen: add truncated uint support for TLV fields TLV's have truncated values, add support for them. plus some 'compilation' tests. --- tools/generate-bolts.py | 12 +++++++++++- tools/test/test_cases | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tools/generate-bolts.py b/tools/generate-bolts.py index be50eb1de..9e271612d 100755 --- a/tools/generate-bolts.py +++ b/tools/generate-bolts.py @@ -153,10 +153,12 @@ class Type(FieldSet): 'u16', 'u32', 'u64', + 'tu16', + 'tu32', + 'tu64', 'bool', 'amount_sat', 'amount_msat', - # FIXME: omits var_int ] typedefs = [ @@ -168,6 +170,12 @@ class Type(FieldSet): 'secp256k1_ecdsa_signature', ] + truncated_typedefs = [ + 'tu16', + 'tu32', + 'tu64', + ] + # Externally defined variable size types (require a context) varsize_types = [ 'peer_features', @@ -238,6 +246,8 @@ class Type(FieldSet): def type_name(self): if self.name in self.typedefs: return self.name + if self.name in self.truncated_typedefs: + return self.name[1:] if self.is_enum: prefix = 'enum ' else: diff --git a/tools/test/test_cases b/tools/test/test_cases index e5dd3cf42..189b71bd8 100644 --- a/tools/test/test_cases +++ b/tools/test/test_cases @@ -96,6 +96,8 @@ subtypedata,test_features,globalfeatures,u8,len_gf # TLV's! tlvtype,n1,tlv1,1 +# a truncated u64 +tlvdata,n1,tlv1,amount_msat,tu64, tlvtype,n1,tlv2,2 # neseted subtype tlvdata,n1,tlv2,scid,test_short_id, @@ -106,7 +108,9 @@ tlvdata,n1,tlv3,amount_msat_2,u64, tlvtype,n1,tlv4,254 tlvdata,n1,tlv4,cltv_delta,u16, tlvtype,n2,tlv1,0 +tlvdata,n2,tlv1,amount_msat,tu64, tlvtype,n2,tlv2,11 +tlvdata,n2,tlv2,cltv_expiry,tu32, # TLV with all varsized and array structs tlvtype,n3,tlv3,1 tlvdata,n3,tlv3,subtype,test_short_id,