Unverified Commit 7edcc92b authored by Kate Lovett's avatar Kate Lovett Committed by GitHub

Refactoring Gold to enable both Luci & Cirrus support (#49815)

parent 77c46276
......@@ -85,7 +85,8 @@ const double _kDividerThickness = 1.0;
/// sheet title and message text style.
///
/// To display action buttons that look like standard iOS action sheet buttons,
/// provide [CupertinoActionSheetAction]s for the [actions] given to this action sheet.
/// provide [CupertinoActionSheetAction]s for the [actions] given to this action
/// sheet.
///
/// To include a iOS-style cancel button separate from the other buttons,
/// provide an [CupertinoActionSheetAction] for the [cancelButton] given to this
......
......@@ -108,6 +108,7 @@ void main() {
process: process,
platform: platform,
httpClient: mockHttpClient,
ci: ContinuousIntegrationEnvironment.cirrus,
);
when(process.run(any))
......@@ -165,6 +166,76 @@ void main() {
);
});
test('correctly inits tryjob for luci', () async {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
'GOLDCTL' : 'goldctl',
'SWARMING_TASK_ID' : '4ae997b50dfd4d11',
'LOGDOG_STREAM_PREFIX' : 'buildbucket/cr-buildbucket.appspot.com/8885996262141582672',
'GOLD_TRYJOB' : 'refs/pull/49815/head',
},
operatingSystem: 'macos'
);
skiaClient = SkiaGoldClient(
workDirectory,
fs: fs,
process: process,
platform: platform,
httpClient: mockHttpClient,
ci: ContinuousIntegrationEnvironment.luci,
);
final List<String> ciArguments = skiaClient.getCIArguments();
expect(
ciArguments,
equals(
<String>[
'--changelist', '49815',
'--cis', 'buildbucket',
'--jobid', '8885996262141582672',
],
),
);
});
test('correctly inits tryjob for cirrus', () async {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
'GOLDCTL' : 'goldctl',
'CIRRUS_CI' : 'true',
'CIRRUS_TASK_ID' : '8885996262141582672',
'CIRRUS_PR' : '49815',
},
operatingSystem: 'macos'
);
skiaClient = SkiaGoldClient(
workDirectory,
fs: fs,
process: process,
platform: platform,
httpClient: mockHttpClient,
ci: ContinuousIntegrationEnvironment.cirrus,
);
final List<String> ciArguments = skiaClient.getCIArguments();
expect(
ciArguments,
equals(
<String>[
'--changelist', '49815',
'--cis', 'cirrus',
'--jobid', '8885996262141582672',
],
),
);
});
group('Request Handling', () {
String testName;
String pullRequestNumber;
......@@ -456,12 +527,12 @@ void main() {
});
group('FlutterGoldenFileComparator', () {
FlutterSkiaGoldFileComparator comparator;
FlutterPostSubmitFileComparator comparator;
setUp(() {
final Directory basedir = fs.directory('flutter/test/library/')
..createSync(recursive: true);
comparator = FlutterSkiaGoldFileComparator(
comparator = FlutterPostSubmitFileComparator(
basedir.uri,
MockSkiaGoldClient(),
fs: fs,
......@@ -497,7 +568,7 @@ void main() {
setUp(() {
final Directory basedir = fs.directory('flutter/test/library/')
..createSync(recursive: true);
comparator = FlutterSkiaGoldFileComparator(
comparator = FlutterPostSubmitFileComparator(
basedir.uri,
mockSkiaClient,
fs: fs,
......@@ -506,7 +577,21 @@ void main() {
});
group('correctly determines testing environment', () {
test('returns true', () {
test('returns true for Luci', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
'SWARMING_TASK_ID' : '12345678990',
},
operatingSystem: 'macos'
);
expect(
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isTrue,
);
});
test('returns true for Cirrus', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
......@@ -518,7 +603,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkiaGoldFileComparator.isAvailableForEnvironment(platform),
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isTrue,
);
});
......@@ -535,7 +620,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkiaGoldFileComparator.isAvailableForEnvironment(platform),
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isFalse,
);
});
......@@ -551,7 +636,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkiaGoldFileComparator.isAvailableForEnvironment(platform),
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isFalse,
);
});
......@@ -566,7 +651,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkiaGoldFileComparator.isAvailableForEnvironment(platform),
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isFalse,
);
});
......@@ -583,7 +668,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkiaGoldFileComparator.isAvailableForEnvironment(platform),
FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform),
isFalse,
);
});
......@@ -595,7 +680,7 @@ void main() {
final MockSkiaGoldClient mockSkiaClient = MockSkiaGoldClient();
group('correctly determines testing environment', () {
test('returns true', () {
test('returns true for Cirrus', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
......@@ -611,6 +696,21 @@ void main() {
);
});
test('returns true for Luci', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
'SWARMING_TASK_ID' : '12345678990',
'GOLD_TRYJOB' : 'git/ref/12345/head'
},
operatingSystem: 'macos'
);
expect(
FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform),
isTrue,
);
});
test('returns false - no PR', () {
platform = FakePlatform(
environment: <String, String>{
......@@ -642,7 +742,7 @@ void main() {
);
});
test('returns false - not on Cirrus', () {
test('returns false - not on Cirrus or Luci', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
......@@ -765,21 +865,7 @@ void main() {
group('Skipping', () {
group('correctly determines testing environment', () {
test('returns true on LUCI', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
'SWARMING_TASK_ID' : '1234567890',
},
operatingSystem: 'macos'
);
expect(
FlutterSkippingGoldenFileComparator.isAvailableForEnvironment(platform),
isTrue,
);
});
test('returns true on Cirrus', () {
test('returns true on Cirrus shards that don\'t run golden tests', () {
platform = FakePlatform(
environment: <String, String>{
'FLUTTER_ROOT': _kFlutterRoot,
......@@ -788,10 +874,11 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkippingGoldenFileComparator.isAvailableForEnvironment(platform),
FlutterSkippingFileComparator.isAvailableForEnvironment(platform),
isTrue,
);
});
test('returns false - no CI', () {
platform = FakePlatform(
environment: <String, String>{
......@@ -800,7 +887,7 @@ void main() {
operatingSystem: 'macos'
);
expect(
FlutterSkippingGoldenFileComparator.isAvailableForEnvironment(
FlutterSkippingFileComparator.isAvailableForEnvironment(
platform),
isFalse,
);
......@@ -891,7 +978,7 @@ void main() {
goldens: mockSkiaClient,
baseDirectory: mockDirectory,
);
expect(comparator.runtimeType, FlutterSkippingGoldenFileComparator);
expect(comparator.runtimeType, FlutterSkippingFileComparator);
when(mockSkiaClient.getExpectations())
.thenAnswer((_) => throw const SocketException("Can't reach Gold"));
......@@ -900,7 +987,7 @@ void main() {
goldens: mockSkiaClient,
baseDirectory: mockDirectory,
);
expect(comparator.runtimeType, FlutterSkippingGoldenFileComparator);
expect(comparator.runtimeType, FlutterSkippingFileComparator);
});
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment