Add tests for MsgBlock transaction location decode.
This commit is contained in:
parent
c9d2dfea3d
commit
4e16030fe8
2 changed files with 37 additions and 7 deletions
|
@ -124,16 +124,18 @@ func TestBlockSha(t *testing.T) {
|
||||||
// of transaction inputs and outputs and protocol versions.
|
// of transaction inputs and outputs and protocol versions.
|
||||||
func TestBlockWire(t *testing.T) {
|
func TestBlockWire(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
in *btcwire.MsgBlock // Message to encode
|
in *btcwire.MsgBlock // Message to encode
|
||||||
out *btcwire.MsgBlock // Expected decoded message
|
out *btcwire.MsgBlock // Expected decoded message
|
||||||
buf []byte // Wire encoding
|
buf []byte // Wire encoding
|
||||||
pver uint32 // Protocol version for wire encoding
|
txLocs []btcwire.TxLoc // Expected transaction locations
|
||||||
|
pver uint32 // Protocol version for wire encoding
|
||||||
}{
|
}{
|
||||||
// Latest protocol version.
|
// Latest protocol version.
|
||||||
{
|
{
|
||||||
&blockOne,
|
&blockOne,
|
||||||
&blockOne,
|
&blockOne,
|
||||||
blockOneBytes,
|
blockOneBytes,
|
||||||
|
blockOneTxLocs,
|
||||||
btcwire.ProtocolVersion,
|
btcwire.ProtocolVersion,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -142,6 +144,7 @@ func TestBlockWire(t *testing.T) {
|
||||||
&blockOne,
|
&blockOne,
|
||||||
&blockOne,
|
&blockOne,
|
||||||
blockOneBytes,
|
blockOneBytes,
|
||||||
|
blockOneTxLocs,
|
||||||
btcwire.BIP0035Version,
|
btcwire.BIP0035Version,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -150,6 +153,7 @@ func TestBlockWire(t *testing.T) {
|
||||||
&blockOne,
|
&blockOne,
|
||||||
&blockOne,
|
&blockOne,
|
||||||
blockOneBytes,
|
blockOneBytes,
|
||||||
|
blockOneTxLocs,
|
||||||
btcwire.BIP0031Version,
|
btcwire.BIP0031Version,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -158,6 +162,7 @@ func TestBlockWire(t *testing.T) {
|
||||||
&blockOne,
|
&blockOne,
|
||||||
&blockOne,
|
&blockOne,
|
||||||
blockOneBytes,
|
blockOneBytes,
|
||||||
|
blockOneTxLocs,
|
||||||
btcwire.NetAddressTimeVersion,
|
btcwire.NetAddressTimeVersion,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -166,6 +171,7 @@ func TestBlockWire(t *testing.T) {
|
||||||
&blockOne,
|
&blockOne,
|
||||||
&blockOne,
|
&blockOne,
|
||||||
blockOneBytes,
|
blockOneBytes,
|
||||||
|
blockOneTxLocs,
|
||||||
btcwire.MultipleAddressVersion,
|
btcwire.MultipleAddressVersion,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -198,6 +204,24 @@ func TestBlockWire(t *testing.T) {
|
||||||
spew.Sdump(&msg), spew.Sdump(test.out))
|
spew.Sdump(&msg), spew.Sdump(test.out))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var txLocMsg btcwire.MsgBlock
|
||||||
|
rbuf = bytes.NewBuffer(test.buf)
|
||||||
|
txLocs, err := txLocMsg.BtcDecodeTxLoc(rbuf, test.pver)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("BtcDecodeTxLoc #%d error %v", i, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(&txLocMsg, test.out) {
|
||||||
|
t.Errorf("BtcDecodeTxLoc #%d\n got: %s want: %s", i,
|
||||||
|
spew.Sdump(&txLocMsg), spew.Sdump(test.out))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(txLocs, test.txLocs) {
|
||||||
|
t.Errorf("BtcDecodeTxLoc #%d\n got: %s want: %s", i,
|
||||||
|
spew.Sdump(txLocs), spew.Sdump(test.txLocs))
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,7 +342,7 @@ var blockOne btcwire.MsgBlock = btcwire.MsgBlock{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bytes encoded with protocol version 60002.
|
// Block one bytes encoded with protocol version 60002.
|
||||||
var blockOneBytes = []byte{
|
var blockOneBytes = []byte{
|
||||||
0x01, 0x00, 0x00, 0x00, // Version 1
|
0x01, 0x00, 0x00, 0x00, // Version 1
|
||||||
0x6f, 0xe2, 0x8c, 0x0a, 0xb6, 0xf1, 0xb3, 0x72,
|
0x6f, 0xe2, 0x8c, 0x0a, 0xb6, 0xf1, 0xb3, 0x72,
|
||||||
|
@ -359,3 +383,9 @@ var blockOneBytes = []byte{
|
||||||
0xac, // OP_CHECKSIG
|
0xac, // OP_CHECKSIG
|
||||||
0x00, 0x00, 0x00, 0x00, // Lock time
|
0x00, 0x00, 0x00, 0x00, // Lock time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Transaction location information for block one trasnactions as encoded with
|
||||||
|
// protocol version 60002.
|
||||||
|
var blockOneTxLocs = []btcwire.TxLoc{
|
||||||
|
btcwire.TxLoc{TxStart: 81, TxLen: 134},
|
||||||
|
}
|
||||||
|
|
|
@ -135,6 +135,7 @@ github.com/conformal/btcwire/msgversion.go MsgVersion.MaxPayloadLength 100.00
|
||||||
github.com/conformal/btcwire/msgversion.go NewMsgVersion 100.00% (1/1)
|
github.com/conformal/btcwire/msgversion.go NewMsgVersion 100.00% (1/1)
|
||||||
github.com/conformal/btcwire/netaddress.go NetAddress.AddService 100.00% (1/1)
|
github.com/conformal/btcwire/netaddress.go NetAddress.AddService 100.00% (1/1)
|
||||||
github.com/conformal/btcwire/shahash.go ShaHash.IsEqual 100.00% (1/1)
|
github.com/conformal/btcwire/shahash.go ShaHash.IsEqual 100.00% (1/1)
|
||||||
|
github.com/conformal/btcwire/msgblock.go MsgBlock.BtcDecodeTxLoc 87.50% (14/16)
|
||||||
github.com/conformal/btcwire/msgblock.go MsgBlock.TxShas 85.71% (6/7)
|
github.com/conformal/btcwire/msgblock.go MsgBlock.TxShas 85.71% (6/7)
|
||||||
github.com/conformal/btcwire/msgtx.go MsgTx.TxSha 85.71% (6/7)
|
github.com/conformal/btcwire/msgtx.go MsgTx.TxSha 85.71% (6/7)
|
||||||
github.com/conformal/btcwire/msgtx.go MsgTx.BtcDecode 80.00% (20/25)
|
github.com/conformal/btcwire/msgtx.go MsgTx.BtcDecode 80.00% (20/25)
|
||||||
|
@ -148,6 +149,5 @@ github.com/conformal/btcwire/msgtx.go writeTxIn 73.33% (11/15)
|
||||||
github.com/conformal/btcwire/msgtx.go writeTxOut 72.73% (8/11)
|
github.com/conformal/btcwire/msgtx.go writeTxOut 72.73% (8/11)
|
||||||
github.com/conformal/btcwire/msgversion.go MsgVersion.BtcDecode 68.00% (17/25)
|
github.com/conformal/btcwire/msgversion.go MsgVersion.BtcDecode 68.00% (17/25)
|
||||||
github.com/conformal/btcwire/msgversion.go MsgVersion.BtcEncode 63.64% (14/22)
|
github.com/conformal/btcwire/msgversion.go MsgVersion.BtcEncode 63.64% (14/22)
|
||||||
github.com/conformal/btcwire/msgblock.go MsgBlock.BtcDecodeTxLoc 0.00% (0/16)
|
github.com/conformal/btcwire --------------------------------- 94.84% (882/930)
|
||||||
github.com/conformal/btcwire --------------------------------- 93.33% (868/930)
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue