summaryrefslogtreecommitdiffstats
path: root/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/AndroidTests/src/com/android/unit_tests/TraceTest.java')
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TraceTest.java215
1 files changed, 0 insertions, 215 deletions
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java b/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java
deleted file mode 100644
index 6705080..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.os.Debug;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-/**
- * This class is used to test the native tracing support. Run this test
- * while tracing on the emulator and then run traceview to view the trace.
- */
-public class TraceTest extends AndroidTestCase
-{
- private static final String TAG = "TraceTest";
- private int eMethodCalls = 0;
- private int fMethodCalls = 0;
- private int gMethodCalls = 0;
-
- @SmallTest
- public void testNativeTracingFromJava()
- {
- long start = System.currentTimeMillis();
- Debug.startNativeTracing();
- //nativeMethod();
- int count = 0;
- for (int ii = 0; ii < 20; ii++) {
- count = eMethod();
- }
- Debug.stopNativeTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- Log.i(TAG, "eMethod calls: " + eMethodCalls
- + " fMethod calls: " + fMethodCalls
- + " gMethod calls: " + gMethodCalls);
- }
-
- // This should not run in the automated suite.
- @Suppress
- public void disableTestNativeTracingFromC()
- {
- long start = System.currentTimeMillis();
- nativeMethodAndStartTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- }
-
- native void nativeMethod();
- native void nativeMethodAndStartTracing();
-
- @LargeTest
- public void testMethodTracing()
- {
- long start = System.currentTimeMillis();
- Debug.startMethodTracing("traceTest");
- topMethod();
- Debug.stopMethodTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- }
-
- private void topMethod() {
- aMethod();
- bMethod();
- cMethod();
- dMethod(5);
-
- Thread t1 = new aThread();
- t1.start();
- Thread t2 = new aThread();
- t2.start();
- Thread t3 = new aThread();
- t3.start();
- try {
- t1.join();
- t2.join();
- t3.join();
- } catch (InterruptedException e) {
- }
- }
-
- private class aThread extends Thread {
- @Override
- public void run() {
- aMethod();
- bMethod();
- cMethod();
- }
- }
-
- /** Calls other methods to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int aMethod() {
- int count = 0;
- for (int ii = 0; ii < 6; ii++) {
- count += bMethod();
- }
- for (int ii = 0; ii < 5; ii++) {
- count += cMethod();
- }
- for (int ii = 0; ii < 4; ii++) {
- count += dMethod(ii);
- }
- return count;
- }
-
- /** Calls another method to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int bMethod() {
- int count = 0;
- for (int ii = 0; ii < 4; ii++) {
- count += cMethod();
- }
- return count;
- }
-
- /** Executes a simple loop to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int cMethod() {
- int count = 0;
- for (int ii = 0; ii < 1000; ii++) {
- count += ii;
- }
- return count;
- }
-
- /** Calls itself recursively to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int dMethod(int level) {
- int count = 0;
- if (level > 0) {
- count = dMethod(level - 1);
- }
- for (int ii = 0; ii < 100; ii++) {
- count += ii;
- }
- if (level == 0) {
- return count;
- }
- return dMethod(level - 1);
- }
-
- public int eMethod() {
- eMethodCalls += 1;
- int count = fMethod();
- count += gMethod(3);
- return count;
- }
-
- public int fMethod() {
- fMethodCalls += 1;
- int count = 0;
- for (int ii = 0; ii < 10; ii++) {
- count += ii;
- }
- return count;
- }
-
- public int gMethod(int level) {
- gMethodCalls += 1;
- int count = level;
- if (level > 1)
- count += gMethod(level - 1);
- return count;
- }
-
- /*
- * This causes the native shared library to be loaded when the
- * class is first used. The library is only loaded once, even if
- * multiple classes include this line.
- *
- * The library must be in java.library.path, which is derived from
- * LD_LIBRARY_PATH. The actual library name searched for will be
- * "libtrace_test.so" under Linux, but may be different on other
- * platforms.
- */
- static {
- Log.i(TAG, "Loading trace_test native library...");
- try {
- System.loadLibrary("trace_test");
- Log.i(TAG, "Successfully loaded trace_test native library");
- }
- catch (UnsatisfiedLinkError ule) {
- Log.w(TAG, "Could not load trace_test native library");
- }
- }
-}