1
0
mirror of https://github.com/golang/go synced 2024-11-06 15:26:13 -07:00
go/internal/imports/imports_test.go
Bryan C. Mills 311ec0312e all: skip more memory-intensive tests on linux-arm
Updates golang/go#32834

Change-Id: I9844dc09d9a6eb2e79a0b28a1e69ed018bfa1bff
Reviewed-on: https://go-review.googlesource.com/c/tools/+/192578
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-08-30 17:05:41 +00:00

83 lines
1.5 KiB
Go

package imports
import (
"go/build"
"os"
"testing"
"golang.org/x/tools/internal/testenv"
)
func TestMain(m *testing.M) {
testenv.ExitIfSmallMachine()
os.Exit(m.Run())
}
// TestNilOpts tests that process does not crash with nil opts.
func TestNilOpts(t *testing.T) {
var testOpts = []struct {
name string
opt *Options
}{
{
name: "nil",
opt: nil,
},
{
name: "nil env",
opt: &Options{Comments: true, TabIndent: true, TabWidth: 8},
},
{
name: "default",
opt: &Options{
Env: &ProcessEnv{
GOPATH: build.Default.GOPATH,
GOROOT: build.Default.GOROOT,
},
Comments: true,
TabIndent: true,
TabWidth: 8,
},
},
}
input := `package p
func _() {
fmt.Println()
}
`
want := `package p
import "fmt"
func _() {
fmt.Println()
}
`
for _, test := range testOpts {
// Test Process
got, err := Process("", []byte(input), test.opt)
if err != nil {
t.Errorf("%s: %s", test.name, err.Error())
}
if string(got) != want {
t.Errorf("%s: Process: Got:\n%s\nWant:\n%s\n", test.name, string(got), want)
}
// Test FixImports and ApplyFixes
fixes, err := FixImports("", []byte(input), test.opt)
if err != nil {
t.Errorf("%s: %s", test.name, err.Error())
}
got, err = ApplyFixes(fixes, "", []byte(input), test.opt)
if err != nil {
t.Errorf("%s: %s", test.name, err.Error())
}
if string(got) != want {
t.Errorf("%s: ApplyFix: Got:\n%s\nWant:\n%s\n", test.name, string(got), want)
}
}
}