Merge branch 'master' into bcash
This commit is contained in:
commit
8d3c6ee92a
@ -21,6 +21,7 @@ var (
|
|||||||
// verifier functionality
|
// verifier functionality
|
||||||
verifylog = flag.String("verifylog", "", "path to logfile containing socket.io requests/responses")
|
verifylog = flag.String("verifylog", "", "path to logfile containing socket.io requests/responses")
|
||||||
wsurl = flag.String("wsurl", "", "URL of socket.io interface to verify")
|
wsurl = flag.String("wsurl", "", "URL of socket.io interface to verify")
|
||||||
|
newSocket = flag.Bool("newsocket", false, "Create new socket.io connection for each request")
|
||||||
)
|
)
|
||||||
|
|
||||||
type verifyStats struct {
|
type verifyStats struct {
|
||||||
@ -246,13 +247,18 @@ func verifyGetDetailedTransaction(t *testing.T, id int, lrs *logRequestResponse,
|
|||||||
bbi.Satoshis != li.Satoshis {
|
bbi.Satoshis != li.Satoshis {
|
||||||
return errors.Errorf("mismatch input %v %v, %v %v, %v %v", bbi.OutputIndex, li.OutputIndex, bbi.Sequence, li.Sequence, bbi.Satoshis, li.Satoshis)
|
return errors.Errorf("mismatch input %v %v, %v %v, %v %v", bbi.OutputIndex, li.OutputIndex, bbi.Sequence, li.Sequence, bbi.Satoshis, li.Satoshis)
|
||||||
}
|
}
|
||||||
|
// both must be null or both must not be null
|
||||||
if bbi.Address != nil && li.Address != nil {
|
if bbi.Address != nil && li.Address != nil {
|
||||||
if *bbi.Address != *li.Address {
|
if *bbi.Address != *li.Address {
|
||||||
return errors.Errorf("mismatch input Address %v %v", *bbi.Address, *li.Address)
|
return errors.Errorf("mismatch input Address %v %v", *bbi.Address, *li.Address)
|
||||||
}
|
}
|
||||||
} else if bbi.Address != li.Address {
|
} else if bbi.Address != li.Address {
|
||||||
return errors.Errorf("mismatch input Address %v %v", bbi.Address, li.Address)
|
// bitcore does not parse bech P2WPKH and P2WSH addresses
|
||||||
|
if bbi.Address == nil || (*bbi.Address)[0:3] != "bc1" {
|
||||||
|
return errors.Errorf("mismatch input Address %v %v", bbi.Address, li.Address)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// both must be null or both must not be null
|
||||||
if bbi.Script != nil && li.Script != nil {
|
if bbi.Script != nil && li.Script != nil {
|
||||||
if *bbi.Script != *li.Script {
|
if *bbi.Script != *li.Script {
|
||||||
return errors.Errorf("mismatch input Script %v %v", *bbi.Script, *li.Script)
|
return errors.Errorf("mismatch input Script %v %v", *bbi.Script, *li.Script)
|
||||||
@ -272,19 +278,24 @@ func verifyGetDetailedTransaction(t *testing.T, id int, lrs *logRequestResponse,
|
|||||||
if bbo.Satoshis != lo.Satoshis {
|
if bbo.Satoshis != lo.Satoshis {
|
||||||
return errors.Errorf("mismatch output Satoshis %v %v", bbo.Satoshis, lo.Satoshis)
|
return errors.Errorf("mismatch output Satoshis %v %v", bbo.Satoshis, lo.Satoshis)
|
||||||
}
|
}
|
||||||
|
// both must be null or both must not be null
|
||||||
if bbo.Script != nil && lo.Script != nil {
|
if bbo.Script != nil && lo.Script != nil {
|
||||||
if *bbo.Script != *lo.Script {
|
if *bbo.Script != *lo.Script {
|
||||||
return errors.Errorf("mismatch output Script %v %v", *bbo.Script, *lo.Script)
|
return errors.Errorf("mismatch output Script %v %v", *bbo.Script, *lo.Script)
|
||||||
}
|
}
|
||||||
} else {
|
} else if bbo.Script != lo.Script {
|
||||||
return errors.Errorf("mismatch output Script %v %v", bbo.Script, lo.Script)
|
return errors.Errorf("mismatch output Script %v %v", bbo.Script, lo.Script)
|
||||||
}
|
}
|
||||||
|
// both must be null or both must not be null
|
||||||
if bbo.Address != nil && lo.Address != nil {
|
if bbo.Address != nil && lo.Address != nil {
|
||||||
if *bbo.Address != *lo.Address {
|
if *bbo.Address != *lo.Address {
|
||||||
return errors.Errorf("mismatch output Address %v %v", *bbo.Address, *lo.Address)
|
return errors.Errorf("mismatch output Address %v %v", *bbo.Address, *lo.Address)
|
||||||
}
|
}
|
||||||
} else {
|
} else if bbo.Address != lo.Address {
|
||||||
return errors.Errorf("mismatch output Address %v %v", bbo.Address, lo.Address)
|
// bitcore does not parse bech P2WPKH and P2WSH addresses
|
||||||
|
if bbo.Address == nil || (*bbo.Address)[0:3] != "bc1" {
|
||||||
|
return errors.Errorf("mismatch output Address %v %v", bbo.Address, lo.Address)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -364,11 +375,7 @@ func verifyMessage(t *testing.T, ws *gosocketio.Client, id int, lrs *logRequestR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_VerifyLog(t *testing.T) {
|
func connectSocketIO(t *testing.T) *gosocketio.Client {
|
||||||
if *verifylog == "" || *wsurl == "" {
|
|
||||||
t.Skip("skipping test, flags verifylog or wsurl not specified")
|
|
||||||
}
|
|
||||||
t.Log("Verifying log", *verifylog, "against service", *wsurl)
|
|
||||||
tr := transport.GetDefaultWebsocketTransport()
|
tr := transport.GetDefaultWebsocketTransport()
|
||||||
tr.WebsocketDialer = websocket.Dialer{
|
tr.WebsocketDialer = websocket.Dialer{
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
@ -376,9 +383,21 @@ func Test_VerifyLog(t *testing.T) {
|
|||||||
ws, err := gosocketio.Dial(*wsurl, tr)
|
ws, err := gosocketio.Dial(*wsurl, tr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("Dial error ", err)
|
t.Fatal("Dial error ", err)
|
||||||
return
|
return nil
|
||||||
|
}
|
||||||
|
return ws
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_VerifyLog(t *testing.T) {
|
||||||
|
if *verifylog == "" || *wsurl == "" {
|
||||||
|
t.Skip("skipping test, flags verifylog or wsurl not specified")
|
||||||
|
}
|
||||||
|
t.Log("Verifying log", *verifylog, "against service", *wsurl)
|
||||||
|
var ws *gosocketio.Client
|
||||||
|
if !*newSocket {
|
||||||
|
ws = connectSocketIO(t)
|
||||||
|
defer ws.Close()
|
||||||
}
|
}
|
||||||
defer ws.Close()
|
|
||||||
file, err := os.Open(*verifylog)
|
file, err := os.Open(*verifylog)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("File read error", err)
|
t.Fatal("File read error", err)
|
||||||
@ -420,7 +439,13 @@ func Test_VerifyLog(t *testing.T) {
|
|||||||
lrs.LogElapsedTime = msg.Et
|
lrs.LogElapsedTime = msg.Et
|
||||||
}
|
}
|
||||||
if lrs.Request != nil && lrs.Response != nil {
|
if lrs.Request != nil && lrs.Response != nil {
|
||||||
|
if *newSocket {
|
||||||
|
ws = connectSocketIO(t)
|
||||||
|
}
|
||||||
verifyMessage(t, ws, msg.ID, lrs, stats)
|
verifyMessage(t, ws, msg.ID, lrs, stats)
|
||||||
|
if *newSocket {
|
||||||
|
ws.Close()
|
||||||
|
}
|
||||||
delete(pairs, msg.ID)
|
delete(pairs, msg.ID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user