| Index: testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java
|
| diff --git a/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java b/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java
|
| index e8c4055722fb6f6fd4b9134ff38765ccd94c1d61..46a490b3c68da041290c5836f9aa1d1c1c902fb5 100644
|
| --- a/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java
|
| +++ b/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java
|
| @@ -6,16 +6,14 @@ package org.chromium.native_test;
|
|
|
| import android.app.Activity;
|
| import android.content.Context;
|
| +import android.content.Intent;
|
| import android.os.Bundle;
|
| import android.os.Environment;
|
| import android.os.Handler;
|
|
|
| import org.chromium.base.CommandLine;
|
| +import org.chromium.base.JNINamespace;
|
| import org.chromium.base.Log;
|
| -import org.chromium.base.PathUtils;
|
| -import org.chromium.base.PowerMonitor;
|
| -import org.chromium.base.ResourceExtractor;
|
| -import org.chromium.base.library_loader.NativeLibraries;
|
|
|
| import java.io.File;
|
|
|
| @@ -24,6 +22,7 @@ import java.io.File;
|
| * Our tests need to go up to our own java classes, which is not possible using
|
| * the native activity class loader.
|
| */
|
| +@JNINamespace("testing::android")
|
| public class NativeTestActivity extends Activity {
|
| public static final String EXTRA_COMMAND_LINE_FILE =
|
| "org.chromium.native_test.NativeTestActivity.CommandLineFile";
|
| @@ -37,25 +36,54 @@ public class NativeTestActivity extends Activity {
|
| // We post a delayed task to run tests so that we do not block onCreate().
|
| private static final long RUN_TESTS_DELAY_IN_MS = 300;
|
|
|
| + private String mCommandLineFilePath;
|
| + private StringBuilder mCommandLineFlags = new StringBuilder();
|
| + private boolean mRunInSubThread = false;
|
| + private boolean mStdoutFifo = false;
|
| + private String mStdoutFilePath;
|
| +
|
| @Override
|
| public void onCreate(Bundle savedInstanceState) {
|
| super.onCreate(savedInstanceState);
|
| CommandLine.init(new String[]{});
|
|
|
| - // Needed by path_utils_unittest.cc
|
| - PathUtils.setPrivateDataDirectorySuffix("chrome", getApplicationContext());
|
| + parseArgumentsFromIntent(getIntent());
|
| + }
|
| +
|
| + private void parseArgumentsFromIntent(Intent intent) {
|
| + mCommandLineFilePath = intent.getStringExtra(EXTRA_COMMAND_LINE_FILE);
|
| + if (mCommandLineFilePath == null) {
|
| + mCommandLineFilePath = "";
|
| + } else {
|
| + File commandLineFile = new File(mCommandLineFilePath);
|
| + if (!commandLineFile.isAbsolute()) {
|
| + mCommandLineFilePath = Environment.getExternalStorageDirectory() + "/"
|
| + + mCommandLineFilePath;
|
| + }
|
| + Log.i(TAG, "command line file path: %s", mCommandLineFilePath);
|
| + }
|
|
|
| - ResourceExtractor resourceExtractor = ResourceExtractor.get(getApplicationContext());
|
| - resourceExtractor.setExtractAllPaksAndV8SnapshotForTesting();
|
| - resourceExtractor.startExtractingResources();
|
| - resourceExtractor.waitForCompletion();
|
| + String commandLineFlags = intent.getStringExtra(EXTRA_COMMAND_LINE_FLAGS);
|
| + if (commandLineFlags != null) mCommandLineFlags.append(commandLineFlags);
|
|
|
| - // Needed by system_monitor_unittest.cc
|
| - PowerMonitor.createForTests(this);
|
| + mRunInSubThread = intent.hasExtra(EXTRA_RUN_IN_SUB_THREAD);
|
|
|
| - loadLibraries();
|
| - Bundle extras = this.getIntent().getExtras();
|
| - if (extras != null && extras.containsKey(EXTRA_RUN_IN_SUB_THREAD)) {
|
| + mStdoutFilePath = intent.getStringExtra(EXTRA_STDOUT_FILE);
|
| + if (mStdoutFilePath == null) {
|
| + mStdoutFilePath = new File(getFilesDir(), "test.fifo").getAbsolutePath();
|
| + mStdoutFifo = true;
|
| + }
|
| + }
|
| +
|
| + protected void appendCommandLineFlags(String flags) {
|
| + mCommandLineFlags.append(" ").append(flags);
|
| + }
|
| +
|
| + @Override
|
| + public void onStart() {
|
| + super.onStart();
|
| +
|
| + if (mRunInSubThread) {
|
| // Create a new thread and run tests on it.
|
| new Thread() {
|
| @Override
|
| @@ -76,31 +104,8 @@ public class NativeTestActivity extends Activity {
|
| }
|
|
|
| private void runTests() {
|
| - String commandLineFlags = getIntent().getStringExtra(EXTRA_COMMAND_LINE_FLAGS);
|
| - if (commandLineFlags == null) commandLineFlags = "";
|
| -
|
| - String commandLineFilePath = getIntent().getStringExtra(EXTRA_COMMAND_LINE_FILE);
|
| - if (commandLineFilePath == null) {
|
| - commandLineFilePath = "";
|
| - } else {
|
| - File commandLineFile = new File(commandLineFilePath);
|
| - if (!commandLineFile.isAbsolute()) {
|
| - commandLineFilePath = Environment.getExternalStorageDirectory() + "/"
|
| - + commandLineFilePath;
|
| - }
|
| - Log.i(TAG, "command line file path: %s", commandLineFilePath);
|
| - }
|
| -
|
| - String stdoutFilePath = getIntent().getStringExtra(EXTRA_STDOUT_FILE);
|
| - boolean stdoutFifo = false;
|
| - if (stdoutFilePath == null) {
|
| - stdoutFilePath = new File(getFilesDir(), "test.fifo").getAbsolutePath();
|
| - stdoutFifo = true;
|
| - }
|
| -
|
| - // This directory is used by build/android/pylib/test_package_apk.py.
|
| - nativeRunTests(commandLineFlags, commandLineFilePath, stdoutFilePath, stdoutFifo,
|
| - getApplicationContext());
|
| + nativeRunTests(mCommandLineFlags.toString(), mCommandLineFilePath, mStdoutFilePath,
|
| + mStdoutFifo, getApplicationContext());
|
| finish();
|
| }
|
|
|
| @@ -111,14 +116,6 @@ public class NativeTestActivity extends Activity {
|
| Log.e(TAG, "[ RUNNER_FAILED ] could not load native library");
|
| }
|
|
|
| - private void loadLibraries() {
|
| - for (String library : NativeLibraries.LIBRARIES) {
|
| - Log.i(TAG, "loading: %s", library);
|
| - System.loadLibrary(library);
|
| - Log.i(TAG, "loaded: %s", library);
|
| - }
|
| - }
|
| -
|
| private native void nativeRunTests(String commandLineFlags, String commandLineFilePath,
|
| String stdoutFilePath, boolean stdoutFifo, Context appContext);
|
| }
|
|
|