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 }