diff options
author | Googler <noreply@google.com> | 2024-04-09 15:57:05 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-09 15:57:53 -0700 |
commit | b4cd9364b1dbaaec7714d938fa372cb931e0f0ac (patch) | |
tree | 254bf774ed2adbe9316586c60e7644cbe79079e1 | |
parent | d525b84ecbd51c5c280e00af844b000986efd481 (diff) | |
download | robolectric-b4cd9364b1dbaaec7714d938fa372cb931e0f0ac.tar.gz |
Prevent sqlite test that require native support from running when not supported.
The tests had assumed SqliteMode.MODE.NATIVE was set, when that is not possible in all environments (notably aosp/main).
PiperOrigin-RevId: 623305341
-rw-r--r-- | integration_tests/ctesque/src/sharedTest/java/android/database/SQLiteDatabaseTest.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/integration_tests/ctesque/src/sharedTest/java/android/database/SQLiteDatabaseTest.java b/integration_tests/ctesque/src/sharedTest/java/android/database/SQLiteDatabaseTest.java index df6592e00..d74d805bc 100644 --- a/integration_tests/ctesque/src/sharedTest/java/android/database/SQLiteDatabaseTest.java +++ b/integration_tests/ctesque/src/sharedTest/java/android/database/SQLiteDatabaseTest.java @@ -5,6 +5,7 @@ import static android.os.Build.VERSION_CODES.M; import static com.google.common.truth.Truth.assertThat; import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertThrows; +import static org.junit.Assume.assumeTrue; import android.content.ContentValues; import android.database.sqlite.SQLiteConstraintException; @@ -19,6 +20,7 @@ import com.google.common.base.Throwables; import com.google.common.io.ByteStreams; import java.io.File; import java.io.PrintStream; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.ExecutorService; @@ -28,6 +30,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; +import org.robolectric.annotation.SQLiteMode; import org.robolectric.annotation.internal.DoNotInstrument; /** Compatibility test for {@link android.database.sqlite.SQLiteDatabase} */ @@ -38,6 +41,21 @@ public class SQLiteDatabaseTest { private SQLiteDatabase database; private File databasePath; + private boolean usingRobolectricNativeSQLite() { + try { + Class<?> cr = + SQLiteDatabaseTest.class + .getClassLoader() + .loadClass("org.robolectric.config.ConfigurationRegistry"); + Method m = cr.getMethod("get", Class.class); + SQLiteMode.Mode mode = (SQLiteMode.Mode) m.invoke(null, SQLiteMode.Mode.class); + return mode == SQLiteMode.Mode.NATIVE; + } catch (ReflectiveOperationException ce) { + // Not running in Robolectric + return true; + } + } + @Before public void setUp() { databasePath = ApplicationProvider.getApplicationContext().getDatabasePath("database.db"); @@ -232,6 +250,7 @@ public class SQLiteDatabaseTest { @Config(minSdk = LOLLIPOP) @SdkSuppress(minSdkVersion = LOLLIPOP) public void regex_selection() { + assumeTrue(usingRobolectricNativeSQLite()); ContentValues values = new ContentValues(); values.put("first_column", "test"); database.insert("table_name", null, values); @@ -245,6 +264,7 @@ public class SQLiteDatabaseTest { @Test @SdkSuppress(minSdkVersion = M) // This test fails on emulators for SDKs 21 and 22 public void fts4() { + assumeTrue(usingRobolectricNativeSQLite()); database.execSQL( "CREATE VIRTUAL TABLE documents USING fts4 (" + "id INTEGER PRIMARY KEY, " @@ -288,6 +308,7 @@ public class SQLiteDatabaseTest { @SdkSuppress(minSdkVersion = LOLLIPOP) @Test public void uniqueConstraintViolation_errorMessage() { + assumeTrue(usingRobolectricNativeSQLite()); database.execSQL( "CREATE TABLE my_table(\n" + " _id INTEGER PRIMARY KEY AUTOINCREMENT, \n" |