Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Unified Diff: base/test/android/javatests/src/org/chromium/base/test/util/PerfTest.java

Issue 683113005: Update from chromium https://crrev.com/302282 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/test/android/javatests/src/org/chromium/base/test/util/PerfTest.java
diff --git a/base/test/android/javatests/src/org/chromium/base/test/util/PerfTest.java b/base/test/android/javatests/src/org/chromium/base/test/util/PerfTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b3495ccf53e593bebcc6c76cc2e5d5a2905e3de
--- /dev/null
+++ b/base/test/android/javatests/src/org/chromium/base/test/util/PerfTest.java
@@ -0,0 +1,88 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.base.test.util;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This annotation tells the test harness that this method will be used in a performance test.
+ * This means that the test harness will use the parameters here to figure out which trace calls
+ * to track specifically for this test.
+ * <p>
+ * Each of the lists ({@link #traceNames()}, {@link #graphNames()},
+ * and {@link #seriesNames()}) should have the same number of
+ * elements.
+ * <p>
+ * To write a performance test, you need to do the following:
+ * <p><ol>
+ * <li>Add TraceEvent calls to the code that you want to track.
+ * <ul>
+ * <li> For FPS, add a TraceEvent.instant call where you want to time and detect calls.
+ * <li> For code segment timing, add {@link org.chromium.base.TraceEvent#begin()}/
+ * {@link org.chromium.base.TraceEvent#end()} calls around the code
+ * segment (does not have to be in the same method).
+ * </ul>
+ * <li> Write a Java Automated UI Test that instruments this code.
+ * <li> Add this PerfTest annotation to the test method.
+ * <ul>
+ * <li> traceNames must be a list of the names of all of the TraceEvent calls you want to track.
+ * <li> graphNames must be a list, one for each traceName, of which graph the trace data should be
+ * placed in (does not have to be unique).
+ * <li> seriesNames must be a list, one for each traceName, of what the series should be called
+ * for this trace data (has to be unique per graphName).
+ * <li> When checked in, the buildbots will automatically run this test and the results will show up
+ * under the Java Automation UI Performance graph, where there will be tabs for each graphName
+ * specified.
+ * <li> To test your performance test, run the following command and you should see the performance
+ * numbers printed to the console.
+ * </ol>
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+public @interface PerfTest {
+ /**
+ * @return A list of the trace calls to track.
+ */
+ public String[] traceNames();
+
+ /**
+ * @return A list, one for each traceName, that represents which graph this trace call should
+ * be output on. This does not have to be unique if there are multiple series per
+ * graph.
+ */
+ public String[] graphNames();
+
+ /**
+ * @return A list, one for each traceName, that represents the series this trace call should be
+ * on the corresponding graph. This should be unique.
+ */
+ public String[] seriesNames();
+
+ /**
+ * @return Whether or not we should automatically start and stop tracing for the test. This
+ * makes it easier to run some tests where tracing is started and stopped at the
+ * beginning and end of that particular test.
+ */
+ public boolean autoTrace() default false;
+
+ /**
+ * @return Whether this performance test should track memory usage in addition to time. If
+ * true, this will track memory usage when tracking time deltas or instants. With each
+ * graph defined in the annotation for tracking time, this will add an additional graph
+ * suffixed with a memory identifier containing the same series as those tracking the
+ * timing performance but instead will be tracking memory consumption.
+ */
+ public boolean traceMemory() default true;
+
+ /**
+ * @return Whether this performance test should track time or (optionally) only memory. If
+ * false, this will not automatically track time deltas or instants when logging
+ * memory info.
+ */
+ public boolean traceTiming() default true;
+}
« no previous file with comments | « base/test/android/javatests/src/org/chromium/base/test/util/Manual.java ('k') | base/test/launcher/test_launcher_ios.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698