
Towards https://github.com/flutter/flutter/issues/159000 as part of debugging issues such as https://github.com/flutter/flutter/issues/158560. On a `bringup: true` shard, run a number of `flutter build apk` tests in succession to try and routinely trigger timeouts and crashes, so we can test other hypotheses on how to fix this problem (i.e. potentially around increasing memory, changing daemon configuration, aggressively killing processes, etc).
78 lines
2.2 KiB
Dart
78 lines
2.2 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// TODO(matanlurey): Remove after debugging https://github.com/flutter/flutter/issues/159000.
|
|
@Tags(<String>['flutter-build-apk'])
|
|
library;
|
|
|
|
import 'package:file/file.dart';
|
|
import 'package:flutter_tools/src/base/io.dart';
|
|
|
|
import '../src/common.dart';
|
|
import 'test_utils.dart';
|
|
|
|
void main() {
|
|
late Directory tempDir;
|
|
|
|
setUp(() async {
|
|
tempDir = createResolvedTempDirectorySync('run_test.');
|
|
});
|
|
|
|
tearDown(() async {
|
|
tryToDelete(tempDir);
|
|
});
|
|
|
|
testWithoutContext('build succeeds with api 33 features', () async {
|
|
final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter');
|
|
ProcessResult result = await processManager.run(<String>[
|
|
flutterBin,
|
|
'create',
|
|
tempDir.path,
|
|
'--project-name=testapp',
|
|
], workingDirectory: tempDir.path);
|
|
expect(result, const ProcessResultMatcher());
|
|
|
|
final File api33File = tempDir
|
|
.childDirectory('android')
|
|
.childDirectory('app')
|
|
.childDirectory('src')
|
|
.childDirectory('main')
|
|
.childDirectory('java')
|
|
.childFile('Android33Api.java');
|
|
|
|
api33File.createSync(recursive: true);
|
|
// AccessibilityManager.isAudioDescriptionRequested() is an API 33 feature
|
|
api33File.writeAsStringSync('''
|
|
import android.app.Activity;
|
|
import android.view.accessibility.AccessibilityManager;
|
|
import androidx.annotation.Keep;
|
|
import io.flutter.Log;
|
|
|
|
@Keep
|
|
public final class Android33Api extends Activity {
|
|
private AccessibilityManager accessibilityManager;
|
|
|
|
public Android33Api() {
|
|
accessibilityManager = getSystemService(AccessibilityManager.class);
|
|
}
|
|
|
|
public void doSomething() {
|
|
if (accessibilityManager.isAudioDescriptionRequested()) {
|
|
Log.e("flutter", "User has requested to enable audio descriptions");
|
|
}
|
|
}
|
|
}
|
|
|
|
''');
|
|
|
|
result = await processManager.run(<String>[
|
|
flutterBin,
|
|
...getLocalEngineArguments(),
|
|
'build',
|
|
'apk',
|
|
], workingDirectory: tempDir.path);
|
|
expect(result, const ProcessResultMatcher(stdoutPattern: 'app-release.apk'));
|
|
});
|
|
}
|