Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Linux galllery tasks fail on pre-build apk from another task #110595

Closed
@keyonghan

Description

@keyonghan

This is part of #103542, which is migrating gallery tests to build+test model.

We have validated the separation logic works as expected: we can build the apk first (save the apk in a specific location), and run the test separately based on the pre-build apk. But this works only when running the test based on the apk build from the same task.
For example:
Task flutter_gallery__transition_perf:

  1. build step: dart bin/test_runner.dart test -t flutter_gallery__transition_perf --task-args build --task-args "application-binary-path=/tmp" builds apk to /tmp/app-profile.apk.
  2. test step: dart bin/test_runner.dart test -t flutter_gallery__transition_perf --task-args test --task-args "application-binary-path=/tmp" succeeds based on the pre-build apk.

However, if we are running the test step of another task (say: flutter_gallery__transition_perf_e2e) based on the apk from above task flutter_gallery__transition_perf. It fails (this is based on the draft PR):

[flutter_gallery__transition_perf_e2e] [STDOUT] stdout: Running "flutter pub get" in flutter_gallery...                  1,927ms
[flutter_gallery__transition_perf_e2e] [STDOUT] stdout: Installing ../../../../../../../../tmp/app-profile.apk...          13.9s
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Connecting to Flutter application at http://127.0.0.1:56135/DzJgkSacTP0=/
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Isolate found with number: 2751992616529479
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Isolate is paused at start.
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Attempting to resume isolate
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Connected to Flutter application.
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: Unhandled exception:
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: DriverError: Error in Flutter application: Uncaught extension error while executing request_data: Null check operator used on a null value
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #0      main.<anonymous closure> (file:///Users/keyonghan/Documents/work/flutter/dev/integration_tests/flutter_gallery/test_driver/transitions_perf.dart:49)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #1      CommandHandlerFactory._requestData (package:flutter_driver/src/common/handler_factory.dart:224)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #2      CommandHandlerFactory.handleCommand (package:flutter_driver/src/common/handler_factory.dart:165)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #3      FlutterDriverExtension.handleCommand (package:flutter_driver/src/extension/extension.dart:437)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #4      FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:368)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #5      BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:856)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: 
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: 
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #0      VMServiceFlutterDriver.sendCommand (package:flutter_driver/src/driver/vmservice_driver.dart:325:7)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #1      FlutterDriver.requestData (package:flutter_driver/src/driver/driver.dart:551:39)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #2      integrationDriver (package:integration_test/integration_test_driver.dart:76:29)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDERR] Task failed: Executable "/Users/keyonghan/Documents/work/flutter/bin/flutter" failed with exit code 1.
[flutter_gallery__transition_perf_e2e] [STDERR] 
[flutter_gallery__transition_perf_e2e] [STDERR] Stack trace:
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/utils.dart 94:3        fail
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/utils.dart 363:5       _execute
[flutter_gallery__transition_perf_e2e] [STDERR] ===== asynchronous gap ===========================
[flutter_gallery__transition_perf_e2e] [STDERR] dart:async                                                 _CustomZone.registerBinaryCallback
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 274:26  _TaskRunner._performTask.<fn>
[flutter_gallery__transition_perf_e2e] [STDERR] package:stack_trace                                        Chain.capture
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 273:11  _TaskRunner._performTask
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 166:43  _TaskRunner.run

From the build args, I didn't find any difference between these two tasks, but I guess I am missing something. /cc @zanderso Do you have any insight about this issue? The expected behavior is all these gallery tasks could run test step successfully based on a pre-built APK from any of these tasks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    engineflutter/engine repository. See also e: labels.team-infraOwned by Infrastructure team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions