github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/wasm/client/utils/utils_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"io/ioutil"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func GetTestData() ([]byte, []byte, []byte, error) {
    11  	wasmCode, err := ioutil.ReadFile("../../keeper/testdata/hackatom.wasm")
    12  
    13  	if err != nil {
    14  		return nil, nil, nil, err
    15  	}
    16  
    17  	gzipData, err := GzipIt(wasmCode)
    18  	if err != nil {
    19  		return nil, nil, nil, err
    20  	}
    21  
    22  	someRandomStr := []byte("hello world")
    23  
    24  	return wasmCode, someRandomStr, gzipData, nil
    25  }
    26  
    27  func TestIsWasm(t *testing.T) {
    28  	wasmCode, someRandomStr, gzipData, err := GetTestData()
    29  	require.NoError(t, err)
    30  
    31  	t.Log("should return false for some random string data")
    32  	require.False(t, IsWasm(someRandomStr))
    33  	t.Log("should return false for gzip data")
    34  	require.False(t, IsWasm(gzipData))
    35  	t.Log("should return true for exact wasm")
    36  	require.True(t, IsWasm(wasmCode))
    37  }
    38  
    39  func TestIsGzip(t *testing.T) {
    40  	wasmCode, someRandomStr, gzipData, err := GetTestData()
    41  	require.NoError(t, err)
    42  
    43  	require.False(t, IsGzip(wasmCode))
    44  	require.False(t, IsGzip(someRandomStr))
    45  	require.True(t, IsGzip(gzipData))
    46  }
    47  
    48  func TestGzipIt(t *testing.T) {
    49  	wasmCode, someRandomStr, _, err := GetTestData()
    50  	originalGzipData := []byte{31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 202, 72, 205, 201, 201, 87, 40, 207, 47, 202, 73, 1,
    51  		4, 0, 0, 255, 255, 133, 17, 74, 13, 11, 0, 0, 0}
    52  
    53  	require.NoError(t, err)
    54  
    55  	t.Log("gzip wasm with no error")
    56  	_, err = GzipIt(wasmCode)
    57  	require.NoError(t, err)
    58  
    59  	t.Log("gzip of a string should return exact gzip data")
    60  	strToGzip, err := GzipIt(someRandomStr)
    61  
    62  	require.True(t, IsGzip(strToGzip))
    63  	require.NoError(t, err)
    64  	require.Equal(t, originalGzipData, strToGzip)
    65  }