Skip to content

Commit c05dc3e

Browse files
authored
[Reland] Fix flavors test install checks (#134060)
Reland of flutter/flutter#133719. Updates [the string comparison in flavor_test.dart](https://github.com/flutter/flutter/pull/134060/files#diff-53383b32b975bfed6875306dfb98911cad077a5251ca0591c5b0e125fb4a0f05R39) to use `path.join` to build the path string so that the generated path is correct for both Linux and Windows hosts. Fixes flutter/flutter#133713 I've tested this on a Windows host targeting a physical Android device.
1 parent 2251063 commit c05dc3e

File tree

3 files changed

+83
-65
lines changed

3 files changed

+83
-65
lines changed

dev/devicelab/bin/tasks/flavors_test.dart

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,45 @@ import 'package:flutter_devicelab/framework/framework.dart';
77
import 'package:flutter_devicelab/framework/task_result.dart';
88
import 'package:flutter_devicelab/framework/utils.dart';
99
import 'package:flutter_devicelab/tasks/integration_tests.dart';
10+
import 'package:path/path.dart' as path;
1011

1112
Future<void> main() async {
1213
deviceOperatingSystem = DeviceOperatingSystem.android;
1314
await task(() async {
1415
await createFlavorsTest().call();
1516
await createIntegrationTestFlavorsTest().call();
16-
// test install and uninstall of flavors app
17-
await inDirectory('${flutterDirectory.path}/dev/integration_tests/flavors', () async {
18-
await flutter(
19-
'install',
20-
options: <String>['--debug', '--flavor', 'paid'],
21-
);
22-
await flutter(
23-
'install',
24-
options: <String>['--debug', '--flavor', 'paid', '--uninstall-only'],
25-
);
26-
final StringBuffer stderr = StringBuffer();
27-
await evalFlutter(
28-
'install',
29-
canFail: true,
30-
stderr: stderr,
31-
options: <String>['--flavor', 'bogus'],
32-
);
3317

34-
final String stderrString = stderr.toString();
35-
if (!stderrString.contains('The Xcode project defines schemes: free, paid')) {
36-
print(stderrString);
37-
return TaskResult.failure('Should not succeed with bogus flavor');
38-
}
39-
});
18+
final TaskResult installTestsResult = await inDirectory(
19+
'${flutterDirectory.path}/dev/integration_tests/flavors',
20+
() async {
21+
await flutter(
22+
'install',
23+
options: <String>['--debug', '--flavor', 'paid'],
24+
);
25+
await flutter(
26+
'install',
27+
options: <String>['--debug', '--flavor', 'paid', '--uninstall-only'],
28+
);
4029

41-
return TaskResult.success(null);
30+
final StringBuffer stderr = StringBuffer();
31+
await evalFlutter(
32+
'install',
33+
canFail: true,
34+
stderr: stderr,
35+
options: <String>['--flavor', 'bogus'],
36+
);
37+
38+
final String stderrString = stderr.toString();
39+
final String expectedApkPath = path.join('build', 'app', 'outputs', 'flutter-apk', 'app-bogus-release.apk');
40+
if (!stderrString.contains('"$expectedApkPath" does not exist.')) {
41+
print(stderrString);
42+
return TaskResult.failure('Should not succeed with bogus flavor');
43+
}
44+
45+
return TaskResult.success(null);
46+
},
47+
);
48+
49+
return installTestsResult;
4250
});
4351
}

dev/devicelab/bin/tasks/flavors_test_ios.dart

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,35 @@ Future<void> main() async {
1414
await createFlavorsTest().call();
1515
await createIntegrationTestFlavorsTest().call();
1616
// test install and uninstall of flavors app
17-
await inDirectory('${flutterDirectory.path}/dev/integration_tests/flavors', () async {
18-
await flutter(
19-
'install',
20-
options: <String>['--flavor', 'paid'],
21-
);
22-
await flutter(
23-
'install',
24-
options: <String>['--flavor', 'paid', '--uninstall-only'],
25-
);
26-
final StringBuffer stderr = StringBuffer();
27-
await evalFlutter(
28-
'install',
29-
canFail: true,
30-
stderr: stderr,
31-
options: <String>['--flavor', 'bogus'],
32-
);
17+
final TaskResult installTestsResult = await inDirectory(
18+
'${flutterDirectory.path}/dev/integration_tests/flavors',
19+
() async {
20+
await flutter(
21+
'install',
22+
options: <String>['--flavor', 'paid'],
23+
);
24+
await flutter(
25+
'install',
26+
options: <String>['--flavor', 'paid', '--uninstall-only'],
27+
);
28+
final StringBuffer stderr = StringBuffer();
29+
await evalFlutter(
30+
'install',
31+
canFail: true,
32+
stderr: stderr,
33+
options: <String>['--flavor', 'bogus'],
34+
);
3335

34-
final String stderrString = stderr.toString();
35-
if (!stderrString.contains('install failed, bogus flavor not found')) {
36-
print(stderrString);
37-
return TaskResult.failure('Should not succeed with bogus flavor');
38-
}
39-
});
36+
final String stderrString = stderr.toString();
37+
if (!stderrString.contains('The Xcode project defines schemes: free, paid')) {
38+
print(stderrString);
39+
return TaskResult.failure('Should not succeed with bogus flavor');
40+
}
4041

41-
return TaskResult.success(null);
42+
return TaskResult.success(null);
43+
},
44+
);
45+
46+
return installTestsResult;
4247
});
4348
}

dev/devicelab/bin/tasks/flavors_test_macos.dart

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,31 @@ Future<void> main() async {
1414
await createFlavorsTest().call();
1515
await createIntegrationTestFlavorsTest().call();
1616

17-
await inDirectory('${flutterDirectory.path}/dev/integration_tests/flavors', () async {
18-
final StringBuffer stderr = StringBuffer();
17+
final TaskResult installTestsResult = await inDirectory(
18+
'${flutterDirectory.path}/dev/integration_tests/flavors',
19+
() async {
20+
final StringBuffer stderr = StringBuffer();
1921

20-
await evalFlutter(
21-
'install',
22-
canFail: true,
23-
stderr: stderr,
24-
options: <String>[
25-
'--d', 'macos',
26-
'--flavor', 'free'
27-
],
28-
);
22+
await evalFlutter(
23+
'install',
24+
canFail: true,
25+
stderr: stderr,
26+
options: <String>[
27+
'--d', 'macos',
28+
'--flavor', 'free'
29+
],
30+
);
2931

30-
final String stderrString = stderr.toString();
31-
if (!stderrString.contains('Host and target are the same. Nothing to install.')) {
32-
print(stderrString);
33-
return TaskResult.failure('Installing a macOS app on macOS should no-op');
34-
}
35-
});
32+
final String stderrString = stderr.toString();
33+
if (!stderrString.contains('Host and target are the same. Nothing to install.')) {
34+
print(stderrString);
35+
return TaskResult.failure('Installing a macOS app on macOS should no-op');
36+
}
3637

37-
return TaskResult.success(null);
38+
return TaskResult.success(null);
39+
},
40+
);
41+
42+
return installTestsResult;
3843
});
3944
}

0 commit comments

Comments
 (0)