Skip to content

Commit 2481812

Browse files
committed
Add test for StoreCodeUnchecked
1 parent 647fd31 commit 2481812

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

internal/api/lib_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,28 @@ func TestStoreCodeUnchecked(t *testing.T) {
274274
require.Equal(t, wasm, code)
275275
}
276276

277+
func TestStoreCodeUncheckedWorksWithInvalidWasm(t *testing.T) {
278+
cache, cleanup := withCache(t)
279+
defer cleanup()
280+
281+
wasm, err := os.ReadFile("../../testdata/hackatom.wasm")
282+
require.NoError(t, err)
283+
284+
// Look for "interface_version_8" in the wasm file and replace it with "interface_version_9".
285+
// This makes the wasm file invalid.
286+
wasm = bytes.Replace(wasm, []byte("interface_version_8"), []byte("interface_version_9"), 1)
287+
288+
// StoreCode should fail
289+
_, err = StoreCode(cache, wasm, true)
290+
require.ErrorContains(t, err, "Wasm contract has unknown interface_version_* marker export")
291+
292+
// StoreCodeUnchecked should not fail
293+
checksum, err := StoreCodeUnchecked(cache, wasm)
294+
require.NoError(t, err)
295+
expectedChecksum := sha256.Sum256(wasm)
296+
assert.Equal(t, expectedChecksum[:], checksum)
297+
}
298+
277299
func TestPin(t *testing.T) {
278300
cache, cleanup := withCache(t)
279301
defer cleanup()

0 commit comments

Comments
 (0)