Skip to content

Commit 5a374b0

Browse files
committed
[red] Require driving the prebuilt Android smoke APK
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 43d560f commit 5a374b0

1 file changed

Lines changed: 64 additions & 11 deletions

File tree

‎tests/publication/test_ci_contract.py‎

Lines changed: 64 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,19 @@ def test_android_integration_builds_one_application_bundle(self) -> None:
118118
self.assertIn("integration_test/android_smoke_test.dart", android)
119119
self.assertNotIn("integration_test/about_page_test.dart", android)
120120
self.assertNotIn("integration_test/blockly_webview_test.dart", android)
121-
self.assertIn("timeout --signal=TERM --kill-after=30s 30m", android)
121+
self.assertIn("timeout --signal=TERM --kill-after=30s 12m", android)
122122
self.assertIn("--no-pub", android)
123+
self.assertIn("flutter drive \\", android)
124+
self.assertIn(
125+
"--driver test_driver/integration_test.dart",
126+
android,
127+
)
128+
self.assertIn(
129+
"--use-application-binary "
130+
"build/app/outputs/flutter-apk/app-debug.apk",
131+
android,
132+
)
133+
self.assertNotIn(" flutter test \\", android)
123134

124135
integration_root = REPO_ROOT / "app" / "integration_test"
125136
self.assertEqual(
@@ -151,6 +162,25 @@ def test_android_integration_builds_one_application_bundle(self) -> None:
151162
"blockly_webview.registerBlocklyWebViewIntegrationTests();",
152163
harness,
153164
)
165+
driver = (
166+
REPO_ROOT / "app" / "test_driver" / "integration_test.dart"
167+
).read_text(encoding="utf-8")
168+
self.assertIn(
169+
"import 'package:integration_test/integration_test_driver.dart';",
170+
driver,
171+
)
172+
self.assertIn(
173+
"Future<void> main() => integrationDriver(",
174+
driver,
175+
)
176+
self.assertIn(
177+
"timeout: const Duration(minutes: 10),",
178+
driver,
179+
)
180+
self.assertIn(
181+
"writeResponseOnFailure: true,",
182+
driver,
183+
)
154184

155185
def test_android_integration_prebuilds_with_bounded_runner_resources(
156186
self,
@@ -161,19 +191,31 @@ def test_android_integration_prebuilds_with_bounded_runner_resources(
161191
android_start = workflow.index(" android-webview:")
162192
build_start = workflow.index("\n build:", android_start)
163193
android = workflow[android_start:build_start]
164-
gradle_properties = (
165-
REPO_ROOT / "app" / "android" / "gradle.properties"
166-
).read_text(encoding="utf-8")
167194

168195
self.assertIn(
169-
"org.gradle.jvmargs=-Xmx3072m "
196+
"GRADLE_USER_HOME: /tmp/pyble-gradle-home",
197+
android,
198+
)
199+
self.assertIn(
200+
"'org.gradle.jvmargs=-Xmx3072m "
170201
"-XX:MaxMetaspaceSize=1024m "
171-
"-XX:ReservedCodeCacheSize=256m",
172-
gradle_properties,
202+
"-XX:ReservedCodeCacheSize=256m'",
203+
android,
204+
)
205+
self.assertIn(
206+
"'org.gradle.daemon=false'",
207+
android,
173208
)
174209
self.assertIn(
175-
"GRADLE_OPTS: -Dorg.gradle.daemon=false "
176-
"-Dorg.gradle.workers.max=1",
210+
"'org.gradle.workers.max=1'",
211+
android,
212+
)
213+
self.assertIn(
214+
"'kotlin.compiler.execution.strategy=in-process'",
215+
android,
216+
)
217+
self.assertIn(
218+
'> "$GRADLE_USER_HOME/gradle.properties"',
177219
android,
178220
)
179221
self.assertIn("--set 'hw.ramSize=2048'", android)
@@ -190,24 +232,35 @@ def test_android_integration_prebuilds_with_bounded_runner_resources(
190232
)
191233
self.assertLess(prebuild, boot)
192234
self.assertLess(boot, integration)
235+
self.assertEqual(1, android.count("flutter build apk"))
193236
self.assertIn(
194237
"flutter build apk \\\n"
195238
" --debug \\\n"
196239
" --no-pub \\\n"
240+
" --target-platform android-x64 \\\n"
197241
" --target integration_test/android_smoke_test.dart",
198242
android,
199243
)
200244
self.assertIn(
201245
'>"$PYBLE_ANDROID_LOG_DIR/flutter-build.log" 2>&1',
202246
android,
203247
)
248+
self.assertIn(
249+
"test -s build/app/outputs/flutter-apk/app-debug.apk",
250+
android,
251+
)
204252
self.assertIn("./android/gradlew --stop", android)
205253
self.assertIn(
206-
'>"$PYBLE_ANDROID_LOG_DIR/flutter-test.log" 2>&1',
254+
'>"$PYBLE_ANDROID_LOG_DIR/flutter-drive.log" 2>&1',
255+
android,
256+
)
257+
self.assertIn(
258+
"--use-application-binary "
259+
"build/app/outputs/flutter-apk/app-debug.apk",
207260
android,
208261
)
209262
self.assertNotIn(
210-
'2>&1 | tee "$PYBLE_ANDROID_LOG_DIR/flutter-test.log"',
263+
'2>&1 | tee "$PYBLE_ANDROID_LOG_DIR/flutter-drive.log"',
211264
android,
212265
)
213266

0 commit comments

Comments
 (0)