diff --git a/changelog/mmsqe_fix_fork.md b/changelog/mmsqe_fix_fork.md new file mode 100644 index 0000000000..78182f0a38 --- /dev/null +++ b/changelog/mmsqe_fix_fork.md @@ -0,0 +1,3 @@ +### Fixed + +- avoid nondeterministic default fork value when generate genesis. [[PR]](https://github.com/prysmaticlabs/prysm/pull/15151) \ No newline at end of file diff --git a/runtime/version/BUILD.bazel b/runtime/version/BUILD.bazel index 6801748e22..f0d60af12c 100644 --- a/runtime/version/BUILD.bazel +++ b/runtime/version/BUILD.bazel @@ -26,4 +26,5 @@ go_test( name = "go_default_test", srcs = ["fork_test.go"], embed = [":go_default_library"], + deps = ["@com_github_stretchr_testify//assert:go_default_library"], ) diff --git a/runtime/version/fork.go b/runtime/version/fork.go index 6f9cffe8fa..fefcb4432e 100644 --- a/runtime/version/fork.go +++ b/runtime/version/fork.go @@ -1,6 +1,8 @@ package version import ( + "sort" + "github.com/pkg/errors" ) @@ -63,4 +65,5 @@ func init() { stringToVersion[s] = v i++ } + sort.Ints(allVersions) } diff --git a/runtime/version/fork_test.go b/runtime/version/fork_test.go index 84ecff61c3..21068847e3 100644 --- a/runtime/version/fork_test.go +++ b/runtime/version/fork_test.go @@ -1,6 +1,12 @@ package version -import "testing" +import ( + "slices" + "sort" + "testing" + + "github.com/stretchr/testify/assert" +) func TestVersionString(t *testing.T) { tests := []struct { @@ -27,3 +33,24 @@ func TestVersionString(t *testing.T) { }) } } + +func TestVersionSorting(t *testing.T) { + versions := All() + expected := slices.Clone(versions) + sort.Ints(expected) + tests := []struct { + name string + expected []int + }{ + { + name: "allVersions sorted in ascending order", + expected: expected, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equal(t, tt.expected, versions, "allVersions should match expected order") + }) + } +}