func Run(mockServer *server.Server, q string) ([]interface{}, []errors.Error, errors.Error) { var metrics value.Tristate scanConfiguration := &scanConfigImpl{} base := server.NewBaseRequest(q, nil, nil, nil, "json", 0, value.FALSE, metrics, value.TRUE, scanConfiguration, "", nil) mr := &MockResponse{ results: []interface{}{}, warnings: []errors.Error{}, done: make(chan bool), } query := &MockQuery{ BaseRequest: *base, response: mr, } select { case mockServer.Channel() <- query: // Wait until the request exits. <-query.CloseNotify() default: // Timeout. return nil, nil, errors.NewError(nil, "Query timed out") } // wait till all the results are ready <-mr.done return mr.results, mr.warnings, mr.err }