diff options
| author | Guang Zhu <guangzhu@google.com> | 2009-04-16 10:16:36 -0700 |
|---|---|---|
| committer | Guang Zhu <guangzhu@google.com> | 2009-04-16 10:21:06 -0700 |
| commit | 23a4e8816266e2cac98d7980ca66748a55b0e09f (patch) | |
| tree | df169ce7485365f67540d64d6e2123743e8aee08 | |
| parent | 7a430cf152fa6a55be2f04e1318baafb69bb5bc0 (diff) | |
| download | frameworks_base-23a4e8816266e2cac98d7980ca66748a55b0e09f.zip frameworks_base-23a4e8816266e2cac98d7980ca66748a55b0e09f.tar.gz frameworks_base-23a4e8816266e2cac98d7980ca66748a55b0e09f.tar.bz2 | |
* Update the way that run_page_cycler.py detectes instrumentation failures.
* Use Debug.getMemoryInfo to collect memory information in LoadTestAutoTest.
| -rwxr-xr-x | tests/DumpRenderTree/run_page_cycler.py | 3 | ||||
| -rw-r--r-- | tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java | 60 |
2 files changed, 42 insertions, 21 deletions
diff --git a/tests/DumpRenderTree/run_page_cycler.py b/tests/DumpRenderTree/run_page_cycler.py index 9a099b5..7f728a3 100755 --- a/tests/DumpRenderTree/run_page_cycler.py +++ b/tests/DumpRenderTree/run_page_cycler.py @@ -59,7 +59,8 @@ def main(options, args): run_load_test_cmd = run_load_test_cmd_prefix + " -e class com.android.dumprendertree.LoadTestsAutoTest#runTest -e path \"" + path + "\" -e timeout " + timeout_ms + run_load_test_cmd_postfix (adb_output, adb_error) = subprocess.Popen(run_load_test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() - if adb_output.find('INSTRUMENTATION_FAILED') != -1: + if adb_output.find('INSTRUMENTATION_FAILED') != -1 or \ + adb_output.find('Process crashed.') != -1: logging.error("Error happened : " + adb_output) sys.exit(1) diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java index b064dbb..637f125 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java @@ -16,14 +16,14 @@ package com.android.dumprendertree; -import android.app.Activity; import android.app.Instrumentation; -import android.app.Instrumentation.ActivityMonitor; import android.content.Intent; import android.util.Log; import android.os.Bundle; +import android.os.Debug; +import android.os.Debug.MemoryInfo; import android.test.ActivityInstrumentationTestCase2; import com.android.dumprendertree.TestShellActivity; @@ -33,6 +33,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.PrintStream; class StreamPipe extends Thread { InputStream in; @@ -92,35 +93,54 @@ public class LoadTestsAutoTest extends ActivityInstrumentationTestCase2<TestShel // TODO(fqian): let am instrumentation pass in the command line, currently // am instrument does not allow spaces in the command. - runPostShellCommand("/system/bin/dumpsys meminfo"); + dumpMemoryInfo(); // Kill activity activity.finish(); } - private void runPostShellCommand(String cmd) { - if (cmd == null || cmd.length() == 0) - return; - + private void dumpMemoryInfo() { try { - // Call dumpsys meminfo - Process proc = Runtime.getRuntime().exec(cmd); - // Append output to LOAD_TEST_RESULT - InputStream input = proc.getInputStream(); - InputStream error = proc.getErrorStream(); + Log.v(LOGTAG, "Dumping memory information."); + FileOutputStream out = new FileOutputStream(LOAD_TEST_RESULT, true); - - StreamPipe p_in = new StreamPipe(input, out); - StreamPipe p_err = new StreamPipe(error, System.err); + PrintStream ps = new PrintStream(out); + + MemoryInfo mi = new MemoryInfo(); + Debug.getMemoryInfo(mi); - p_in.start(); - p_err.start(); + //try to fake the dumpsys format + //this will eventually be changed to XML + String format = "%15s:%9d%9d%9d%9d"; + String pss = + String.format(format, "(Pss)", + mi.nativePss, mi.dalvikPss, mi.otherPss, + mi.nativePss + mi.dalvikPss + mi.otherPss); + String sd = + String.format(format, "(shared dirty)", + mi.nativeSharedDirty, mi.dalvikSharedDirty, mi.otherSharedDirty, + mi.nativeSharedDirty + mi.dalvikSharedDirty + mi.otherSharedDirty); + String pd = + String.format(format, "(priv dirty)", + mi.nativePrivateDirty, mi.dalvikPrivateDirty, mi.otherPrivateDirty, + mi.nativePrivateDirty + mi.dalvikPrivateDirty + mi.otherPrivateDirty); - proc.waitFor(); + ps.print("\n\n\n"); + ps.println("** MEMINFO in pid 0 [com.android.dumprendertree] **"); + ps.println(" native dalvik other total"); + ps.println(" size: 12060 5255 N/A 17315"); + ps.println(" allocated: 12060 5255 N/A 17315"); + ps.println(" free: 12060 5255 N/A 17315"); + ps.println(pss); + ps.println(sd); + ps.println(pd); + ps.print("\n\n\n"); + ps.flush(); + ps.close(); + out.flush(); + out.close(); } catch (IOException e) { Log.e(LOGTAG, e.getMessage()); - } catch (InterruptedException e) { - Log.e(LOGTAG, e.getMessage()); } } |
