Track CPU usage of AOS processes in starterd

Change-Id: I7aff742ec992c20a09fcf1ffcf5de4cbdec4bef8
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/starter/starter_test.cc b/aos/starter/starter_test.cc
index 120fe38..033b3c7 100644
--- a/aos/starter/starter_test.cc
+++ b/aos/starter/starter_test.cc
@@ -287,27 +287,31 @@
       })
       ->Setup(watcher_loop.monotonic_now() + std::chrono::seconds(7));
 
-  watcher_loop.MakeWatcher(
-      "/aos", [&watcher_loop](const aos::starter::Status &status) {
-        const aos::starter::ApplicationStatus *ping_app_status =
-            FindApplicationStatus(status, "ping");
-        const aos::starter::ApplicationStatus *pong_app_status =
-            FindApplicationStatus(status, "pong");
-        if (ping_app_status == nullptr || pong_app_status == nullptr) {
-          return;
-        }
+  watcher_loop.MakeWatcher("/aos", [&watcher_loop](
+                                       const aos::starter::Status &status) {
+    const aos::starter::ApplicationStatus *ping_app_status =
+        FindApplicationStatus(status, "ping");
+    const aos::starter::ApplicationStatus *pong_app_status =
+        FindApplicationStatus(status, "pong");
+    if (ping_app_status == nullptr || pong_app_status == nullptr) {
+      return;
+    }
 
-        if (ping_app_status->has_state() &&
-            ping_app_status->state() != aos::starter::State::STOPPED) {
-          watcher_loop.Exit();
-          FAIL();
-        }
-        if (pong_app_status->has_state() &&
-            pong_app_status->state() == aos::starter::State::RUNNING) {
-          watcher_loop.Exit();
-          SUCCEED();
-        }
-      });
+    if (ping_app_status->has_state() &&
+        ping_app_status->state() != aos::starter::State::STOPPED) {
+      watcher_loop.Exit();
+      FAIL();
+    }
+    if (pong_app_status->has_state() &&
+        pong_app_status->state() == aos::starter::State::RUNNING) {
+      ASSERT_TRUE(pong_app_status->has_process_info());
+      ASSERT_EQ("pong", pong_app_status->process_info()->name()->string_view());
+      ASSERT_EQ(pong_app_status->pid(), pong_app_status->process_info()->pid());
+      ASSERT_LT(0.0, pong_app_status->process_info()->cpu_usage());
+      watcher_loop.Exit();
+      SUCCEED();
+    }
+  });
 
   std::thread starterd_thread([&starter] { starter.Run(); });
   watcher_loop.Run();