Skip to content

Commit d373a8d

Browse files
Joshua Selbofacebook-github-bot
Joshua Selbo
authored andcommitted
Fix React Native Robolectric 4.4 deps (#30073)
Summary: Pull Request resolved: #30073 Changelog: [Android][Added] - Test infra: Robolectric 4.3.1 -> 4.4 upgrade Reviewed By: fkgozali Differential Revision: D24009953 fbshipit-source-id: 70549187f4af0abd2ea10f6725eecadbaef7281b
1 parent c92e767 commit d373a8d

File tree

3 files changed

+220
-3
lines changed

3 files changed

+220
-3
lines changed

ReactAndroid/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ POM_PACKAGING=aar
77

88
MOCKITO_CORE_VERSION=2.26.0
99
POWERMOCK_VERSION=2.0.2
10-
ROBOLECTRIC_VERSION=4.3.1
10+
ROBOLECTRIC_VERSION=4.4
1111
JUNIT_VERSION=4.12
1212
FEST_ASSERT_CORE_VERSION=2.0M10
1313

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
load("//tools/build_defs:fb_native_wrapper.bzl", "fb_native")
2+
load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "rn_android_library", "rn_prebuilt_jar")
3+
4+
rn_android_library(
5+
name = "robolectric",
6+
visibility = ["PUBLIC"],
7+
exported_deps = [
8+
":android-all-4.1.2_r1-robolectric-r1",
9+
":bouncycastle",
10+
":guava",
11+
":javax-annotation-api",
12+
":javax-inject",
13+
":robolectric4-annotations-prebuilt",
14+
":robolectric4-junit-prebuilt",
15+
":robolectric4-pluginapi-prebuilt",
16+
":robolectric4-plugins-maven-dependency-resolver-prebuilt",
17+
":robolectric4-prebuilt",
18+
":robolectric4-resources-prebuilt",
19+
":robolectric4-sandbox-prebuilt",
20+
":robolectric4-shadowapi-prebuilt",
21+
":robolectric4-shadows-framework-prebuilt",
22+
":robolectric4-utils-prebuilt",
23+
":robolectric4-utils-reflector-prebuilt",
24+
react_native_dep("third-party/java/asm:asm"),
25+
react_native_dep("third-party/java/sqlite:sqlite"),
26+
react_native_dep("third-party/java/junit:junit"),
27+
react_native_dep("third-party/android/androidx:test-monitor"),
28+
],
29+
)
30+
31+
rn_prebuilt_jar(
32+
name = "android-all-4.1.2_r1-robolectric-r1", # name defines filename used by robolectric in runtime
33+
binary_jar = ":robolectric-android-all-binary.jar",
34+
visibility = ["//ReactAndroid/..."],
35+
)
36+
37+
# This new rule will make the .jar file appear in the "right" location,
38+
# though that may change in the future
39+
fb_native.export_file(
40+
name = "robolectric-android-all-binary.jar",
41+
src = ":robolectric-android-all-binary-remote.jar",
42+
out = "../android-all-4.1.2_r1-robolectric-r1.jar", # name defines filename used by robolectric in runtime
43+
)
44+
45+
fb_native.remote_file(
46+
name = "robolectric-android-all-binary-remote.jar",
47+
sha1 = "8355a2da59fe0233ca45070ca32f08da98d0b806",
48+
url = "mvn:org.robolectric:android-all:jar:4.1.2_r1-robolectric-r1",
49+
)
50+
51+
rn_prebuilt_jar(
52+
name = "bouncycastle",
53+
binary_jar = ":bouncycastle-binary.jar",
54+
visibility = ["//ReactAndroid/..."],
55+
)
56+
57+
fb_native.remote_file(
58+
name = "bouncycastle-binary.jar",
59+
sha1 = "320b989112f00a63a3bcfa5a98f31a4f865a20fa",
60+
url = "mvn:org.bouncycastle:bcprov-jdk15on:jar:1.65",
61+
)
62+
63+
rn_prebuilt_jar(
64+
name = "guava",
65+
binary_jar = ":guava-binary.jar",
66+
visibility = ["//ReactAndroid/..."],
67+
)
68+
69+
fb_native.remote_file(
70+
name = "guava-binary.jar",
71+
sha1 = "ef69663836b339db335fde0df06fb3cd84e3742b",
72+
url = "mvn:com.google.guava:guava:jar:26.0-android",
73+
)
74+
75+
rn_prebuilt_jar(
76+
name = "robolectric4-prebuilt",
77+
binary_jar = ":robolectric4.jar",
78+
)
79+
80+
fb_native.remote_file(
81+
name = "robolectric4.jar",
82+
sha1 = "418c5bfae392fdbf71cd463a42a3e8c3b839a924",
83+
url = "mvn:org.robolectric:robolectric:jar:4.4",
84+
)
85+
86+
rn_prebuilt_jar(
87+
name = "robolectric4-annotations-prebuilt",
88+
binary_jar = ":robolectric4-annotations.jar",
89+
)
90+
91+
fb_native.remote_file(
92+
name = "robolectric4-annotations.jar",
93+
sha1 = "70fc5b1699467dfd7de606fc6c02ff9fc1816d9f",
94+
url = "mvn:org.robolectric:annotations:jar:4.4",
95+
)
96+
97+
rn_prebuilt_jar(
98+
name = "robolectric4-junit-prebuilt",
99+
binary_jar = ":robolectric4-junit.jar",
100+
)
101+
102+
fb_native.remote_file(
103+
name = "robolectric4-junit.jar",
104+
sha1 = "fbcda51d8e6f3a3897ae5cedc7aa481815745290",
105+
url = "mvn:org.robolectric:junit:jar:4.4",
106+
)
107+
108+
rn_prebuilt_jar(
109+
name = "robolectric4-pluginapi-prebuilt",
110+
binary_jar = ":robolectric4-pluginapi.jar",
111+
)
112+
113+
fb_native.remote_file(
114+
name = "robolectric4-pluginapi.jar",
115+
sha1 = "1ee94260f8c51620a35eac33fc1efc01350c751f",
116+
url = "mvn:org.robolectric:pluginapi:jar:4.4",
117+
)
118+
119+
rn_prebuilt_jar(
120+
name = "robolectric4-plugins-maven-dependency-resolver-prebuilt",
121+
binary_jar = ":robolectric4-plugins-maven-dependency-resolver.jar",
122+
)
123+
124+
fb_native.remote_file(
125+
name = "robolectric4-plugins-maven-dependency-resolver.jar",
126+
sha1 = "9241a3c4bd01627447c76d9b67614808c78ffdd9",
127+
url = "mvn:org.robolectric:plugins-maven-dependency-resolver:jar:4.4",
128+
)
129+
130+
rn_prebuilt_jar(
131+
name = "robolectric4-resources-prebuilt",
132+
binary_jar = ":robolectric4-resources.jar",
133+
)
134+
135+
fb_native.remote_file(
136+
name = "robolectric4-resources.jar",
137+
sha1 = "a2ee1324bcb62724e6cbfa655bdb5683948a554c",
138+
url = "mvn:org.robolectric:resources:jar:4.4",
139+
)
140+
141+
rn_prebuilt_jar(
142+
name = "robolectric4-sandbox-prebuilt",
143+
binary_jar = ":robolectric4-sandbox.jar",
144+
)
145+
146+
fb_native.remote_file(
147+
name = "robolectric4-sandbox.jar",
148+
sha1 = "03cedd73c5aedaf79fb9a593552816c9fb3282f2",
149+
url = "mvn:org.robolectric:sandbox:jar:4.4",
150+
)
151+
152+
rn_prebuilt_jar(
153+
name = "robolectric4-shadowapi-prebuilt",
154+
binary_jar = ":robolectric4-shadowapi.jar",
155+
)
156+
157+
fb_native.remote_file(
158+
name = "robolectric4-shadowapi.jar",
159+
sha1 = "529649474b53cf8f6f4a483044ade43aebed8a4c",
160+
url = "mvn:org.robolectric:shadowapi:jar:4.4",
161+
)
162+
163+
rn_prebuilt_jar(
164+
name = "robolectric4-shadows-framework-prebuilt",
165+
binary_jar = ":robolectric4-shadows-framework.jar",
166+
)
167+
168+
fb_native.remote_file(
169+
name = "robolectric4-shadows-framework.jar",
170+
sha1 = "90028766e71353ad6f57d7bcb56ac0d861da18c3",
171+
url = "mvn:org.robolectric:shadows-framework:jar:4.4",
172+
)
173+
174+
rn_prebuilt_jar(
175+
name = "robolectric4-utils-prebuilt",
176+
binary_jar = ":robolectric4-utils.jar",
177+
)
178+
179+
fb_native.remote_file(
180+
name = "robolectric4-utils.jar",
181+
sha1 = "c54b2638d64e7bd4e1e45c4fe8038305402bd711",
182+
url = "mvn:org.robolectric:utils:jar:4.4",
183+
)
184+
185+
rn_prebuilt_jar(
186+
name = "robolectric4-utils-reflector-prebuilt",
187+
binary_jar = ":robolectric4-utils-reflector.jar",
188+
)
189+
190+
fb_native.remote_file(
191+
name = "robolectric4-utils-reflector.jar",
192+
sha1 = "44c40ac0d2ef1e7c8b0f6c4e224ef26d356170f1",
193+
url = "mvn:org.robolectric:utils-reflector:jar:4.4",
194+
)
195+
196+
rn_prebuilt_jar(
197+
name = "javax-annotation-api",
198+
binary_jar = ":javax-annotation-api.jar",
199+
)
200+
201+
fb_native.remote_file(
202+
name = "javax-annotation-api.jar",
203+
sha1 = "934c04d3cfef185a8008e7bf34331b79730a9d43",
204+
url = "mvn:javax.annotation:javax.annotation-api:jar:1.3.2",
205+
)
206+
207+
rn_prebuilt_jar(
208+
name = "javax-inject",
209+
binary_jar = ":javax-inject.jar",
210+
)
211+
212+
fb_native.remote_file(
213+
name = "javax-inject.jar",
214+
sha1 = "6975da39a7040257bd51d21a231b76c915872d38",
215+
url = "mvn:javax.inject:javax.inject:jar:1",
216+
)

