Skip to content

Commit

Permalink
gopls/internal/regtest/marker: use diffs for rename tests
Browse files Browse the repository at this point in the history
Use diffs rather than full file content for rename tests. Otherwise, the
golden content is too verbose, particularly for tests that are about to
be ported.

For golang/go#54845

Change-Id: Ib378355aa85beb9027e6f82bd2063d5fac975ee7
Reviewed-on: https://go-review.googlesource.com/c/tools/+/540916
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
  • Loading branch information
findleyr committed Nov 9, 2023
1 parent efa2492 commit ae7e7d7
Show file tree
Hide file tree
Showing 11 changed files with 197 additions and 238 deletions.
2 changes: 1 addition & 1 deletion gopls/internal/lsp/regtest/marker.go
Original file line number Diff line number Diff line change
Expand Up @@ -1839,7 +1839,7 @@ func renameMarker(mark marker, loc protocol.Location, newName string, golden *Go
mark.errorf("rename failed: %v. (Use @renameerr for expected errors.)", err)
return
}
checkChangedFiles(mark, changed, golden)
checkDiffs(mark, changed, golden)
}

// renameErrMarker implements the @renamererr(location, new, error) marker.
Expand Down
23 changes: 12 additions & 11 deletions gopls/internal/regtest/marker/testdata/rename/basic.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ package p
func f(x int) { println(x) } //@rename("x", "y", xToy)

-- @xToy/basic.go --
package p

func f(y int) { println(y) } //@rename("x", "y", xToy)

--- before
+++ after
@@ -3 +3 @@
-func f(x int) { println(x) } //@rename("x", "y", xToy)
+func f(y int) { println(y) } //@rename("x", "y", xToy)
-- alias.go --
package p

Expand All @@ -29,10 +30,10 @@ func _(x []int) { //@renameerr("_", "blank", `can't rename "_"`)
}

-- @AToB/alias.go --
package p

// from golang/go#61625
type LongNameHere struct{}
type B = LongNameHere //@rename("A", "B", AToB)
func Foo() B

--- before
+++ after
@@ -5,2 +5,2 @@
-type A = LongNameHere //@rename("A", "B", AToB)
-func Foo() A
+type B = LongNameHere //@rename("A", "B", AToB)
+func Foo() B
25 changes: 13 additions & 12 deletions gopls/internal/regtest/marker/testdata/rename/embed.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,17 @@ var _ = new(B).A //@renameerr("A", "A4", errAnonField)
-- @errAnonField --
can't rename embedded fields: rename the type directly or name the field
-- @type/a/a.go --
package a

type A2 int //@rename("A", "A2", type)

--- before
+++ after
@@ -3 +3 @@
-type A int //@rename("A", "A2", type)
+type A2 int //@rename("A", "A2", type)
-- @type/b/b.go --
package b

import "example.com/a"

type B struct { a.A2 } //@renameerr("A", "A3", errAnonField)

var _ = new(B).A2 //@renameerr("A", "A4", errAnonField)

--- before
+++ after
@@ -5 +5 @@
-type B struct { a.A } //@renameerr("A", "A3", errAnonField)
+type B struct { a.A2 } //@renameerr("A", "A3", errAnonField)
@@ -7 +7 @@
-var _ = new(B).A //@renameerr("A", "A4", errAnonField)
+var _ = new(B).A2 //@renameerr("A", "A4", errAnonField)
250 changes: 110 additions & 140 deletions gopls/internal/regtest/marker/testdata/rename/generics.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,11 @@ func _[P ~[]int]() {
}

-- @mToM/a.go --
package a

type I int

func (I) M() {} //@rename("m", "M", mToM)

func _[P ~[]int]() {
_ = P{}
}

--- before
+++ after
@@ -5 +5 @@
-func (I) m() {} //@rename("m", "M", mToM)
+func (I) M() {} //@rename("m", "M", mToM)
-- g.go --
package a

Expand All @@ -51,29 +46,23 @@ func F[R any](r R) {
}

-- @PToQ/g.go --
package a

type S[Q any] struct { //@rename("P", "Q", PToQ)
P Q
F func(Q) Q
}

func F[R any](r R) {
var _ R //@rename("R", "S", RToS)
}

