diff options
Diffstat (limited to 'tests/AndroidTests/src/com/android/unit_tests/TraceTest.java')
-rw-r--r-- | tests/AndroidTests/src/com/android/unit_tests/TraceTest.java | 215 |
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"); - } - } -} |