mirror of
https://github.com/kaspanet/kaspad.git
synced 2026-03-04 08:15:24 +00:00
Sync Bitcoin Core tests.
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
102
internal_test.go
102
internal_test.go
@@ -3808,18 +3808,12 @@ func TestBitcoindInvalidTests(t *testing.T) {
|
||||
}
|
||||
tx := btcwire.NewMsgTx()
|
||||
for x, test := range tests {
|
||||
if len(test) < 2 && len(test) > 3 {
|
||||
name, err := testName(test)
|
||||
if err != nil {
|
||||
t.Errorf("TestBitcoindInvalidTests: invalid test #%d\n",
|
||||
x)
|
||||
continue
|
||||
}
|
||||
name := ""
|
||||
if len(test) == 3 {
|
||||
name = fmt.Sprintf("test (%s)", test[2])
|
||||
} else {
|
||||
name = fmt.Sprintf("test ([%s, %s])", test[0], test[1])
|
||||
}
|
||||
|
||||
scriptSig, err := ParseShortForm(test[0])
|
||||
if err != nil {
|
||||
t.Errorf("%s: can't parse scriptSig; %v", name, err)
|
||||
@@ -3832,7 +3826,13 @@ func TestBitcoindInvalidTests(t *testing.T) {
|
||||
continue
|
||||
}
|
||||
|
||||
s, err := NewScript(scriptSig, scriptPubKey, 0, tx, ScriptBip16)
|
||||
flags, err := parseScriptFlags(test[2])
|
||||
if err != nil {
|
||||
t.Errorf("%s: %v", name, err)
|
||||
continue
|
||||
}
|
||||
|
||||
s, err := NewScript(scriptSig, scriptPubKey, 0, tx, flags)
|
||||
if err == nil {
|
||||
if err := s.Execute(); err == nil {
|
||||
t.Errorf("%s test succeeded when it "+
|
||||
@@ -3853,23 +3853,18 @@ func TestBitcoindValidTests(t *testing.T) {
|
||||
var tests [][]string
|
||||
err = json.Unmarshal(file, &tests)
|
||||
if err != nil {
|
||||
t.Errorf("TestBitcoindInvalidTests couldn't Unmarshal: %v\n",
|
||||
t.Errorf("TestBitcoindValidTests couldn't Unmarshal: %v\n",
|
||||
err)
|
||||
return
|
||||
}
|
||||
tx := btcwire.NewMsgTx()
|
||||
for x, test := range tests {
|
||||
if len(test) < 2 && len(test) > 3 {
|
||||
t.Errorf("TestBitcoindInvalidTests: invalid test #%d\n",
|
||||
name, err := testName(test)
|
||||
if err != nil {
|
||||
t.Errorf("TestBitcoindValidTests: invalid test #%d\n",
|
||||
x)
|
||||
continue
|
||||
}
|
||||
name := ""
|
||||
if len(test) == 3 {
|
||||
name = fmt.Sprintf("test (%s)", test[2])
|
||||
} else {
|
||||
name = fmt.Sprintf("test ([%s, %s])", test[0], test[1])
|
||||
}
|
||||
|
||||
scriptSig, err := ParseShortForm(test[0])
|
||||
if err != nil {
|
||||
@@ -3883,7 +3878,13 @@ func TestBitcoindValidTests(t *testing.T) {
|
||||
continue
|
||||
}
|
||||
|
||||
s, err := NewScript(scriptSig, scriptPubKey, 0, tx, ScriptBip16)
|
||||
flags, err := parseScriptFlags(test[2])
|
||||
if err != nil {
|
||||
t.Errorf("%s: %v", name, err)
|
||||
continue
|
||||
}
|
||||
|
||||
s, err := NewScript(scriptSig, scriptPubKey, 0, tx, flags)
|
||||
if err != nil {
|
||||
t.Errorf("%s failed to create script: %v", name, err)
|
||||
continue
|
||||
@@ -3952,15 +3953,10 @@ testloop:
|
||||
continue
|
||||
}
|
||||
|
||||
var flags ScriptFlags
|
||||
vFlags := strings.Split(verifyFlags, ",")
|
||||
for _, flag := range vFlags {
|
||||
switch flag {
|
||||
case "P2SH":
|
||||
flags |= ScriptBip16
|
||||
case "NULLDUMMY":
|
||||
flags |= ScriptStrictMultiSig
|
||||
}
|
||||
flags, err := parseScriptFlags(verifyFlags)
|
||||
if err != nil {
|
||||
t.Errorf("bad test %d: %v", i, err)
|
||||
continue
|
||||
}
|
||||
|
||||
prevOuts := make(map[btcwire.OutPoint][]byte)
|
||||
@@ -4098,15 +4094,10 @@ testloop:
|
||||
continue
|
||||
}
|
||||
|
||||
var flags ScriptFlags
|
||||
vFlags := strings.Split(verifyFlags, ",")
|
||||
for _, flag := range vFlags {
|
||||
switch flag {
|
||||
case "P2SH":
|
||||
flags |= ScriptBip16
|
||||
case "NULLDUMMY":
|
||||
flags |= ScriptStrictMultiSig
|
||||
}
|
||||
flags, err := parseScriptFlags(verifyFlags)
|
||||
if err != nil {
|
||||
t.Errorf("bad test %d: %v", i, err)
|
||||
continue
|
||||
}
|
||||
|
||||
prevOuts := make(map[btcwire.OutPoint][]byte)
|
||||
@@ -4190,3 +4181,40 @@ testloop:
|
||||
i, test)
|
||||
}
|
||||
}
|
||||
|
||||
func parseScriptFlags(flagStr string) (ScriptFlags, error) {
|
||||
var flags ScriptFlags
|
||||
|
||||
sFlags := strings.Split(flagStr, ",")
|
||||
for _, flag := range sFlags {
|
||||
switch flag {
|
||||
case "NONE":
|
||||
// Nothing.
|
||||
case "NULLDUMMY":
|
||||
flags |= ScriptStrictMultiSig
|
||||
case "P2SH":
|
||||
flags |= ScriptBip16
|
||||
case "STRICTENC":
|
||||
// This is always set.
|
||||
default:
|
||||
return flags, fmt.Errorf("invalid flag: %s", flag)
|
||||
}
|
||||
}
|
||||
return flags, nil
|
||||
}
|
||||
|
||||
func testName(test []string) (string, error) {
|
||||
var name string
|
||||
|
||||
if len(test) < 3 || len(test) > 4 {
|
||||
return name, fmt.Errorf("invalid test length %d", len(test))
|
||||
}
|
||||
|
||||
if len(test) == 4 {
|
||||
name = fmt.Sprintf("test (%s)", test[3])
|
||||
} else {
|
||||
name = fmt.Sprintf("test ([%s, %s, %s])", test[0], test[1],
|
||||
test[2])
|
||||
}
|
||||
return name, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user