Skip to content

Commit

Permalink
Internal
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 459554544
  • Loading branch information
JuliaSullivanGoogle authored and Copybara-Service committed Jul 7, 2022
1 parent 9555811 commit 829e922
Show file tree
Hide file tree
Showing 98 changed files with 1,425 additions and 1,238 deletions.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
3 changes: 3 additions & 0 deletions .github/workflows/build_native_runtime.yml
Expand Up @@ -7,6 +7,9 @@ on:
pull_request:
branches: [ master, google ]

permissions:
contents: read

jobs:
build_native_runtime:
runs-on: ${{ matrix.os }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/check_aggregateDocs.yml
Expand Up @@ -7,6 +7,9 @@ on:
pull_request:
branches: [ master, google ]

permissions:
contents: read

jobs:
check_aggregateDocs:
runs-on: ubuntu-18.04
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/check_code_formatting.yml
Expand Up @@ -7,6 +7,9 @@ on:
pull_request:
branches: [ master, google ]

permissions:
contents: read

jobs:
check_code_formatting:
runs-on: ubuntu-18.04
Expand All @@ -20,7 +23,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11.0.14
java-version: 11

- uses: gradle/gradle-build-action@v2

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/gradle_wrapper_validation.yml
Expand Up @@ -7,6 +7,9 @@ on:
pull_request:
branches: [ master, google ]

permissions:
contents: read

jobs:
validation:
name: Validation
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/tests.yml
Expand Up @@ -20,7 +20,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11.0.14
java-version: 11

- uses: gradle/gradle-build-action@v2

Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11.0.14
java-version: 11

- uses: gradle/gradle-build-action@v2

Expand Down Expand Up @@ -115,7 +115,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11.0.14
java-version: 11

- uses: gradle/gradle-build-action@v2

Expand Down
30 changes: 16 additions & 14 deletions buildSrc/src/main/groovy/org/robolectric/gradle/AarDepsPlugin.java
@@ -1,7 +1,14 @@
package org.robolectric.gradle;

import static org.gradle.api.artifacts.type.ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE;

import com.android.build.gradle.internal.dependency.ExtractAarTransform;
import com.google.common.base.Joiner;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import org.gradle.api.Action;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
Expand All @@ -11,14 +18,6 @@
import org.gradle.api.tasks.compile.JavaCompile;
import org.jetbrains.annotations.NotNull;

import javax.inject.Inject;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;

import static org.gradle.api.internal.artifacts.ArtifactAttributes.ARTIFACT_FORMAT;

/**
* Resolve aar dependencies into jars for non-Android projects.
*/
Expand All @@ -27,11 +26,13 @@ public class AarDepsPlugin implements Plugin<Project> {
public void apply(Project project) {
project
.getDependencies()
.registerTransform(ClassesJarExtractor.class, reg -> {
reg.getParameters().getProjectName().set(project.getName());
reg.getFrom().attribute(ARTIFACT_FORMAT, "aar");
reg.getTo().attribute(ARTIFACT_FORMAT, "jar");
});
.registerTransform(
ClassesJarExtractor.class,
reg -> {
reg.getParameters().getProjectName().set(project.getName());
reg.getFrom().attribute(ARTIFACT_TYPE_ATTRIBUTE, "aar");
reg.getTo().attribute(ARTIFACT_TYPE_ATTRIBUTE, "jar");
});

project.afterEvaluate(
p ->
Expand All @@ -42,7 +43,8 @@ public void apply(Project project) {
// I suspect we're meant to use the org.gradle.usage attribute, but this
// works.
if (c.getName().endsWith("Classpath")) {
c.attributes(cfgAttrs -> cfgAttrs.attribute(ARTIFACT_FORMAT, "jar"));
c.attributes(
cfgAttrs -> cfgAttrs.attribute(ARTIFACT_TYPE_ATTRIBUTE, "jar"));
}
}));

Expand Down
@@ -0,0 +1,29 @@
package org.robolectric.gradle

import com.android.build.api.dsl.ManagedVirtualDevice
import org.gradle.api.Plugin
import org.gradle.api.Project

class GradleManagedDevicePlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.android.testOptions {
devices {
// ./gradlew -Pandroid.sdk.channel=3 nexusOneApi29DebugAndroidTest
nexusOneApi29(ManagedVirtualDevice) {
device = "Nexus One"
apiLevel = 29
systemImageSource = "aosp"
abi = "x86"
}
// ./gradlew -Pandroid.sdk.channel=3 nexusOneApi32DebugAndroidTest
nexusOneApi32(ManagedVirtualDevice) {
device = "Nexus One"
apiLevel = 32
systemImageSource = "google"
abi = "x86_64"
}
}
}
}
}
Expand Up @@ -36,12 +36,6 @@ class RoboJavaModulePlugin implements Plugin<Project> {
encoding = "utf-8" // Make sure source encoding is UTF-8
}

