Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd5c1f7c authored by Yu Shan Emily Lau's avatar Yu Shan Emily Lau Committed by Android (Google) Code Review
Browse files

Merge "Suppress the 1 hour video editor export test case which exceed the 5...

Merge "Suppress the 1 hour video editor export test case which exceed the 5 mins large test limit. Add the media test util for capturing the memory usage. Bug# 4108259 Change-Id: I751a622ff5dfbb1d563f63a2cbc9db71d194a0f6" into honeycomb-mr1
parents 0edefea8 9dab7847
Loading
Loading
Loading
Loading
+108 −2
Original line number Diff line number Diff line
@@ -17,9 +17,13 @@
package com.android.mediaframeworktest;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;

import android.os.Debug;
import android.os.Environment;
import android.util.Log;

/**
 *
@@ -30,10 +34,13 @@ public class MediaTestUtil {
    private MediaTestUtil(){
    }

    private static String TAG = "MediaTestUtil";
    private static final String STORAGE_PATH =
        Environment.getExternalStorageDirectory().toString();
    private static int mMediaStartMemory = 0;
    private static int mDrmStartMemory = 0;

    //Catpure the heapdump for memory leaksage analysis\
    //Catpure the heapdump for memory leaksage analysis
    public static void getNativeHeapDump (String name) throws Exception {
        System.gc();
        System.runFinalization();
@@ -42,4 +49,103 @@ public class MediaTestUtil {
        Debug.dumpNativeHeap(o.getFD());
        o.close();
    }

    public static String captureMemInfo(String type) {
        String cm = "ps ";
        cm += type;
        String memoryUsage = null;

        int ch;
        try {
            Process p = Runtime.getRuntime().exec(cm);
            InputStream in = p.getInputStream();
            StringBuffer sb = new StringBuffer(512);
            while ((ch = in.read()) != -1) {
                sb.append((char) ch);
            }
            memoryUsage = sb.toString();
        } catch (IOException e) {
            Log.v(TAG, e.toString());
        }
        String[] poList = memoryUsage.split("\r|\n|\r\n");
        String memusage = poList[1].concat("\n");
        return memusage;
    }

    public static int getMediaServerVsize() {
        String memoryUsage = captureMemInfo("mediaserver");
        String[] poList2 = memoryUsage.split("\t|\\s+");
        String vsize = poList2[3];
        int vsizevalue = Integer.parseInt(vsize);
        Log.v(TAG, "VSIZE = " + vsizevalue);
        return vsizevalue;
    }

    public static int getDrmServerVsize() {
        String memoryUsage = captureMemInfo("drmserver");
        String[] poList2 = memoryUsage.split("\t|\\s+");
        String vsize = poList2[3];
        int vsizevalue = Integer.parseInt(vsize);
        Log.v(TAG, "VSIZE = " + vsizevalue);
        return vsizevalue;
    }

    // Write the ps mediaserver output to the file
    public static void getMediaServerMemoryLog(Writer output, int writeCount, int totalCount)
            throws Exception {
        String memusage = null;

        if (writeCount == 0) {
            mMediaStartMemory = getMediaServerVsize();
            output.write("Start memory : " + mMediaStartMemory + "\n");
        }
        memusage = captureMemInfo("mediaserver");
        output.write(memusage);
    }

    // Write the ps drmserver output to the file
    public static void getDrmServerMemoryLog(Writer output, int writeCount, int totalCount)
            throws Exception {
        String memusage = null;

        if (writeCount == 0) {
            mDrmStartMemory = getDrmServerVsize();
            output.write("Start memory : " + mDrmStartMemory + "\n");
        }
        memusage = captureMemInfo("drmserver");
        output.write(memusage);
    }

    // Write the ps drmserver output to the file
    public static void getDrmServerMemorySummary(Writer output, String tag) throws Exception {

        getTestMemorySummary(output, tag, "drmMem");
    }

    // Write the ps drmserver output to the file
    public static void getMediaServerMemorySummary(Writer output, String tag) throws Exception {

        getTestMemorySummary(output, tag, "mediaMem");
    }

    public static void getTestMemorySummary(Writer output, String tag, String type)
            throws Exception {

        int endMemory = 0;
        int memDiff = 0;

        if (type == "mediaMem") {
            endMemory = getMediaServerVsize();
            memDiff = endMemory - mMediaStartMemory;
        } else if (type == "drmMem") {
            endMemory = getDrmServerVsize();
            memDiff = endMemory - mDrmStartMemory;
        }
        output.write("End Memory :" + endMemory + "\n");
        if (memDiff < 0) {
            memDiff = 0;
        }
        output.write(tag + " total diff = " + memDiff);
        output.write("\n\n");
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.util.Log;

import com.android.mediaframeworktest.MediaFrameworkTest;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.Suppress;
import com.android.mediaframeworktest.VideoEditorHelper;

public class VideoEditorExportTest extends
@@ -701,6 +702,7 @@ public class VideoEditorExportTest extends
     *
     * @throws Exception
     */
    @Suppress
    @LargeTest
    public void testExportDuration1Hour() throws Exception {
        final String videoItemFilename1 = INPUT_FILE_PATH +