Merge "Instead of collecting the procmem output in the test, change it as optional. This is to avoid the tool breakage will block the whole memory test sutie." into jb-mr1-dev

This commit is contained in:
Yu Shan Emily Lau
2012-10-09 23:05:36 -07:00
committed by Android (Google) Code Review
2 changed files with 40 additions and 37 deletions

View File

@@ -38,7 +38,7 @@ import android.util.Log;
public class MediaFrameworkPerfTestRunner extends InstrumentationTestRunner { public class MediaFrameworkPerfTestRunner extends InstrumentationTestRunner {
public static boolean mGetNativeHeapDump = false; public static boolean mGetNativeHeapDump = false;
public static boolean mGetProcmem = false;
@Override @Override
public TestSuite getAllTests() { public TestSuite getAllTests() {
@@ -61,6 +61,12 @@ public class MediaFrameworkPerfTestRunner extends InstrumentationTestRunner {
if (get_heap_dump != null) { if (get_heap_dump != null) {
mGetNativeHeapDump = true; mGetNativeHeapDump = true;
} }
String get_procmem = (String) icicle.get("get_procmem");
if (get_procmem != null) {
mGetProcmem = true;
}
} }
} }

View File

@@ -100,6 +100,7 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
super("com.android.mediaframeworktest", MediaFrameworkTest.class); super("com.android.mediaframeworktest", MediaFrameworkTest.class);
} }
@Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
//Insert a 2 second before launching the test activity. This is //Insert a 2 second before launching the test activity. This is
@@ -109,19 +110,26 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
if (MediaFrameworkPerfTestRunner.mGetNativeHeapDump) if (MediaFrameworkPerfTestRunner.mGetNativeHeapDump)
MediaTestUtil.getNativeHeapDump(this.getName() + "_before"); MediaTestUtil.getNativeHeapDump(this.getName() + "_before");
mProcMemWriter = new BufferedWriter(new FileWriter if (MediaFrameworkPerfTestRunner.mGetProcmem) {
(new File(MEDIA_PROCMEM_OUTPUT), true)); mProcMemWriter = new BufferedWriter(new FileWriter
mProcMemWriter.write(this.getName() + "\n"); (new File(MEDIA_PROCMEM_OUTPUT), true));
mMemWriter = new BufferedWriter(new FileWriter mProcMemWriter.write(this.getName() + "\n");
(new File(MEDIA_MEMORY_OUTPUT), true)); mMemWriter = new BufferedWriter(new FileWriter
(new File(MEDIA_MEMORY_OUTPUT), true));
}
} }
@Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
if (MediaFrameworkPerfTestRunner.mGetNativeHeapDump) if (MediaFrameworkPerfTestRunner.mGetNativeHeapDump)
MediaTestUtil.getNativeHeapDump(this.getName() + "_after"); MediaTestUtil.getNativeHeapDump(this.getName() + "_after");
mProcMemWriter.close();
mMemWriter.close(); if (MediaFrameworkPerfTestRunner.mGetProcmem) {
mMemWriter.write("\n");
mProcMemWriter.close();
mMemWriter.close();
}
super.tearDown(); super.tearDown();
} }
@@ -157,6 +165,7 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
} }
private final class RawPreviewCallback implements PreviewCallback { private final class RawPreviewCallback implements PreviewCallback {
@Override
public void onPreviewFrame(byte[] rawData, Camera camera) { public void onPreviewFrame(byte[] rawData, Camera camera) {
mPreviewDone.open(); mPreviewDone.open();
} }
@@ -285,19 +294,21 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
} }
} }
public void writeProcmemInfo() throws Exception{ public void writeProcmemInfo() throws Exception {
String cmd = "procmem " + getMediaserverPid(); if (MediaFrameworkPerfTestRunner.mGetProcmem) {
Process p = Runtime.getRuntime().exec(cmd); String cmd = "procmem " + getMediaserverPid();
Process p = Runtime.getRuntime().exec(cmd);
InputStream inStream = p.getInputStream(); InputStream inStream = p.getInputStream();
InputStreamReader inReader = new InputStreamReader(inStream); InputStreamReader inReader = new InputStreamReader(inStream);
BufferedReader inBuffer = new BufferedReader(inReader); BufferedReader inBuffer = new BufferedReader(inReader);
String s; String s;
while ((s = inBuffer.readLine()) != null) { while ((s = inBuffer.readLine()) != null) {
mProcMemWriter.write(s); mProcMemWriter.write(s);
mProcMemWriter.write("\n"); mProcMemWriter.write("\n");
}
mProcMemWriter.write("\n\n");
} }
mProcMemWriter.write("\n\n");
} }
public String captureMediaserverInfo() { public String captureMediaserverInfo() {
@@ -368,13 +379,11 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("H263 Video Playback Only\n");
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
mediaStressPlayback(MediaNames.VIDEO_HIGHRES_H263); mediaStressPlayback(MediaNames.VIDEO_HIGHRES_H263);
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, DECODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, DECODER_LIMIT);
assertTrue("H263 playback memory test", memoryResult); assertTrue("H263 playback memory test", memoryResult);
} }
@@ -385,13 +394,11 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("H264 Video Playback only\n");
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
mediaStressPlayback(MediaNames.VIDEO_H264_AMR); mediaStressPlayback(MediaNames.VIDEO_H264_AMR);
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, DECODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, DECODER_LIMIT);
assertTrue("H264 playback memory test", memoryResult); assertTrue("H264 playback memory test", memoryResult);
} }
@@ -402,7 +409,6 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("H263 video record only\n");
int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.H263); int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.H263);
assertTrue("H263 video recording frame rate", frameRate != -1); assertTrue("H263 video recording frame rate", frameRate != -1);
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
@@ -411,7 +417,6 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT);
assertTrue("H263 record only memory test", memoryResult); assertTrue("H263 record only memory test", memoryResult);
} }
@@ -422,7 +427,6 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("MPEG4 video record only\n");
int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.MPEG_4_SP); int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.MPEG_4_SP);
assertTrue("MPEG4 video recording frame rate", frameRate != -1); assertTrue("MPEG4 video recording frame rate", frameRate != -1);
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
@@ -431,7 +435,6 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT);
assertTrue("mpeg4 record only memory test", memoryResult); assertTrue("mpeg4 record only memory test", memoryResult);
} }
@@ -445,14 +448,12 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.H263); int frameRate = MediaProfileReader.getMaxFrameRateForCodec(MediaRecorder.VideoEncoder.H263);
assertTrue("H263 video recording frame rate", frameRate != -1); assertTrue("H263 video recording frame rate", frameRate != -1);
mMemWriter.write("Audio and h263 video record\n");
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
assertTrue(stressVideoRecord(frameRate, 352, 288, MediaRecorder.VideoEncoder.H263, assertTrue(stressVideoRecord(frameRate, 352, 288, MediaRecorder.VideoEncoder.H263,
MediaRecorder.OutputFormat.MPEG_4, MediaNames.RECORDED_VIDEO_3GP, false)); MediaRecorder.OutputFormat.MPEG_4, MediaNames.RECORDED_VIDEO_3GP, false));
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT);
assertTrue("H263 audio video record memory test", memoryResult); assertTrue("H263 audio video record memory test", memoryResult);
} }
@@ -463,13 +464,11 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("Audio record only\n");
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
stressAudioRecord(MediaNames.RECORDER_OUTPUT); stressAudioRecord(MediaNames.RECORDER_OUTPUT);
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, ENCODER_LIMIT);
assertTrue("audio record only memory test", memoryResult); assertTrue("audio record only memory test", memoryResult);
} }
@@ -480,13 +479,11 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase2<Med
boolean memoryResult = false; boolean memoryResult = false;
mStartPid = getMediaserverPid(); mStartPid = getMediaserverPid();
mMemWriter.write("Camera Preview Only\n");
for (int i = 0; i < NUM_STRESS_LOOP; i++) { for (int i = 0; i < NUM_STRESS_LOOP; i++) {
stressCameraPreview(); stressCameraPreview();
getMemoryWriteToLog(i); getMemoryWriteToLog(i);
writeProcmemInfo(); writeProcmemInfo();
} }
mMemWriter.write("\n");
memoryResult = validateMemoryResult(mStartPid, mStartMemory, CAMERA_LIMIT); memoryResult = validateMemoryResult(mStartPid, mStartMemory, CAMERA_LIMIT);
assertTrue("camera preview memory test", memoryResult); assertTrue("camera preview memory test", memoryResult);
} }