CTS test for SharedPreferences MODE_MULTI_PROCESS
MODE_MULTI_PROCESS is introduced in Icf93f9df
Change-Id: I6154edab0024be46dcc0c4010186f0fc8e90ce95
diff --git a/tests/tests/content/src/android/content/cts/SharedPreferencesTest.java b/tests/tests/content/src/android/content/cts/SharedPreferencesTest.java
index bc81c4c..004fa9e 100644
--- a/tests/tests/content/src/android/content/cts/SharedPreferencesTest.java
+++ b/tests/tests/content/src/android/content/cts/SharedPreferencesTest.java
@@ -29,6 +29,7 @@
import android.content.Context;
import android.content.ContextWrapper;
import android.content.SharedPreferences;
+import android.os.StrictMode;
import android.preference.PreferenceManager;
import android.test.AndroidTestCase;
import android.util.Log;
@@ -317,4 +318,30 @@
}
}
+ public void testModeMultiProcess() {
+ // Pre-load it.
+ mContext.getSharedPreferences("multiprocessTest", 0);
+
+ final StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy();
+ try {
+ StrictMode.ThreadPolicy diskReadDeath =
+ new StrictMode.ThreadPolicy.Builder().detectDiskReads().penaltyDeath().build();
+ StrictMode.setThreadPolicy(diskReadDeath);
+
+ // This shouldn't hit disk. (it was already pre-loaded above)
+ mContext.getSharedPreferences("multiprocessTest", 0);
+
+ boolean didRead = false;
+ // This SHOULD hit disk. (multi-process flag is set)
+ try {
+ mContext.getSharedPreferences("multiprocessTest", Context.MODE_MULTI_PROCESS);
+ fail(); // we shouldn't get here.
+ } catch (StrictMode.StrictModeViolation e) {
+ didRead = true;
+ }
+ assertTrue(didRead);
+ } finally {
+ StrictMode.setThreadPolicy(oldPolicy);
+ }
+ }
}