uber-go / mock

GoMock is a mocking framework for the Go programming language.
Apache License 2.0
2.13k stars 109 forks source link

Fix go generate ./... issues under root #76

Closed r-hang closed 1 year ago

r-hang commented 1 year ago

Running go generate ./... on current main fails for a couple of reasons

(1) The go:generate command in /mockgen/internal/tests/aux_imports_embedded_interface/bugreport.go has an -aux_file argument that specifies a package faux that is not in the stdlib and therefore not discoverable in GOROOT. Fixing this with a fully qualified path causes another failure that is known and documented in mockgen/internal/tests/aux_imports_embedded_interface/README.md.

Because this failure is known, I've opted to comment out the command as documentation for reproducing the error.

(2) mockgen/internal/tests/internal_pkg/generate.go attempts to mock an interface package with reflect mode and runs into fundamental go restrictions of go build with internal package paths outside of the internal package scope allowed by go.

I've removed the generate directive here since this isn't a supported feature as the implementation of reflect mode creates a tempoorary directory and invokes go build there.

ref: reflect.go#L135 ref: #29

Not a failure fix but I've also changed type aliases of any back to type aliases of interface {}. Looking at the parsing logic, parse.go#L752 interface{} -> any causes ast.TypeSpec to no longer type check to an ast.InterfaceType and ends up removing generate mock code meant to test against regressions.

ref: #48