Skip to content

Commit e5f5731

Browse files
committed
Add BLS12-381 failure test cases and implement IsWrite method for dummy precompile
1 parent 499512a commit e5f5731

28 files changed

+7450
-0
lines changed

core/vm/contracts_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ package vm
1818

1919
import (
2020
"bytes"
21+
"encoding/json"
2122
"fmt"
23+
"io/ioutil"
2224
"math/big"
2325
"reflect"
2426
"testing"
@@ -398,6 +400,16 @@ var blake2FTests = []precompiledTest{
398400
},
399401
}
400402

403+
func loadJson(name string) ([]precompiledTest, error) {
404+
data, err := ioutil.ReadFile(fmt.Sprintf("testdata/precompiles/%v.json", name))
405+
if err != nil {
406+
return nil, err
407+
}
408+
var testcases []precompiledTest
409+
err = json.Unmarshal(data, &testcases)
410+
return testcases, err
411+
}
412+
401413
func testPrecompiled(addr string, test precompiledTest, t *testing.T) {
402414
p := PrecompiledContractsSHA3FIPS[common.HexToAddress(addr)]
403415
in := common.Hex2Bytes(test.input)
@@ -572,6 +584,10 @@ func BenchmarkPrecompiledBn256Add(bench *testing.B) {
572584

573585
// Tests OOG
574586
func TestPrecompiledModExpOOG(t *testing.T) {
587+
modexpTests, err := loadJson("modexp")
588+
if err != nil {
589+
t.Fatal(err)
590+
}
575591
for _, test := range modexpTests {
576592
testPrecompiledOOG("05", test, t)
577593
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[
2+
{
3+
"Input": "0000000048c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b61626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001",
4+
"Expected": "08c9bcf367e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d282e6ad7f520e511f6c3e2b8c68059b9442be0454267ce079217e1319cde05b",
5+
"Name": "vector 4",
6+
"Gas": 0,
7+
"NoBenchmark": false
8+
},
9+
{
10+
"Input": "0000000c48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b61626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001",
11+
"Expected": "ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923",
12+
"Name": "vector 5",
13+
"Gas": 12,
14+
"NoBenchmark": false
15+
},
16+
{
17+
"Input": "0000000c48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b61626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000",
18+
"Expected": "75ab69d3190a562c51aef8d88f1c2775876944407270c42c9844252c26d2875298743e7f6d5ea2f2d3e8d226039cd31b4e426ac4f2d3d666a610c2116fde4735",
19+
"Name": "vector 6",
20+
"Gas": 12,
21+
"NoBenchmark": false
22+
},
23+
{
24+
"Input": "0000000148c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b61626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001",
25+
"Expected": "b63a380cb2897d521994a85234ee2c181b5f844d2c624c002677e9703449d2fba551b3a8333bcdf5f2f7e08993d53923de3d64fcc68c034e717b9293fed7a421",
26+
"Name": "vector 7",
27+
"Gas": 1,
28+
"NoBenchmark": false
29+
},
30+
{
31+
"Input": "007A120048c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b61626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001",
32+
"Expected": "6d2ce9e534d50e18ff866ae92d70cceba79bbcd14c63819fe48752c8aca87a4bb7dcc230d22a4047f0486cfcfb50a17b24b2899eb8fca370f22240adb5170189",
33+
"Name": "vector 8",
34+
"Gas": 8000000,
35+
"NoBenchmark": false
36+
}
37+
]

core/vm/testdata/precompiles/blsG1Add.json

Lines changed: 730 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsG1Mul.json

Lines changed: 730 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsG1MultiExp.json

Lines changed: 723 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsG2Add.json

Lines changed: 730 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsG2Mul.json

Lines changed: 730 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsG2MultiExp.json

Lines changed: 723 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsMapG1.json

Lines changed: 702 additions & 0 deletions
Large diffs are not rendered by default.

core/vm/testdata/precompiles/blsMapG2.json

Lines changed: 702 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)