Many thanks Chris, that's a wonderful idea and I've successfully got rid of the test mode flags!
On Tuesday, 25 July 2017 05:47:30 UTC+2, Chris Broadfoot wrote: > > One way around the flag problem is to accept an interface, instead of > using testing.T. > > Watch Mitchell Hashimoto's talk from GopherCon from about 39m30s: > https://youtu.be/8hQG7QlcLBk?t=2368 > > http://github.com/mitchellh/go-testing-interface > > On Mon, Jul 24, 2017 at 1:44 AM, roger peppe <rogp...@gmail.com > <javascript:>> wrote: > >> >> >> On 24 July 2017 at 09:12, Howard Guo <guoh...@gmail.com <javascript:>> >> wrote: >> >>> Thanks Nigel! I should definitely consider improving the test case. >>> >>> Go compiler appears to automatically places test flags into executable >>> whenever "testing" package is included - no matter the function using >>> "testing" package is dead code or otherwise. So here's a bug report for go: >>> https://github.com/golang/go/issues/21141 >>> >> >> Although this could be considered a bug, it's not one that can be fixed, >> because people rely on this behaviour of the testing package. >> >> Consider it a warning not to include testing dependencies in production >> code. >> >> >>> >>> Kind regards, >>> Howard >>> >>> On Sunday, 23 July 2017 06:54:28 UTC+2, Nigel Tao wrote: >>>> >>>> On Sat, Jul 22, 2017 at 7:08 PM, Howard Guo <guoh...@gmail.com> wrote: >>>> > https://github.com/HouzuoGuo/laitos >>>> >>>> It's tangential to your question, but out of curiousity, I skimmed the >>>> source code. In things like func TestUDPServer in >>>> https://github.com/HouzuoGuo/laitos/blob/master/frontend/plain/udp.go, >>>> you say: >>>> >>>> var stoppedNormally bool >>>> go func() { >>>> etc >>>> stoppedNormally = true >>>> }() >>>> etc >>>> server.Stop() >>>> time.Sleep(1 * time.Second) >>>> if !stoppedNormally { etc } >>>> >>>> This is an example of incorrect synchronization as per >>>> https://golang.org/ref/mem#tmp_10 >>>> >>>> There may be other such races in your code. I didn't do an exhaustive >>>> review. It may be worthwhile to run your test suite under the race >>>> detector. >>>> >>> -- >>> 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...@googlegroups.com <javascript:>. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> 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...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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. For more options, visit https://groups.google.com/d/optout.