Ah, it just clicked.

You're indirectly using go/packages, which will (unless configured not
to), cause changes to the go.mod and go.sum file. This configuration
happens for this by adding "-mod=readonly" to
packages.Config.BuildFlags (I think). But this isn't exposed via the
go/analysis API (the config is populated here[1] where the user can't
access it).

This can be confirmed by seeing that building your checker, resetting
the changes to go.mod and go.sum and then manually running the binary
on your test cases.

I'm not sure what to do about this.

[1]
https://github.com/golang/tools/blob/582c62ec74d06936c88d4b760c63cbc2925e69c7/go/analysis/internal/checker/checker.go#L152-L155

On Sun, 2020-11-01 at 04:52 -0800, Miki Tebeka wrote:
> I try to change the "go run" command to use "-mod=readonly", didn't
> help.
> 
> On Sunday, November 1, 2020 at 10:23:07 AM UTC+2 kortschak wrote:
> > You're using go test, with -mod=readonly, but it's running your
> > code 
> > with go run, without -mod=readonly. 
> > 
> > Either you'll need to unconditionally pass -mod=readonly to go run
> > in 
> > the regression_test.go file, or find wether it's been passed to go
> > test 
> > and then conditionally pass it to go run. 
> > 
> > 
> > On Sun, 2020-11-01 at 01:09 -0700, Miki Tebeka wrote: 
> > > I *do* use "go test", see 
> > > https://github.com/tebeka/recheck/blob/master/regression_test.go 
> > > 
> > > On Sunday, November 1, 2020 at 8:43:33 AM UTC+2 
> > amits...@gmail.com 
> > > wrote: 
> > > > 
> > > > On Sun, 1 Nov 2020, 4:07 pm Miki Tebeka, <miki....@gmail.com> 
> > > > wrote: 
> > > > > Hi, 
> > > > > 
> > > > > I wrote a regexp linter (https://github.com/tebeka/recheck) 
> > > > > that's using golang.org/x/tools/go/analysis. 
> > > > > 
> > > > > To test the tool, I run "go run ./cmd/recheck
> > testdata/ok.go" 
> > > > > (using os/exec). The problem is that after the test, go.mod
> > & 
> > > > > go.sum are modified since there are some external imports in
> > the 
> > > > > go files under testdata. 
> > > > > 
> > > > > I've tried using -mod=readonly, building & then running,
> > moving 
> > > > > the test file to /tmp - all of them didn't work, the mod
> > files 
> > > > > are still changed after the test. 
> > > > > 
> > > > > Any idea how can I prevent the test from modifing the mod
> > files? 
> > > > 
> > > > Your example above suggests you are not using go test to
> > execute 
> > > > your tests? 
> > > > 
> > > > > Thanks, 
> > > > > Miki 
> > 
> > 
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/354542dc-0648-4383-98af-63ff4f7dabcfn%40googlegroups.com
> .


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/8311ca8d52158493a088d88bef33ee93f82c6e7a.camel%40kortschak.io.

Reply via email to