Skip to content

Commit

Permalink
Enable native SQLite on Windows
Browse files Browse the repository at this point in the history
Native SQLite is supported on Windows since [Robolectric 4.12](https://github.com/robolectric/robolectric/releases/tag/robolectric-4.12).

This commit makes it the default in `SQLiteModeConfigurer`, independently of the platform.
  • Loading branch information
MGaetan89 committed Jan 20, 2025
1 parent 4144af6 commit f6faa78
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@

import com.google.auto.service.AutoService;
import java.util.Properties;
import javax.annotation.Nonnull;
import org.robolectric.annotation.SQLiteMode;
import org.robolectric.annotation.SQLiteMode.Mode;
import org.robolectric.pluginapi.config.Configurer;
import org.robolectric.plugins.config.SingleValueConfigurer;
import org.robolectric.util.OsUtil;

/** Provides configuration to Robolectric for its @{@link SQLiteMode} annotation. */
@AutoService(Configurer.class)
Expand All @@ -18,7 +15,7 @@ public SQLiteModeConfigurer(
super(
SQLiteMode.class,
SQLiteMode.Mode.class,
defaultValue(),
SQLiteMode.Mode.NATIVE,
propertyFileLoader,
systemProperties);
}
Expand All @@ -27,13 +24,4 @@ public SQLiteModeConfigurer(
protected String propertyName() {
return "sqliteMode";
}

@Nonnull
private static SQLiteMode.Mode defaultValue() {
// NATIVE SQLite mode not supported on Windows
if (OsUtil.isWindows()) {
return Mode.LEGACY;
}
return Mode.NATIVE;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.robolectric.plugins;

import static com.google.common.base.StandardSystemProperty.OS_NAME;
import static com.google.common.truth.Truth.assertThat;

import java.util.Properties;
Expand Down Expand Up @@ -29,27 +28,4 @@ public void defaultConfigWithPrePopulatedSQLiteMode() {
systemProperties2.setProperty("robolectric.sqliteMode", "NATIVE");
assertThat(configurer2.defaultConfig()).isSameInstanceAs(Mode.NATIVE);
}

@Test
public void osArchSpecificConfig() {
String oldName = OS_NAME.value();
try {
System.setProperty("os.name", "Mac OS X");
SQLiteModeConfigurer configurer1 =
new SQLiteModeConfigurer(System.getProperties(), new PackagePropertiesLoader());
assertThat(configurer1.defaultConfig()).isSameInstanceAs(Mode.NATIVE);

System.setProperty("os.name", "Windows 7");
SQLiteModeConfigurer configurer2 =
new SQLiteModeConfigurer(System.getProperties(), new PackagePropertiesLoader());

assertThat(configurer2.defaultConfig()).isSameInstanceAs(Mode.LEGACY);
} finally {
if (oldName != null) {
System.setProperty("os.name", oldName);
} else {
System.clearProperty("os.name");
}
}
}
}

0 comments on commit f6faa78

Please sign in to comment.