As a way of distributing our go-test run across multiple machines, we are
exploring a client-server architecture. The way we'd like it to work is
that a "go test client" runs on the client machine(s), and repeatedly does
the following:
1) make an http GET request to "http://<server>/more_tests"
-- the http response is a list of go package specs (e.g. `./web/`,
`./web/internal`)
2) run the tests in those specs via the equivalent of `go test`
3) make another request to /more_tests
4) when /more_tests responds with an empty list, meaning no more tests,
the client emits the test status/summary information
-- it would also be ok to emit the test status/summary for each run,
rather than just at the end
I could put this client code "above" go test, and (2) could literally be
just exec-ing `go test <package>`. But in my experimenting the overhead of
calling `go test` is quite high: `go test -count 1 <pkg1>; go test -count 1
<pkg2>` is 50% slower than `go test -count1 <pkg1> <pkg2>`.
So I'd like to put the client code "inside" go test somehow. But I don't
have a good idea how to do that, especially in a way that doesn't depend on
go internals. Alternately, if there is some way to reduce the overhead of
calling `go test` -- I don't know where all the time is going -- that would
be a good solution too. Any ideas/suggestions?
Thanks!
craig
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/532523a9-7a2d-43af-a6f6-6c9e4d6343c7n%40googlegroups.com.