def noRebuild = System.getenv('NO_REBUILD') == "true"
if (noRebuild) {
println "[NO_REBUILD] $task will be skipped!"
task.outputs.upToDateWhen { true }
task.onlyIf { false }
}
}

ext.mavenArtifactName = project.path.substring(1).split(/:/).join("-")
Expand Down
4 changes: 2 additions & 2 deletions errorprone/build.gradle
Expand Up @@ -23,10 +23,10 @@ dependencies {
implementation "com.google.errorprone:error_prone_annotation:$errorproneVersion"
implementation "com.google.errorprone:error_prone_refaster:$errorproneVersion"
implementation "com.google.errorprone:error_prone_check_api:$errorproneVersion"
compileOnly "com.google.auto.service:auto-service-annotations:1.0-rc6"
compileOnly "com.google.auto.service:auto-service-annotations:$autoServiceVersion"
compileOnly(AndroidSdk.MAX_SDK.coordinates) { force = true }

annotationProcessor "com.google.auto.service:auto-service:1.0-rc6"
annotationProcessor "com.google.auto.service:auto-service:$autoServiceVersion"
annotationProcessor "com.google.errorprone:error_prone_core:$errorproneVersion"

// in jdk 9, tools.jar disappears!
Expand Down
5 changes: 4 additions & 1 deletion gradle.properties
Expand Up @@ -7,7 +7,7 @@ errorproneJavacVersion=9+181-r4173-1

# AndroidX test versions
axtVersion=1.4.0
espressoVersion=3.5.0-alpha05
espressoVersion=3.5.0-alpha07
axtJunitVersion=1.1.3

# AndroidX versions
Expand All @@ -30,3 +30,6 @@ guavaJREVersion=31.1-jre
asmVersion=9.2

kotilnVersion=1.4.31

autoServiceVersion=1.0-rc6
multidexVersion=2.0.1
4 changes: 2 additions & 2 deletions integration_tests/agp/build.gradle
Expand Up @@ -7,8 +7,8 @@ android {
compileSdk 32

defaultConfig {
minSdkVersion 16
targetSdkVersion 32
minSdk 16
targetSdk 32
}

compileOptions {
Expand Down
4 changes: 2 additions & 2 deletions integration_tests/agp/testsupport/build.gradle
Expand Up @@ -4,8 +4,8 @@ android {
compileSdk 32

defaultConfig {
minSdkVersion 16
targetSdkVersion 32
minSdk 16
targetSdk 32
}

compileOptions {
Expand Down
4 changes: 2 additions & 2 deletions integration_tests/androidx/build.gradle
Expand Up @@ -7,8 +7,8 @@ android {
compileSdk 32

defaultConfig {
minSdkVersion 16
targetSdkVersion 32
minSdk 16
targetSdk 32
}

compileOptions {
Expand Down
62 changes: 43 additions & 19 deletions integration_tests/androidx_test/build.gradle
@@ -1,14 +1,18 @@
import org.robolectric.gradle.AndroidProjectConfigPlugin
import org.robolectric.gradle.GradleManagedDevicePlugin

apply plugin: 'com.android.library'
apply plugin: AndroidProjectConfigPlugin
apply plugin: GradleManagedDevicePlugin

android {
compileSdk 32

defaultConfig {
minSdkVersion 16
targetSdkVersion 32
minSdk 16
targetSdk 32
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
Expand All @@ -22,28 +26,48 @@ android {
includeAndroidResources = true
}
}
sourceSets {
String sharedTestDir = 'src/sharedTest/'
String sharedTestSourceDir = sharedTestDir + 'java'
String sharedTestResourceDir = sharedTestDir + 'resources'
String sharedAndroidManifest = sharedTestDir + "AndroidManifest.xml"
test.resources.srcDirs += sharedTestResourceDir
test.java.srcDirs += sharedTestSourceDir
test.manifest.srcFile sharedAndroidManifest
androidTest.resources.srcDirs += sharedTestResourceDir
androidTest.java.srcDirs += sharedTestSourceDir
androidTest.manifest.srcFile sharedAndroidManifest
}
}

}

dependencies {
implementation("androidx.appcompat:appcompat:$appCompatVersion")
implementation("androidx.constraintlayout:constraintlayout:$constraintlayoutVersion")
implementation "androidx.appcompat:appcompat:$appCompatVersion"
implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion"
implementation "androidx.multidex:multidex:$multidexVersion"
implementation project(path: ':shadowapi', configuration: 'default')

// Testing dependencies
testImplementation("androidx.test:runner:$axtVersion")
testImplementation project(":robolectric")
testImplementation "junit:junit:${junitVersion}"
testImplementation("androidx.test:rules:$axtVersion")
testImplementation("androidx.test.espresso:espresso-intents:$espressoVersion")
testImplementation("androidx.test.espresso:espresso-core:$espressoVersion")
testImplementation("androidx.test.ext:truth:$axtVersion")
testImplementation("androidx.test:core:$axtVersion")
testImplementation("androidx.fragment:fragment:$axtVersion")
testImplementation("androidx.fragment:fragment-testing:$axtVersion")

// TODO: this should be a transitive dependency of core...
testImplementation("androidx.lifecycle:lifecycle-common:$lifecycleVersion")
testImplementation("androidx.test.ext:junit:$axtJunitVersion")
testImplementation("com.google.truth:truth:$truthVersion")
testImplementation "androidx.test:runner:$axtVersion"
testImplementation "junit:junit:$junitVersion"
testImplementation "androidx.test:rules:$axtVersion"
testImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
testImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
testImplementation "androidx.test.ext:truth:$axtVersion"
testImplementation "androidx.test:core:$axtVersion"
testImplementation "androidx.fragment:fragment:$axtVersion"
testImplementation "androidx.fragment:fragment-testing:$axtVersion"
testImplementation "androidx.test.ext:junit:$axtJunitVersion"
testImplementation "com.google.truth:truth:$truthVersion"

androidTestImplementation "androidx.test:runner:$axtVersion"
androidTestImplementation "junit:junit:$junitVersion"
androidTestImplementation "androidx.test:rules:$axtVersion"
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
androidTestImplementation "androidx.test.ext:truth:$axtVersion"
androidTestImplementation "androidx.test:core:$axtVersion"
androidTestImplementation "androidx.test.ext:junit:$axtJunitVersion"
androidTestImplementation "com.google.truth:truth:$truthVersion"
}
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.robolectric.integrationtests.axt">

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="27"/>

<application>
<activity android:name=".EspressoActivity" android:exported="true"/>
</application>

<instrumentation
android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="org.robolectric.integration.axt"/>

</manifest>
26 changes: 26 additions & 0 deletions integration_tests/androidx_test/src/sharedTest/AndroidManifest.xml
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.robolectric.integrationtests.axt">

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="27"/>

<application>
<activity android:name="org.robolectric.integrationtests.axt.ActivityTestRuleTest$TranscriptActivity"
android:exported="true"/>
<activity android:name=".EspressoActivity" android:exported="true"/>
<activity android:name=".ActivityScenarioTest$LifecycleOwnerActivity" android:exported="true"/>
<activity android:name=".ActivityScenarioTest$TranscriptActivity" android:exported = "true"/>
<activity-alias
android:name=".ActivityScenarioTestAlias"
android:targetActivity=".ActivityScenarioTest$TranscriptActivity" />
<activity android:name=".IntentsTest$ResultCapturingActivity" android:exported = "true"/>
</application>

<instrumentation
android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="org.robolectric.integration.axt"/>

</manifest>

0 comments on commit 829e922

Please sign in to comment.