Index: base/android/java/src/org/chromium/base/library_loader/Linker.java |
diff --git a/base/android/java/src/org/chromium/base/library_loader/Linker.java b/base/android/java/src/org/chromium/base/library_loader/Linker.java |
index 11f98768469bb905f2664984e6aef954f2e61ef1..989158ade900aaf4ce496bfcdc9eafe5ff55df2b 100644 |
--- a/base/android/java/src/org/chromium/base/library_loader/Linker.java |
+++ b/base/android/java/src/org/chromium/base/library_loader/Linker.java |
@@ -305,8 +305,6 @@ public abstract class Linker { |
sSingleton = ModernLinker.create(); |
} else if (type == LINKER_IMPLEMENTATION_LEGACY) { |
sSingleton = LegacyLinker.create(); |
- } else { |
- return; |
} |
Log.i(TAG, "Forced linker: " + sSingleton.getClass().getName()); |
} |
@@ -318,19 +316,21 @@ public abstract class Linker { |
* |
* @return LINKER_IMPLEMENTATION_LEGACY or LINKER_IMPLEMENTATION_MODERN |
*/ |
- public int getImplementationForTesting() { |
+ public final int getImplementationForTesting() { |
// Sanity check. This method may only be called during tests. |
assertLinkerTestsAreEnabled(); |
synchronized (sSingletonLock) { |
- assertForTesting(sSingleton != null); |
+ assertForTesting(sSingleton == this); |
if (sSingleton instanceof ModernLinker) { |
return LINKER_IMPLEMENTATION_MODERN; |
} else if (sSingleton instanceof LegacyLinker) { |
return LINKER_IMPLEMENTATION_LEGACY; |
+ } else { |
+ Log.wtf(TAG, "Invalid linker: " + sSingleton.getClass().getName()); |
+ assertForTesting(false); |
} |
- Log.e(TAG, "Invalid linker: " + sSingleton.getClass().getName()); |
return 0; |
} |
} |
@@ -359,7 +359,7 @@ public abstract class Linker { |
* @param testRunnerClassName null or a String for the class name of the |
* TestRunner to use. |
*/ |
- public void setTestRunnerClassNameForTesting(String testRunnerClassName) { |
+ public final void setTestRunnerClassNameForTesting(String testRunnerClassName) { |
if (DEBUG) { |
Log.i(TAG, "setTestRunnerClassNameForTesting(" + testRunnerClassName + ") called"); |
} |
@@ -380,7 +380,7 @@ public abstract class Linker { |
* @return null or a String holding the name of the class implementing |
* the TestRunner set by calling setTestRunnerClassNameForTesting() previously. |
*/ |
- public String getTestRunnerClassNameForTesting() { |
+ public final String getTestRunnerClassNameForTesting() { |
// Sanity check. This method may only be called during tests. |
assertLinkerTestsAreEnabled(); |
@@ -399,7 +399,7 @@ public abstract class Linker { |
* runner class name. On subsequent calls, checks that the singleton produced by |
* the first call matches the requested type and test runner class name. |
*/ |
- public static void setupForTesting(int type, String testRunnerClassName) { |
+ public static final void setupForTesting(int type, String testRunnerClassName) { |
if (DEBUG) { |
Log.i(TAG, "setupForTesting(" + type + ", " + testRunnerClassName + ") called"); |
} |
@@ -433,8 +433,8 @@ public abstract class Linker { |
* @param memoryDeviceConfig LegacyLinker memory config, or 0 if unused |
* @param inBrowserProcess true if in the browser process |
*/ |
- protected void runTestRunnerClassForTesting(int memoryDeviceConfig, |
- boolean inBrowserProcess) { |
+ protected final void runTestRunnerClassForTesting(int memoryDeviceConfig, |
+ boolean inBrowserProcess) { |
if (DEBUG) { |
Log.i(TAG, "runTestRunnerClassForTesting called"); |
} |
@@ -443,7 +443,8 @@ public abstract class Linker { |
synchronized (mLock) { |
if (mTestRunnerClassName == null) { |
- return; |
+ Log.wtf(TAG, "Linker runtime tests not set up for this process"); |
+ assertForTesting(false); |
} |
if (DEBUG) { |
Log.i(TAG, "Instantiating " + mTestRunnerClassName); |
@@ -452,17 +453,16 @@ public abstract class Linker { |
try { |
testRunner = (TestRunner) Class.forName(mTestRunnerClassName).newInstance(); |
} catch (Exception e) { |
- Log.e(TAG, "Could not instantiate test runner class by name", e); |
- testRunner = null; |
+ Log.wtf(TAG, "Could not instantiate test runner class by name", e); |
+ assertForTesting(false); |
} |
- if (testRunner != null) { |
- if (!testRunner.runChecks(memoryDeviceConfig, inBrowserProcess)) { |
- Log.wtf(TAG, "Linker runtime tests failed in this process!!"); |
- assertForTesting(false); |
- } else { |
- Log.i(TAG, "All linker tests passed!"); |
- } |
+ |
+ if (!testRunner.runChecks(memoryDeviceConfig, inBrowserProcess)) { |
+ Log.wtf(TAG, "Linker runtime tests failed in this process"); |
+ assertForTesting(false); |
} |
+ |
+ Log.i(TAG, "All linker tests passed"); |
} |
} |
@@ -472,7 +472,7 @@ public abstract class Linker { |
* |
* @param memoryDeviceConfig MEMORY_DEVICE_CONFIG_LOW or MEMORY_DEVICE_CONFIG_NORMAL. |
*/ |
- public void setMemoryDeviceConfigForTesting(int memoryDeviceConfig) { |
+ public final void setMemoryDeviceConfigForTesting(int memoryDeviceConfig) { |
if (DEBUG) { |
Log.i(TAG, "setMemoryDeviceConfigForTesting(" + memoryDeviceConfig + ") called"); |
} |