Hi Guix,
After the recent Go 1.13 update, the test for mongo-tools package
(currently at vervsion 3.4.0) fails with:
```
flag provided but not defined: -test.testlogfile
Usage of
/tmp/guix-build-mongo-tools-3.4.24.drv-0/go-build972699285/b001/mongofiles.test:
-convey-json
When true, emits results in JSON blocks. Default: 'false'
-convey-silent
When true, all output from GoConvey is suppressed.
-convey-story
When true, emits story output, otherwise emits dot output. When not
provided, this flag mirros the value of the '-test.v' flag
-test.types string
Comma-separated list of the types of tests to be run (default "unit")
FAIL github.com/mongodb/mongo-tools/mongofiles 0.002s
FAIL
command "go" "test" "-v" "github.com/mongodb/mongo-tools/mongofiles" failed
with status 1
```
I believe that this is related to a change in Go's testing module with
1.13: https://golang.org/doc/go1.13#testing
For more information, also see the Go bug report:
https://github.com/golang/go/issues/31859
Note that mongo-tools provides a number of tools in different Go packages,
and the mongofiles tool is the only one that has this error.
I have tried to adding a call to flag.Parse() in TestMain, which I added,
as described in the documentation [0], but that did not resolve the
problem. I'm not exactly sure why. The same fix worked for containerd [1].
[0] https://golang.org/pkg/testing/#hdr-Main
[1]
http://git.savannah.gnu.org/cgit/guix.git/commit/?id=13c8e747e86e39c0a8c6ec7da8c812d9bbcb682b
I wonder if the difference is that mongofiles does not use the flag
package directly, but flag.Parse() is being called in the wrong place in
one of its dependencies.
A note on versions: the problem persists in the latest release of
mongo-tools in the 3.4 series, 3.4.24. I have not tried the other release
series, 3.6, 4.0, and 4.2 because those require dependencies not yet
packaged in Guix.
I have opened a bug report upstream:
https://jira.mongodb.org/browse/TOOLS-2482
Thoughts or suggestions?
Best,
Jack