diff options
Diffstat (limited to 'tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java')
| -rw-r--r-- | tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java | 60 |
1 files changed, 40 insertions, 20 deletions
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()); } } |
