Add traces of methods to runners

Test: presubmit
Bug: 256019482
Change-Id: I6fb5502edb79cb7be49c3acdd225774e2503e24d
diff --git a/test_framework/com/android/tradefed/testtype/ArtRunTest.java b/test_framework/com/android/tradefed/testtype/ArtRunTest.java
index 3899f65..9798385 100644
--- a/test_framework/com/android/tradefed/testtype/ArtRunTest.java
+++ b/test_framework/com/android/tradefed/testtype/ArtRunTest.java
@@ -22,6 +22,7 @@
 import com.android.tradefed.invoker.TestInformation;
 import com.android.tradefed.invoker.logger.InvocationMetricLogger;
 import com.android.tradefed.invoker.logger.InvocationMetricLogger.InvocationMetricKey;
+import com.android.tradefed.invoker.tracing.CloseableTraceScope;
 import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
 import com.android.tradefed.result.FileInputStreamSource;
@@ -222,7 +223,7 @@
         // Path to temporary remote directory used to store files used in test.
         String tmpTestRemoteDirPath = null;
 
-        try {
+        try (CloseableTraceScope ignored = new CloseableTraceScope(testId.toString())) {
             if (mCollectTestsOnly) {
                 return;
             }
diff --git a/test_framework/com/android/tradefed/testtype/GTestResultParser.java b/test_framework/com/android/tradefed/testtype/GTestResultParser.java
index dcba424..16cf9b0 100644
--- a/test_framework/com/android/tradefed/testtype/GTestResultParser.java
+++ b/test_framework/com/android/tradefed/testtype/GTestResultParser.java
@@ -17,6 +17,7 @@
 
 import com.android.ddmlib.IShellOutputReceiver;
 import com.android.ddmlib.MultiLineReceiver;
+import com.android.tradefed.invoker.tracing.CloseableTraceScope;
 import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
 import com.android.tradefed.result.FailureDescription;
@@ -100,6 +101,7 @@
     private int mNumTestsExpected = 0;
     private long mTotalRunTime = 0;
     private boolean mTestInProgress = false;
+    private CloseableTraceScope mMethodScope = null;
     private boolean mTestRunInProgress = false;
     private final String mTestRunName;
     private final Collection<ITestInvocationListener> mTestListeners;
@@ -412,12 +414,10 @@
         return mTestInProgress;
     }
 
-    /**
-     * Set state to indicate we've started running a test.
-     *
-     */
-    private void setTestStarted() {
+    /** Set state to indicate we've started running a test. */
+    private void setTestStarted(TestDescription testId) {
         mTestInProgress = true;
+        mMethodScope = new CloseableTraceScope(testId.toString());
     }
 
     /**
@@ -426,6 +426,10 @@
      */
     private void setTestEnded() {
         mTestInProgress = false;
+        if (mMethodScope != null) {
+            mMethodScope.close();
+            mMethodScope = null;
+        }
     }
 
     /**
@@ -591,7 +595,7 @@
         for (ITestInvocationListener listener : mTestListeners) {
             listener.testStarted(testId, testResult.mStartTimeMs);
         }
-        setTestStarted();
+        setTestStarted(testId);
     }
 
     /**