--- before
+++ after
@@ -3,3 +3,3 @@
-type S[P any] struct { //@rename("P", "Q", PToQ)
- P P
- F func(P) P
+type S[Q any] struct { //@rename("P", "Q", PToQ)
+ P Q
+ F func(Q) Q
-- @RToS/g.go --
package a

type S[P any] struct { //@rename("P", "Q", PToQ)
P P
F func(P) P
}

func F[S any](r S) {
var _ S //@rename("R", "S", RToS)
}

--- before
+++ after
@@ -8,2 +8,2 @@
-func F[R any](r R) {
- var _ R //@rename("R", "S", RToS)
+func F[S any](r S) {
+ var _ S //@rename("R", "S", RToS)
-- issue61635/p.go --
package issue61635

Expand All @@ -99,22 +88,14 @@ import "example.com/issue61635" // importing is necessary to repro golang/go#616
var _ issue61635.ElemData[string]

-- @SToT/issue61635/p.go --
package issue61635

type builder[T ~[]F, F ~string] struct { //@rename("S", "T", SToT)
name string
elements T
elemData map[F][]ElemData[F]
// other fields...
}

type ElemData[F ~string] struct {
Name F
// other fields...
}

type BuilderImpl[S ~[]F, F ~string] struct{ builder[S, F] }

--- before
+++ after
@@ -3 +3 @@
-type builder[S ~[]F, F ~string] struct { //@rename("S", "T", SToT)
+type builder[T ~[]F, F ~string] struct { //@rename("S", "T", SToT)
@@ -5 +5 @@
- elements S
+ elements T
-- instances/type.go --
package instances

Expand All @@ -133,73 +114,61 @@ func _() {
}

-- @RTos/instances/type.go --
package instances

type s[P any] struct { //@rename("R", "u", Rtou)
Next *s[P] //@rename("R", "s", RTos)
}

func (rv s[P]) Do(s[P]) s[P] { //@rename("Do", "Do1", DoToDo1)
var x s[P]
return rv.Do(x) //@rename("Do", "Do2", DoToDo2)
}

func _() {
var x s[int] //@rename("R", "r", RTor)
x = x.Do(x)
}

--- before
+++ after
@@ -3,2 +3,2 @@
-type R[P any] struct { //@rename("R", "u", Rtou)
- Next *R[P] //@rename("R", "s", RTos)
+type s[P any] struct { //@rename("R", "u", Rtou)
+ Next *s[P] //@rename("R", "s", RTos)
@@ -7,2 +7,2 @@
-func (rv R[P]) Do(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
- var x R[P]
+func (rv s[P]) Do(s[P]) s[P] { //@rename("Do", "Do1", DoToDo1)
+ var x s[P]
@@ -13 +13 @@
- var x R[int] //@rename("R", "r", RTor)
+ var x s[int] //@rename("R", "r", RTor)
-- @Rtou/instances/type.go --
package instances

type u[P any] struct { //@rename("R", "u", Rtou)
Next *u[P] //@rename("R", "s", RTos)
}

func (rv u[P]) Do(u[P]) u[P] { //@rename("Do", "Do1", DoToDo1)
var x u[P]
return rv.Do(x) //@rename("Do", "Do2", DoToDo2)
}

func _() {
var x u[int] //@rename("R", "r", RTor)
x = x.Do(x)
}

--- before
+++ after
@@ -3,2 +3,2 @@
-type R[P any] struct { //@rename("R", "u", Rtou)
- Next *R[P] //@rename("R", "s", RTos)
+type u[P any] struct { //@rename("R", "u", Rtou)
+ Next *u[P] //@rename("R", "s", RTos)
@@ -7,2 +7,2 @@
-func (rv R[P]) Do(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
- var x R[P]
+func (rv u[P]) Do(u[P]) u[P] { //@rename("Do", "Do1", DoToDo1)
+ var x u[P]
@@ -13 +13 @@
- var x R[int] //@rename("R", "r", RTor)
+ var x u[int] //@rename("R", "r", RTor)
-- @DoToDo1/instances/type.go --
package instances

type R[P any] struct { //@rename("R", "u", Rtou)
Next *R[P] //@rename("R", "s", RTos)
}

func (rv R[P]) Do1(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
var x R[P]
return rv.Do1(x) //@rename("Do", "Do2", DoToDo2)
}

func _() {
var x R[int] //@rename("R", "r", RTor)
x = x.Do1(x)
}

--- before
+++ after
@@ -7 +7 @@
-func (rv R[P]) Do(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
+func (rv R[P]) Do1(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
@@ -9 +9 @@
- return rv.Do(x) //@rename("Do", "Do2", DoToDo2)
+ return rv.Do1(x) //@rename("Do", "Do2", DoToDo2)
@@ -14 +14 @@
- x = x.Do(x)
+ x = x.Do1(x)
-- @DoToDo2/instances/type.go --
package instances

type R[P any] struct { //@rename("R", "u", Rtou)
Next *R[P] //@rename("R", "s", RTos)
}

func (rv R[P]) Do2(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
var x R[P]
return rv.Do2(x) //@rename("Do", "Do2", DoToDo2)
}

func _() {
var x R[int] //@rename("R", "r", RTor)
x = x.Do2(x)
}

--- before
+++ after
@@ -7 +7 @@
-func (rv R[P]) Do(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
+func (rv R[P]) Do2(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
@@ -9 +9 @@
- return rv.Do(x) //@rename("Do", "Do2", DoToDo2)
+ return rv.Do2(x) //@rename("Do", "Do2", DoToDo2)
@@ -14 +14 @@
- x = x.Do(x)
+ x = x.Do2(x)
-- instances/func.go --
package instances

Expand All @@ -208,33 +177,34 @@ func Foo[P any](p P) { //@rename("Foo", "Bar", FooToBar)
}

-- @FooToBar/instances/func.go --
package instances

func Bar[P any](p P) { //@rename("Foo", "Bar", FooToBar)
Bar(p) //@rename("Foo", "Baz", FooToBaz)
}

--- before
+++ after
@@ -3,2 +3,2 @@
-func Foo[P any](p P) { //@rename("Foo", "Bar", FooToBar)
- Foo(p) //@rename("Foo", "Baz", FooToBaz)
+func Bar[P any](p P) { //@rename("Foo", "Bar", FooToBar)
+ Bar(p) //@rename("Foo", "Baz", FooToBaz)
-- @FooToBaz/instances/func.go --
package instances

func Baz[P any](p P) { //@rename("Foo", "Bar", FooToBar)
Baz(p) //@rename("Foo", "Baz", FooToBaz)
}

--- before
+++ after
@@ -3,2 +3,2 @@
-func Foo[P any](p P) { //@rename("Foo", "Bar", FooToBar)
- Foo(p) //@rename("Foo", "Baz", FooToBaz)
+func Baz[P any](p P) { //@rename("Foo", "Bar", FooToBar)
+ Baz(p) //@rename("Foo", "Baz", FooToBaz)
-- @RTor/instances/type.go --
package instances

type r[P any] struct { //@rename("R", "u", Rtou)
Next *r[P] //@rename("R", "s", RTos)
}

func (rv r[P]) Do(r[P]) r[P] { //@rename("Do", "Do1", DoToDo1)
var x r[P]
return rv.Do(x) //@rename("Do", "Do2", DoToDo2)
}

func _() {
var x r[int] //@rename("R", "r", RTor)
x = x.Do(x)
}

--- before
+++ after
@@ -3,2 +3,2 @@
-type R[P any] struct { //@rename("R", "u", Rtou)
- Next *R[P] //@rename("R", "s", RTos)
+type r[P any] struct { //@rename("R", "u", Rtou)
+ Next *r[P] //@rename("R", "s", RTos)
@@ -7,2 +7,2 @@
-func (rv R[P]) Do(R[P]) R[P] { //@rename("Do", "Do1", DoToDo1)
- var x R[P]
+func (rv r[P]) Do(r[P]) r[P] { //@rename("Do", "Do1", DoToDo1)
+ var x r[P]
@@ -13 +13 @@
- var x R[int] //@rename("R", "r", RTor)
+ var x r[int] //@rename("R", "r", RTor)
18 changes: 11 additions & 7 deletions gopls/internal/regtest/marker/testdata/rename/issue43616.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@ var x struct{ foo } //@renameerr("foo", "baz", "rename the type directly")

var _ = x.foo //@renameerr("foo", "quux", "rename the type directly")
-- @fooToBar/p.go --
package issue43616

type bar int //@rename("foo", "bar", fooToBar),preparerename("oo","foo","foo")

var x struct{ bar } //@renameerr("foo", "baz", "rename the type directly")

var _ = x.bar //@renameerr("foo", "quux", "rename the type directly")
--- before
+++ after
@@ -3 +3 @@
-type foo int //@rename("foo", "bar", fooToBar),preparerename("oo","foo","foo")
+type bar int //@rename("foo", "bar", fooToBar),preparerename("oo","foo","foo")
@@ -5 +5 @@
-var x struct{ foo } //@renameerr("foo", "baz", "rename the type directly")
+var x struct{ bar } //@renameerr("foo", "baz", "rename the type directly")
@@ -7 +7 @@
-var _ = x.foo //@renameerr("foo", "quux", "rename the type directly")
+var _ = x.bar //@renameerr("foo", "quux", "rename the type directly")
Loading

0 comments on commit ae7e7d7

Please sign in to comment.