blob: 4a3f27b2847c0e244dc3b2ad9bcdfee2b2756417 [file] [log] [blame] [edit]
// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package modernize_test
import (
"testing"
. "golang.org/x/tools/go/analysis/analysistest"
"golang.org/x/tools/go/analysis/passes/modernize"
"golang.org/x/tools/internal/goplsexport"
"golang.org/x/tools/internal/testenv"
)
func TestAppendClipped(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.AppendClippedAnalyzer, "appendclipped")
}
func TestBloop(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.BLoopAnalyzer, "bloop")
}
func TestAny(t *testing.T) {
// The 'any' tests also exercise that fixes are not applied to generated files.
RunWithSuggestedFixes(t, TestData(), modernize.AnyAnalyzer, "any")
}
func TestErrorsAsType(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), goplsexport.ErrorsAsTypeModernizer, "errorsastype/...")
}
func TestFmtAppendf(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.FmtAppendfAnalyzer, "fmtappendf")
}
func TestForVar(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.ForVarAnalyzer, "forvar")
}
func TestStdIterators(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), goplsexport.StdIteratorsModernizer, "stditerators")
}
func TestMapsLoop(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.MapsLoopAnalyzer, "mapsloop")
}
func TestMinMax(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.MinMaxAnalyzer, "minmax", "minmax/userdefined", "minmax/wrongoperators", "minmax/nonstrict", "minmax/wrongreturn")
}
func TestNewExpr(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.NewExprAnalyzer, "newexpr")
}
func TestOmitZero(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.OmitZeroAnalyzer, "omitzero/...")
}
func TestRangeInt(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.RangeIntAnalyzer, "rangeint")
}
func TestPlusBuild(t *testing.T) {
// This test has a dedicated hack in the analysistest package:
// Because it cares about IgnoredFiles, which most analyzers
// ignore, the test framework will consider expectations in
// ignore files too, but only for this analyzer.
RunWithSuggestedFixes(t, TestData(), goplsexport.PlusBuildModernizer, "plusbuild")
}
func TestReflectTypeFor(t *testing.T) {
testenv.NeedsGo1Point(t, 25) // requires go1.25 types.Var.Kind
RunWithSuggestedFixes(t, TestData(), modernize.ReflectTypeForAnalyzer, "reflecttypefor")
}
func TestSlicesContains(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.SlicesContainsAnalyzer, "slicescontains")
}
func TestSlicesDelete(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.SlicesDeleteAnalyzer, "slicesdelete")
}
func TestSlicesSort(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.SlicesSortAnalyzer, "slicessort")
}
func TestStringsBuilder(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.StringsBuilderAnalyzer, "stringsbuilder")
}
func TestStringsCut(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), goplsexport.StringsCutModernizer, "stringscut")
}
func TestStringsCutPrefix(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.StringsCutPrefixAnalyzer,
"stringscutprefix",
"stringscutprefix/bytescutprefix")
}
func TestStringsSeq(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.StringsSeqAnalyzer, "splitseq", "fieldsseq")
}
func TestTestingContext(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.TestingContextAnalyzer, "testingcontext")
}
func TestUnsafeFuncs(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), goplsexport.UnsafeFuncsModernizer, "unsafefuncs")
}
func TestWaitGroup(t *testing.T) {
RunWithSuggestedFixes(t, TestData(), modernize.WaitGroupAnalyzer, "waitgroup")
}