VerifiedROBlobFromDisk and VerifiedRODataColumnFromDisk: Add tests. (#15484)

This commit is contained in:
Manu NALEPA
2025-07-10 18:11:12 +02:00
committed by GitHub
parent 16b567f6af
commit 02f8726e46
3 changed files with 103 additions and 0 deletions

View File

@@ -55,6 +55,7 @@ go_test(
"blob_test.go",
"cache_test.go",
"data_column_test.go",
"filesystem_test.go",
"initializer_test.go",
"result_test.go",
"verification_test.go",
@@ -80,6 +81,7 @@ go_test(
"//testing/util:go_default_library",
"//time/slots:go_default_library",
"@com_github_pkg_errors//:go_default_library",
"@com_github_spf13_afero//:go_default_library",
"@com_github_stretchr_testify//require:go_default_library",
],
)

View File

@@ -0,0 +1,98 @@
package verification
import (
"testing"
fieldparams "github.com/OffchainLabs/prysm/v6/config/fieldparams"
"github.com/OffchainLabs/prysm/v6/testing/require"
"github.com/OffchainLabs/prysm/v6/testing/util"
"github.com/spf13/afero"
)
func TestVerifiedROBlobFromDisk(t *testing.T) {
// Create test data.
_, blobs := util.GenerateTestDenebBlockWithSidecar(t, [fieldparams.RootLength]byte{}, 0, 1)
originalBlob := blobs[0]
// Marshal the blob sidecar to SSZ.
sszData, err := originalBlob.MarshalSSZ()
require.NoError(t, err)
// Create in-memory filesystem.
fs := afero.NewMemMapFs()
// Write test data to file..
filePath := "/test/blob.ssz"
err = afero.WriteFile(fs, filePath, sszData, 0644)
require.NoError(t, err)
// Test the function.
blockRoot := originalBlob.BlockRoot()
verifiedBlob, err := VerifiedROBlobFromDisk(fs, blockRoot, filePath)
require.NoError(t, err)
// Verify the result.
require.Equal(t, originalBlob.Index, verifiedBlob.ROBlob.Index)
require.Equal(t, originalBlob.Slot(), verifiedBlob.ROBlob.Slot())
require.Equal(t, blockRoot, verifiedBlob.ROBlob.BlockRoot())
}
func TestVerifiedRODataColumnFromDisk(t *testing.T) {
// Generate test data columns.
columns := GenerateTestDataColumns(t, [fieldparams.RootLength]byte{}, 1, 1)
originalColumn := columns[0]
blockRoot := originalColumn.BlockRoot()
// Marshal the data column sidecar to SSZ.
sszData, err := originalColumn.MarshalSSZ()
require.NoError(t, err)
sszSize := uint32(len(sszData))
t.Run("unexpected size", func(t *testing.T) {
// Create in-memory filesystem with smaller data.
fs := afero.NewMemMapFs()
// Write partial data.
filePath := "/test/partial.ssz"
partialData := sszData[:len(sszData)/2]
err := afero.WriteFile(fs, filePath, partialData, 0644)
require.NoError(t, err)
// Open file for reading.
file, err := fs.Open(filePath)
require.NoError(t, err)
// Test the function.
_, err = VerifiedRODataColumnFromDisk(file, blockRoot, sszSize)
require.NotNil(t, err)
err = file.Close()
require.NoError(t, err)
})
t.Run("nominal", func(t *testing.T) {
// Create in-memory filesystem.
fs := afero.NewMemMapFs()
// Write test data to file.
filePath := "/test/datacolumn.ssz"
err := afero.WriteFile(fs, filePath, sszData, 0644)
require.NoError(t, err)
// Open file for reading.
file, err := fs.Open(filePath)
require.NoError(t, err)
// Test the function.
verifiedColumn, err := VerifiedRODataColumnFromDisk(file, blockRoot, sszSize)
require.NoError(t, err)
// Verify the result.
require.Equal(t, originalColumn.Index, verifiedColumn.RODataColumn.Index)
require.Equal(t, originalColumn.Slot(), verifiedColumn.RODataColumn.Slot())
require.Equal(t, blockRoot, verifiedColumn.RODataColumn.BlockRoot())
err = file.Close()
require.NoError(t, err)
})
}

View File

@@ -0,0 +1,3 @@
### Ignored
- Add tests for `VerifiedROBlobFromDisk`.
- Add tests for `VerifiedRODataColumnFromDisk`.