Skip to content

Commit

Permalink
convert empty branch test data to json (#269)
Browse files Browse the repository at this point in the history
  • Loading branch information
crodriguezvega authored Feb 1, 2024
1 parent 9f41d71 commit 5a2795b
Show file tree
Hide file tree
Showing 2 changed files with 227 additions and 103 deletions.
116 changes: 13 additions & 103 deletions go/proof_data_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,115 +73,25 @@ func CheckAgainstSpecTestData(tb testing.TB) map[string]CheckAgainstSpecTestStru
return cases
}

var SpecWithEmptyChild = &ProofSpec{
LeafSpec: &LeafOp{
Prefix: []byte{0},
Hash: HashOp_SHA256,
PrehashValue: HashOp_SHA256,
},
InnerSpec: &InnerSpec{
ChildOrder: []int32{0, 1},
ChildSize: 32,
MinPrefixLength: 1,
MaxPrefixLength: 1,
EmptyChild: []byte("32_empty_child_placeholder_bytes"),
Hash: HashOp_SHA256,
},
}

type EmptyBranchTestStruct struct {
Op *InnerOp
Spec *ProofSpec
IsLeft bool
IsRight bool
}

func EmptyBranchTestData(t *testing.T) []EmptyBranchTestStruct {
t.Helper()
emptyChild := SpecWithEmptyChild.InnerSpec.EmptyChild

return []EmptyBranchTestStruct{
{
Op: &InnerOp{
Prefix: append([]byte{1}, emptyChild...),
Suffix: nil,
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: true,
IsRight: false,
},
{
Op: &InnerOp{
Prefix: []byte{1},
Suffix: emptyChild,
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: false,
IsRight: true,
},
// non-empty cases
{
Op: &InnerOp{
Prefix: append([]byte{1}, make([]byte, 32)...),
Suffix: nil,
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: false,
IsRight: false,
},
{
Op: &InnerOp{
Prefix: []byte{1},
Suffix: make([]byte, 32),
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: false,
IsRight: false,
},
{
Op: &InnerOp{
Prefix: append(append([]byte{1}, emptyChild[0:28]...), []byte("xxxx")...),
Suffix: nil,
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: false,
IsRight: false,
},
{
Op: &InnerOp{
Prefix: []byte{1},
Suffix: append(append([]byte(nil), emptyChild[0:28]...), []byte("xxxx")...),
Hash: SpecWithEmptyChild.InnerSpec.Hash,
},
Spec: SpecWithEmptyChild,
IsLeft: false,
IsRight: false,
},
// some cases using a spec with no empty child
{
Op: &InnerOp{
Prefix: append([]byte{1}, make([]byte, 32)...),
Suffix: nil,
Hash: TendermintSpec.InnerSpec.Hash,
},
Spec: TendermintSpec,
IsLeft: false,
IsRight: false,
},
{
Op: &InnerOp{
Prefix: []byte{1},
Suffix: make([]byte, 32),
Hash: TendermintSpec.InnerSpec.Hash,
},
Spec: TendermintSpec,
IsLeft: false,
IsRight: false,
},
func EmptyBranchTestData(tb testing.TB) []EmptyBranchTestStruct {
tb.Helper()
fname := filepath.Join("..", "testdata", "TestEmptyBranchData.json")
ffile, err := os.Open(fname)
if err != nil {
tb.Fatal(err)
}
var cases []EmptyBranchTestStruct
jsonDecoder := json.NewDecoder(ffile)
err = jsonDecoder.Decode(&cases)
if err != nil {
tb.Fatal(err)
}
return cases
}
214 changes: 214 additions & 0 deletions testdata/TestEmptyBranchData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
[
{
"Op": {
"hash": 1,
"prefix": "ATMyX2VtcHR5X2NoaWxkX3BsYWNlaG9sZGVyX2J5dGVz"
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": true,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "AQ==",
"suffix": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM="
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": false,
"IsRight": true
},
{
"Op": {
"hash": 1,
"prefix": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "AQ==",
"suffix": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "ATMyX2VtcHR5X2NoaWxkX3BsYWNlaG9sZGVyX2J4eHh4"
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "AQ==",
"suffix": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnh4eHg="
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"empty_child": "MzJfZW1wdHlfY2hpbGRfcGxhY2Vob2xkZXJfYnl0ZXM=",
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"length": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
},
{
"Op": {
"hash": 1,
"prefix": "AQ==",
"suffix": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
},
"Spec": {
"leaf_spec": {
"hash": 1,
"prehash_value": 1,
"length": 1,
"prefix": "AA=="
},
"inner_spec": {
"child_order": [
0,
1
],
"child_size": 32,
"min_prefix_length": 1,
"max_prefix_length": 1,
"hash": 1
}
},
"IsLeft": false,
"IsRight": false
}
]

0 comments on commit 5a2795b

Please sign in to comment.