mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
go/packages: update tests to reflect changes in golang.org/cl/198459
That change changes the name of an ad-hoc package go list produces to contain the names of the files instead of just being called "command-line-arguments". It also means go list will report multiple packages for an ad-hoc package that's not saved on disk that contains multiple sources. Update test cases that depend on this behavior. One thing to be aware of: the change in go list (without additional changes in go/packages) will break users depending on ad-hoc packages with multiple files, when the any of the files don't exist on disk. We're not adding a work-around in this cl because overlays aren't guaranteed to be 100% correct and the LSP doesn't need this functionality. If this turns out to be a problem we can fix it. Change-Id: I342cd3cb54bf35992186ee02ddd9ac316ff1db4f Reviewed-on: https://go-review.googlesource.com/c/tools/+/199097 Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Cottrell <iancottrell@google.com>
This commit is contained in:
parent
d89860af3b
commit
43d3a2ca2a
@ -2039,8 +2039,8 @@ func testErrorMissingFile(t *testing.T, exporter packagestest.Exporter) {
|
||||
if len(pkgs) == 0 && runtime.GOOS == "windows" {
|
||||
t.Skip("Issue #31344: the ad-hoc command-line-arguments package isn't created on windows")
|
||||
}
|
||||
if len(pkgs) != 1 || pkgs[0].PkgPath != "command-line-arguments" {
|
||||
t.Fatalf("packages.Load: want [command-line-arguments], got %v", pkgs)
|
||||
if len(pkgs) != 1 || (pkgs[0].PkgPath != "command-line-arguments" && pkgs[0].PkgPath != "missing.go") {
|
||||
t.Fatalf("packages.Load: want [command-line-arguments] or [missing.go], got %v", pkgs)
|
||||
}
|
||||
if len(pkgs[0].Errors) == 0 {
|
||||
t.Errorf("result of Load: want package with errors, got none: %+v", pkgs[0])
|
||||
@ -2062,25 +2062,17 @@ func testReturnErrorWhenUsingNonGoFiles(t *testing.T, exporter packagestest.Expo
|
||||
}}})
|
||||
defer exported.Cleanup()
|
||||
config := packages.Config{Env: append(os.Environ(), "GOPACKAGESDRIVER=off")}
|
||||
want := "named files must be .go files"
|
||||
pkgs, err := packages.Load(&config, "a/a.go", "b/b.c")
|
||||
pkgs, err := packages.Load(&config, "b/b.c")
|
||||
if err != nil {
|
||||
// Check if the error returned is the one we expected.
|
||||
if !strings.Contains(err.Error(), want) {
|
||||
t.Fatalf("want error message: %s, got: %s", want, err.Error())
|
||||
}
|
||||
return
|
||||
}
|
||||
if len(pkgs) != 1 || pkgs[0].PkgPath != "command-line-arguments" {
|
||||
t.Fatalf("packages.Load: want [command-line-arguments], got %v", pkgs)
|
||||
// Go <1.14 calls the package command-line-arguments while Go 1.14+ uses the file names.
|
||||
if len(pkgs) != 1 || (pkgs[0].PkgPath != "command-line-arguments" && pkgs[0].PkgPath != "b/b.c") {
|
||||
t.Fatalf("packages.Load: want [command-line-arguments] or [b/b.c], got %v", pkgs)
|
||||
}
|
||||
if len(pkgs[0].Errors) != 1 {
|
||||
t.Fatalf("result of Load: want package with one error, got: %+v", pkgs[0])
|
||||
}
|
||||
got := pkgs[0].Errors[0].Error()
|
||||
if !strings.Contains(got, want) {
|
||||
t.Fatalf("want error message: %s, got: %s", want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReturnErrorWhenUsingGoFilesInMultipleDirectories(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user