@@ -33,6 +33,9 @@ void main() {
33
33
Target .androidX64: 'elf64-x86-64' ,
34
34
};
35
35
36
+ /// From https://docs.flutter.dev/reference/supported-platforms.
37
+ const flutterAndroidNdkVersionLowestBestEffort = 19 ;
38
+
36
39
/// From https://docs.flutter.dev/reference/supported-platforms.
37
40
const flutterAndroidNdkVersionLowestSupported = 21 ;
38
41
@@ -41,38 +44,45 @@ void main() {
41
44
42
45
for (final linkMode in LinkMode .values) {
43
46
for (final target in targets) {
44
- test ('CBuilder $linkMode library $target ' , () async {
45
- final tempUri = await tempDirForTest ();
46
- final libUri = await buildLib (
47
- tempUri,
48
- target,
49
- flutterAndroidNdkVersionLowestSupported,
50
- linkMode,
51
- );
52
- if (Platform .isLinux) {
53
- final result = await runProcess (
54
- executable: Uri .file ('readelf' ),
55
- arguments: ['-h' , libUri.path],
56
- logger: logger,
57
- );
58
- expect (result.exitCode, 0 );
59
- final machine = result.stdout
60
- .split ('\n ' )
61
- .firstWhere ((e) => e.contains ('Machine:' ));
62
- expect (machine, contains (readElfMachine[target]));
63
- } else if (Platform .isMacOS) {
64
- final result = await runProcess (
65
- executable: Uri .file ('objdump' ),
66
- arguments: ['-T' , libUri.path],
67
- logger: logger,
47
+ for (final apiLevel in [
48
+ flutterAndroidNdkVersionLowestBestEffort,
49
+ flutterAndroidNdkVersionLowestSupported,
50
+ flutterAndroidNdkVersionHighestSupported,
51
+ ]) {
52
+ test ('CBuilder $linkMode library $target minSdkVersion $apiLevel ' ,
53
+ () async {
54
+ final tempUri = await tempDirForTest ();
55
+ final libUri = await buildLib (
56
+ tempUri,
57
+ target,
58
+ apiLevel,
59
+ linkMode,
68
60
);
69
- expect (result.exitCode, 0 );
70
- final machine = result.stdout
71
- .split ('\n ' )
72
- .firstWhere ((e) => e.contains ('file format' ));
73
- expect (machine, contains (objdumpFileFormat[target]));
74
- }
75
- });
61
+ if (Platform .isLinux) {
62
+ final result = await runProcess (
63
+ executable: Uri .file ('readelf' ),
64
+ arguments: ['-h' , libUri.path],
65
+ logger: logger,
66
+ );
67
+ expect (result.exitCode, 0 );
68
+ final machine = result.stdout
69
+ .split ('\n ' )
70
+ .firstWhere ((e) => e.contains ('Machine:' ));
71
+ expect (machine, contains (readElfMachine[target]));
72
+ } else if (Platform .isMacOS) {
73
+ final result = await runProcess (
74
+ executable: Uri .file ('objdump' ),
75
+ arguments: ['-T' , libUri.path],
76
+ logger: logger,
77
+ );
78
+ expect (result.exitCode, 0 );
79
+ final machine = result.stdout
80
+ .split ('\n ' )
81
+ .firstWhere ((e) => e.contains ('file format' ));
82
+ expect (machine, contains (objdumpFileFormat[target]));
83
+ }
84
+ });
85
+ }
76
86
}
77
87
}
78
88
0 commit comments