tools/build_defs/oss/rn_defs.bzl

+3-2
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,12 @@ def rn_robolectric_test(name, srcs, vm_args = None, *args, **kwargs):
196196
"-XX:+UseConcMarkSweepGC", # required by -XX:+CMSClassUnloadingEnabled
197197
"-XX:+CMSClassUnloadingEnabled",
198198
"-XX:ReservedCodeCacheSize=150M",
199-
"-Drobolectric.dependency.dir=buck-out/gen/ReactAndroid/src/main/third-party/java/robolectric/4.3.1",
200-
"-Dlibraries=buck-out/gen/ReactAndroid/src/main/third-party/java/robolectric/4.3.1/*.jar",
199+
"-Drobolectric.dependency.dir=buck-out/gen/ReactAndroid/src/main/third-party/java/robolectric/4.4",
200+
"-Dlibraries=buck-out/gen/ReactAndroid/src/main/third-party/java/robolectric/4.4/*.jar",
201201
"-Drobolectric.logging.enabled=true",
202202
"-XX:MaxPermSize=620m",
203203
"-Drobolectric.offline=true",
204+
"-Drobolectric.looperMode=LEGACY",
204205
]
205206
if native.read_config("user", "use_dev_shm"):
206207
extra_vm_args.append("-Djava.io.tmpdir=/dev/shm")

0 commit comments

Comments
 (0)