mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -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
62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path"
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v7/io/file"
|
|
"github.com/OffchainLabs/prysm/v7/testing/require"
|
|
"github.com/bazelbuild/rules_go/go/tools/bazel"
|
|
"github.com/ghodss/yaml"
|
|
jsoniter "github.com/json-iterator/go"
|
|
)
|
|
|
|
var json = jsoniter.Config{
|
|
EscapeHTML: true,
|
|
SortMapKeys: true,
|
|
ValidateJsonRawMessage: true,
|
|
TagKey: "spec-name",
|
|
}.Froze()
|
|
|
|
// UnmarshalYaml using a customized json encoder that supports "spec-name"
|
|
// override tag.
|
|
func UnmarshalYaml(y []byte, dest any) error {
|
|
j, err := yaml.YAMLToJSON(y)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return json.Unmarshal(j, dest)
|
|
}
|
|
|
|
// TestFolders sets the proper config and returns the result of ReadDir
|
|
// on the passed in eth2-spec-tests directory along with its path.
|
|
func TestFolders(t testing.TB, config, forkOrPhase, folderPath string) ([]os.DirEntry, string) {
|
|
testsFolderPath := path.Join("tests", config, forkOrPhase, folderPath)
|
|
filepath, err := bazel.Runfile(testsFolderPath)
|
|
require.NoError(t, err)
|
|
testFolders, err := os.ReadDir(filepath)
|
|
require.NoError(t, err)
|
|
|
|
if len(testFolders) == 0 {
|
|
t.Fatalf("No test folders found at %s", testsFolderPath)
|
|
}
|
|
err = saveSpecTest(testsFolderPath)
|
|
require.NoError(t, err)
|
|
return testFolders, testsFolderPath
|
|
}
|
|
|
|
func saveSpecTest(testFolder string) error {
|
|
baseDir := os.Getenv("SPEC_TEST_REPORT_OUTPUT_DIR")
|
|
if baseDir == "" {
|
|
return nil // Do nothing if spec test report not requested.
|
|
}
|
|
fullPath := path.Join(baseDir, fmt.Sprintf("%x_tests.txt", testFolder))
|
|
err := file.WriteFile(fullPath, []byte(testFolder))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|