Minor fixes on VTS tests

- call startSvStatus()/startNmea() before calling start(). This will
  avoid missing the first SvStatus
- in TestGnssSvInfoFieldsTest, avoid calling list::back() if the list is
  empty.

Bug: 235062809
Test: atest VtsHalGnssTargetTest
Change-Id: I612d42e23085dbb0b32da328869bfd443ee66362
diff --git a/gnss/aidl/vts/gnss_hal_test.cpp b/gnss/aidl/vts/gnss_hal_test.cpp
index 407ac0c..0e1218e 100644
--- a/gnss/aidl/vts/gnss_hal_test.cpp
+++ b/gnss/aidl/vts/gnss_hal_test.cpp
@@ -141,18 +141,18 @@
     }
     SetPositionMode(min_interval_msec, low_power_mode);
 
-    auto status = aidl_gnss_hal_->start();
-    EXPECT_TRUE(status.isOk());
-
     if (start_sv_status) {
-        status = aidl_gnss_hal_->startSvStatus();
+        auto status = aidl_gnss_hal_->startSvStatus();
         EXPECT_TRUE(status.isOk());
     }
     if (start_nmea) {
-        status = aidl_gnss_hal_->startNmea();
+        auto status = aidl_gnss_hal_->startNmea();
         EXPECT_TRUE(status.isOk());
     }
 
+    auto status = aidl_gnss_hal_->start();
+    EXPECT_TRUE(status.isOk());
+
     /*
      * GnssLocationProvider support of AGPS SUPL & XtraDownloader is not available in VTS,
      * so allow time to demodulate ephemeris over the air.
diff --git a/gnss/aidl/vts/gnss_hal_test_cases.cpp b/gnss/aidl/vts/gnss_hal_test_cases.cpp
index f926c40..3696233 100644
--- a/gnss/aidl/vts/gnss_hal_test_cases.cpp
+++ b/gnss/aidl/vts/gnss_hal_test_cases.cpp
@@ -291,10 +291,12 @@
         EXPECT_GT(aidl_gnss_cb_->sv_info_list_cbq_.retrieve(sv_info_lists, kNumSvInfoLists,
                                                             kTimeoutSeconds),
                   0);
-        last_sv_info_list = sv_info_lists.back();
-    } while (last_sv_info_list.size() == 0);
+        if (!sv_info_lists.empty()) {
+            last_sv_info_list = sv_info_lists.back();
+            ALOGD("last_sv_info size = %d", (int)last_sv_info_list.size());
+        }
+    } while (!sv_info_lists.empty() && last_sv_info_list.size() == 0);
 
-    ALOGD("last_sv_info size = %d", (int)last_sv_info_list.size());
     bool nonZeroCn0Found = false;
     for (auto sv_info : last_sv_info_list) {
         EXPECT_TRUE(sv_info.basebandCN0DbHz >= 0.0 && sv_info.basebandCN0DbHz <= 65.0);