func executeAndGetStatus(runner *runner.TestRunner, message *gauge_messages.Message, writer execLogger.ExecutionLogger) *gauge_messages.ProtoExecutionResult { response, err := conn.GetResponseForGaugeMessage(message, runner.Connection) if err != nil { return &gauge_messages.ProtoExecutionResult{Failed: proto.Bool(true), ErrorMessage: proto.String(err.Error())} } if response.GetMessageType() == gauge_messages.Message_ExecutionStatusResponse { executionResult := response.GetExecutionStatusResponse().GetExecutionResult() if executionResult == nil { errMsg := "ProtoExecutionResult obtained is nil" writer.Critical(errMsg) return errorResult(errMsg) } return executionResult } else { errMsg := fmt.Sprintf("Expected ExecutionStatusResponse. Obtained: %s", response.GetMessageType()) writer.Critical(errMsg) return errorResult(errMsg) } }