prysm-pulse/beacon-chain/node/helper_test.go
terence tsao dcdf5d0eac
Add and verify weak-subjectivity-checkpoint flag (#7256)
* Handle weak subjectivity input

* Typo

* Feedbacks

* Better error string @rauljordan

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-09-17 14:32:40 -05:00

68 lines
1.9 KiB
Go

package node
import (
"reflect"
"testing"
"github.com/prysmaticlabs/prysm/shared/testutil/require"
)
func TestConvertWspInput(t *testing.T) {
tests := []struct {
name string
input string
bRoot []byte
epoch uint64
wantErr bool
errStr string
}{
{
name: "No column in string",
input: "0x111111;123",
wantErr: true,
errStr: "did not contain column",
},
{
name: "Too many columns in string",
input: "0x010203:123:456",
wantErr: false,
errStr: "weak subjectivity checkpoint input should be in `block_root:epoch_number` format",
},
{
name: "Incorrect block root length",
input: "0x010203:987",
wantErr: false,
errStr: "block root is not length of 32",
},
{
name: "Correct input",
input: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:123456789",
bRoot: []byte{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255},
epoch: 123456789,
wantErr: false,
},
{
name: "Correct input without 0x",
input: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:123456789",
bRoot: []byte{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255},
epoch: 123456789,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bRoot, epoch, err := convertWspInput(tt.input)
if (err != nil) != tt.wantErr {
require.ErrorContains(t, tt.errStr, err)
return
}
if !reflect.DeepEqual(bRoot, tt.bRoot) {
t.Errorf("convertWspInput() block root = %v, want %v", bRoot, tt.bRoot)
}
if epoch != tt.epoch {
t.Errorf("convertWspInput() epoch = %v, want %v", epoch, tt.epoch)
}
})
}
}