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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/532523a9-7a2d-43af-a6f6-6c9e4d6343c7n%40googlegroups.com.

Reply via email to