Open spongedu opened 5 years ago
In production environment it's unlikely for the failpoint users to define a marker function in package main, But I think people incline to use such a simple test program to try failpint at first glimpse as I have done.
@lonng as we've discussed yesterday.
There is an imperfect solution here.
go run main.go binding__failpoint_binding__.go
@lonng Yes.... if we want to solve this thoroughly, maybe there's one method, but I'm not sure if its graceful.
binding__failpoint_binding__.go
under package github.com/pingcap/failpoint
as binding__failpoint_binding_UNIQ_IDENTITY__.go
__curpkg_UNIQ_IDENTITY__()
...... @spongedu I don't think put the generated files in github.com/pingcap/failpoint/
is a good idea.
We should investigate a more graceful solution, How about putting the _curpkg_
to the end of the file?
So what about the extra import:
import "reflect"
?
@spongedu Oops
Bug Report
Please answer these questions before submitting your issue. Thanks!
For example, we have a file named main.go:
After transfrom the code with
failpoint-ctl enable
, the generatedbinding__failpoint_binding__.go
looks like this:You may notice that
binding__failpoint_binding__.go
is also in packagemain
, that meansbinding__failpoint_binding__.go
could not be found bymain.go
.Run
go run main.go
then, you will find the following error:program panics due to failpoint
What did you see instead?
Versions of the failpoint
$ ./bin/failpoint-ctl -V ReleaseVersion bf45ab2 BuildTS 2019-05-15 09:48:44 GitHash bf45ab20bfc48d624b61944a4820768c16d7db99 GitBranch master GoVersion go version go1.12 darwin/amd64