11 "github.com/anacrolix/missinggo"
12 "github.com/stretchr/testify/require"
15 type StatusWriter interface {
16 WriteStatus(io.Writer)
19 // Use StatusServer instead to allow -count > 1 when testing.
20 func ExportStatusWriter(sw StatusWriter, path string) {
22 fmt.Sprintf("/%s/%s", missinggo.GetTestName(), path),
23 func(w http.ResponseWriter, r *http.Request) {
29 type StatusServer struct {
34 func NewStatusServer(t *testing.T) (ret *StatusServer) {
35 l, err := net.Listen("tcp", "localhost:0")
36 require.NoError(t, err)
40 log.Printf("serving status at %q", l.Addr())
41 go http.Serve(l, &ret.sm)
45 func (me *StatusServer) HandleStatusWriter(sw StatusWriter, path string) {
46 me.sm.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) {
51 func (me StatusServer) Close() {