summaryrefslogtreecommitdiff
path: root/data/abi/abi_json_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'data/abi/abi_json_test.go')
-rw-r--r--data/abi/abi_json_test.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/data/abi/abi_json_test.go b/data/abi/abi_json_test.go
index b5290c9d5..49083fdea 100644
--- a/data/abi/abi_json_test.go
+++ b/data/abi/abi_json_test.go
@@ -17,12 +17,39 @@
package abi
import (
+ "crypto/rand"
+ "math/big"
"testing"
+ "github.com/algorand/go-algorand/data/basics"
"github.com/algorand/go-algorand/test/partitiontest"
"github.com/stretchr/testify/require"
)
+func TestRandomAddressEquality(t *testing.T) {
+ partitiontest.PartitionTest(t)
+
+ upperLimit := new(big.Int).Lsh(big.NewInt(1), addressByteSize<<3)
+ var addrBasics basics.Address
+ var addrABI []byte = make([]byte, addressByteSize)
+
+ for testCaseIndex := 0; testCaseIndex < addressTestCaseCount; testCaseIndex++ {
+ randomAddrInt, err := rand.Int(rand.Reader, upperLimit)
+ require.NoError(t, err, "cryptographic random int init fail")
+
+ randomAddrInt.FillBytes(addrBasics[:])
+ randomAddrInt.FillBytes(addrABI)
+
+ checkSumBasics := addrBasics.GetChecksum()
+ checkSumABI, err := addressCheckSum(addrABI)
+ require.NoError(t, err, "ABI compute checksum for address slice failed")
+
+ require.Equal(t, checkSumBasics, checkSumABI,
+ "basics.Address computed checksum %v not equal to data.abi computed checksum %v",
+ )
+ }
+}
+
func TestJSONtoInterfaceValid(t *testing.T) {
partitiontest.PartitionTest(t)
var testCases = []struct {