mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-07 20:43:57 -05:00
* Ran gopls modernize to fix everything go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./... * Override rules_go provided dependency for golang.org/x/tools to v0.38.0. To update this, checked out rules_go, then ran `bazel run //go/tools/releaser -- upgrade-dep -mirror=false org_golang_x_tools` and copied the patches. * Fix buildtag violations and ignore buildtag violations in external * Introduce modernize analyzer package. * Add modernize "any" analyzer. * Fix violations of any analyzer * Add modernize "appendclipped" analyzer. * Fix violations of appendclipped * Add modernize "bloop" analyzer. * Add modernize "fmtappendf" analyzer. * Add modernize "forvar" analyzer. * Add modernize "mapsloop" analyzer. * Add modernize "minmax" analyzer. * Fix violations of minmax analyzer * Add modernize "omitzero" analyzer. * Add modernize "rangeint" analyzer. * Fix violations of rangeint. * Add modernize "reflecttypefor" analyzer. * Fix violations of reflecttypefor analyzer. * Add modernize "slicescontains" analyzer. * Add modernize "slicessort" analyzer. * Add modernize "slicesdelete" analyzer. This is disabled by default for now. See https://go.dev/issue/73686. * Add modernize "stringscutprefix" analyzer. * Add modernize "stringsbuilder" analyzer. * Fix violations of stringsbuilder analyzer. * Add modernize "stringsseq" analyzer. * Add modernize "testingcontext" analyzer. * Add modernize "waitgroup" analyzer. * Changelog fragment * gofmt * gazelle * Add modernize "newexpr" analyzer. * Disable newexpr until go1.26 * Add more details in WORKSPACE on how to update the override * @nalepae feedback on min() * gofmt * Fix violations of forvar
110 lines
2.9 KiB
Go
110 lines
2.9 KiB
Go
package runtime
|
|
|
|
import (
|
|
"errors"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v7/testing/assert"
|
|
"github.com/OffchainLabs/prysm/v7/testing/require"
|
|
)
|
|
|
|
type mockService struct {
|
|
status error
|
|
}
|
|
type secondMockService struct {
|
|
status error
|
|
}
|
|
|
|
func (_ *mockService) Start() {
|
|
}
|
|
|
|
func (_ *mockService) Stop() error {
|
|
return nil
|
|
}
|
|
|
|
func (m *mockService) Status() error {
|
|
return m.status
|
|
}
|
|
|
|
func (_ *secondMockService) Start() {
|
|
}
|
|
|
|
func (_ *secondMockService) Stop() error {
|
|
return nil
|
|
}
|
|
|
|
func (s *secondMockService) Status() error {
|
|
return s.status
|
|
}
|
|
|
|
func TestRegisterService_Twice(t *testing.T) {
|
|
registry := &ServiceRegistry{
|
|
services: make(map[reflect.Type]Service),
|
|
}
|
|
|
|
m := &mockService{}
|
|
require.NoError(t, registry.RegisterService(m), "Failed to register first service")
|
|
|
|
// Checks if first service was indeed registered.
|
|
require.Equal(t, 1, len(registry.serviceTypes))
|
|
assert.ErrorContains(t, "service already exists", registry.RegisterService(m))
|
|
}
|
|
|
|
func TestRegisterService_Different(t *testing.T) {
|
|
registry := &ServiceRegistry{
|
|
services: make(map[reflect.Type]Service),
|
|
}
|
|
|
|
m := &mockService{}
|
|
s := &secondMockService{}
|
|
require.NoError(t, registry.RegisterService(m), "Failed to register first service")
|
|
require.NoError(t, registry.RegisterService(s), "Failed to register second service")
|
|
|
|
require.Equal(t, 2, len(registry.serviceTypes))
|
|
|
|
_, exists := registry.services[reflect.TypeFor[*mockService]()]
|
|
assert.Equal(t, true, exists, "service of type %v not registered", reflect.TypeFor[*mockService]())
|
|
|
|
_, exists = registry.services[reflect.TypeFor[*secondMockService]()]
|
|
assert.Equal(t, true, exists, "service of type %v not registered", reflect.TypeFor[*secondMockService]())
|
|
}
|
|
|
|
func TestFetchService_OK(t *testing.T) {
|
|
registry := &ServiceRegistry{
|
|
services: make(map[reflect.Type]Service),
|
|
}
|
|
|
|
m := &mockService{}
|
|
require.NoError(t, registry.RegisterService(m), "Failed to register first service")
|
|
|
|
assert.ErrorContains(t, "input must be of pointer type, received value type instead", registry.FetchService(*m))
|
|
|
|
var s *secondMockService
|
|
assert.ErrorContains(t, "unknown service", registry.FetchService(&s))
|
|
|
|
var m2 *mockService
|
|
require.NoError(t, registry.FetchService(&m2), "Failed to fetch service")
|
|
require.Equal(t, m, m2)
|
|
}
|
|
|
|
func TestServiceStatus_OK(t *testing.T) {
|
|
registry := &ServiceRegistry{
|
|
services: make(map[reflect.Type]Service),
|
|
}
|
|
|
|
m := &mockService{}
|
|
require.NoError(t, registry.RegisterService(m), "Failed to register first service")
|
|
|
|
s := &secondMockService{}
|
|
require.NoError(t, registry.RegisterService(s), "Failed to register first service")
|
|
|
|
m.status = errors.New("something bad has happened")
|
|
s.status = errors.New("woah, horsee")
|
|
|
|
statuses := registry.Statuses()
|
|
|
|
assert.ErrorContains(t, "something bad has happened", statuses[reflect.TypeFor[*mockService]()])
|
|
assert.ErrorContains(t, "woah, horsee", statuses[reflect.TypeFor[*secondMockService]()])
|
|
}
|