shell: fix hiding real cause of failure with dcheck

Bug: 161442238
Change-Id: I4f5dc177a9772a25193617ae7b4508ae8ced8222
diff --git a/src/trace_processor/trace_processor_shell.cc b/src/trace_processor/trace_processor_shell.cc
index 939bf50..e8e2c18 100644
--- a/src/trace_processor/trace_processor_shell.cc
+++ b/src/trace_processor/trace_processor_shell.cc
@@ -627,15 +627,12 @@
   return util::OkStatus();
 }
 
-util::Status RunQueryWithoutOutput(const std::vector<std::string>& queries) {
+util::Status RunQueriesWithoutOutput(const std::vector<std::string>& queries) {
   for (const auto& sql_query : queries) {
     PERFETTO_DLOG("Executing query: %s", sql_query.c_str());
 
     auto it = g_tp->ExecuteQuery(sql_query);
-    util::Status status = it.Status();
-    if (!status.ok()) {
-      return status;
-    }
+    RETURN_IF_ERROR(it.Status());
     if (it.Next()) {
       return util::ErrStatus("Unexpected result from a query.");
     }
@@ -643,8 +640,8 @@
   return util::OkStatus();
 }
 
-util::Status RunQueryAndPrintResult(const std::vector<std::string>& queries,
-                                    FILE* output) {
+util::Status RunQueriesAndPrintResult(const std::vector<std::string>& queries,
+                                      FILE* output) {
   bool is_first_query = true;
   bool has_output = false;
   for (const auto& sql_query : queries) {
@@ -656,11 +653,7 @@
     PERFETTO_ILOG("Executing query: %s", sql_query.c_str());
 
     auto it = g_tp->ExecuteQuery(sql_query);
-    util::Status status = it.Status();
-    if (!status.ok()) {
-      return util::ErrStatus("Encountered error while running queries: %s",
-                             status.c_message());
-    }
+    RETURN_IF_ERROR(it.Status());
     if (it.ColumnCount() == 0) {
       bool it_has_more = it.Next();
       PERFETTO_DCHECK(!it_has_more);
@@ -676,17 +669,13 @@
       // as SELECT RUN_METRIC(<metric file>) as suppress_query_output and
       // RUN_METRIC returns a single null.
       bool has_next = it.Next();
+      RETURN_IF_ERROR(it.Status());
       PERFETTO_DCHECK(has_next);
       PERFETTO_DCHECK(it.Get(0).is_null());
 
       has_next = it.Next();
+      RETURN_IF_ERROR(it.Status());
       PERFETTO_DCHECK(!has_next);
-
-      status = it.Status();
-      if (!status.ok()) {
-        return util::ErrStatus("Encountered error while running queries: %s",
-                               status.c_message());
-      }
       continue;
     }
 
@@ -694,13 +683,8 @@
       return util::ErrStatus(
           "More than one query generated result rows. This is unsupported.");
     }
-    status = PrintQueryResultAsCsv(&it, output);
     has_output = true;
-
-    if (!status.ok()) {
-      return util::ErrStatus("Encountered error while running queries: %s",
-                             status.c_message());
-    }
+    RETURN_IF_ERROR(PrintQueryResultAsCsv(&it, output));
   }
   return util::OkStatus();
 }
@@ -1035,11 +1019,18 @@
                            query_file_path.c_str());
   }
   RETURN_IF_ERROR(LoadQueries(file.get(), &queries));
+
+  util::Status status;
   if (expect_output) {
-    return RunQueryAndPrintResult(queries, stdout);
+    status = RunQueriesAndPrintResult(queries, stdout);
   } else {
-    return RunQueryWithoutOutput(queries);
+    status = RunQueriesWithoutOutput(queries);
   }
+  if (!status.ok()) {
+    return util::ErrStatus("Encountered error while running queries: %s",
+                           status.c_message());
+  }
+  return util::OkStatus();
 }
 
 util::Status RunMetrics(const CommandLineOptions& options) {