Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BuildBucket v2 migration test support files (Part 2) #3664

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
51787de
Bump retry from 3.1.1 to 3.1.2 in /app_dart
dependabot[bot] Jun 1, 2023
97e2a70
Bump github from 9.18.0 to 9.19.0 in /app_dart
dependabot[bot] Sep 15, 2023
ff07134
Bump test from 1.24.6 to 1.24.7 in /auto_submit
dependabot[bot] Oct 2, 2023
ff45605
Merge pull request #284 from ricardoamador/dependabot/pub/app_dart/re…
ricardoamador Oct 2, 2023
f585b37
Merge pull request #344 from ricardoamador/dependabot/pub/app_dart/gi…
ricardoamador Oct 2, 2023
1a3c00b
Merge pull request #347 from ricardoamador/dependabot/pub/auto_submit…
ricardoamador Oct 2, 2023
793fad4
Merge branch 'flutter:main' into main
ricardoamador Oct 4, 2023
16c6713
Merge branch 'flutter:main' into main
ricardoamador Oct 10, 2023
70392e4
Merge branch 'flutter:main' into main
ricardoamador Oct 16, 2023
3705b9a
Merge branch 'flutter:main' into main
ricardoamador Oct 16, 2023
f531092
Merge branch 'flutter:main' into main
ricardoamador Oct 17, 2023
b4984e4
Merge branch 'flutter:main' into main
ricardoamador Oct 19, 2023
7e38655
Merge branch 'flutter:main' into main
ricardoamador Oct 23, 2023
32c6d69
Merge branch 'flutter:main' into main
ricardoamador Oct 23, 2023
8a1c09f
Merge branch 'flutter:main' into main
ricardoamador Oct 24, 2023
b1ea800
Merge branch 'flutter:main' into main
ricardoamador Oct 30, 2023
bda6333
Merge branch 'flutter:main' into main
ricardoamador Nov 6, 2023
1a1a89a
Merge branch 'flutter:main' into main
ricardoamador Nov 9, 2023
59decbb
Merge branch 'flutter:main' into main
ricardoamador Nov 30, 2023
da68249
Merge branch 'flutter:main' into main
ricardoamador Dec 4, 2023
37d7918
Merge branch 'flutter:main' into main
ricardoamador Dec 8, 2023
0ba9af5
Merge branch 'flutter:main' into main
ricardoamador Dec 12, 2023
52d42f0
Merge branch 'flutter:main' into main
ricardoamador Dec 13, 2023
858e21b
Merge branch 'flutter:main' into main
ricardoamador Dec 15, 2023
1059826
Merge branch 'flutter:main' into main
ricardoamador Jan 3, 2024
a27052b
Merge branch 'flutter:main' into main
ricardoamador Jan 8, 2024
01256f1
Merge branch 'flutter:main' into main
ricardoamador Jan 12, 2024
5877b5e
Merge branch 'flutter:main' into main
ricardoamador Jan 16, 2024
b10b508
Merge branch 'flutter:main' into main
ricardoamador Jan 22, 2024
77669d7
Merge branch 'flutter:main' into main
ricardoamador Jan 25, 2024
24d1f77
Merge branch 'flutter:main' into main
ricardoamador Jan 26, 2024
e84e08e
Merge branch 'flutter:main' into main
ricardoamador Jan 30, 2024
1b9a04e
Merge branch 'flutter:main' into main
ricardoamador Feb 1, 2024
7c97475
Merge branch 'flutter:main' into main
ricardoamador Feb 2, 2024
c813f4f
Merge branch 'flutter:main' into main
ricardoamador Feb 3, 2024
78b79c6
Merge branch 'flutter:main' into main
ricardoamador Feb 5, 2024
2cf838f
Merge branch 'flutter:main' into main
ricardoamador Feb 8, 2024
a5a8fdf
Merge branch 'flutter:main' into main
ricardoamador Feb 13, 2024
77259b1
Merge branch 'flutter:main' into main
ricardoamador Feb 15, 2024
728044f
Merge branch 'flutter:main' into main
ricardoamador Feb 15, 2024
6e49ef9
Bump http from 1.2.0 to 1.2.1 in /auto_submit
dependabot[bot] Feb 19, 2024
2e741b6
Merge pull request #506 from ricardoamador/dependabot/pub/auto_submit…
ricardoamador Feb 20, 2024
5b8a671
Merge branch 'flutter:main' into main
ricardoamador Feb 20, 2024
eb9ac86
Merge branch 'flutter:main' into main
ricardoamador Feb 21, 2024
ac9a943
Merge branch 'flutter:main' into main
ricardoamador Feb 21, 2024
eda8ebe
Merge branch 'flutter:main' into main
ricardoamador Feb 21, 2024
e6efdf2
Merge branch 'flutter:main' into main
ricardoamador Feb 22, 2024
0bf6a15
Merge branch 'flutter:main' into main
ricardoamador Feb 23, 2024
b061e98
Merge branch 'flutter:main' into main
ricardoamador Feb 27, 2024
34aec8a
Merge branch 'flutter:main' into main
ricardoamador Feb 27, 2024
f45df08
Merge branch 'flutter:main' into main
ricardoamador Feb 29, 2024
f4710dd
Merge branch 'flutter:main' into main
ricardoamador Mar 5, 2024
724643f
Merge branch 'flutter:main' into main
ricardoamador Mar 6, 2024
caefcbf
Merge branch 'flutter:main' into main
ricardoamador Mar 12, 2024
77d6696
Merge branch 'flutter:main' into main
ricardoamador Mar 14, 2024
abbb359
Merge branch 'flutter:main' into main
ricardoamador Mar 18, 2024
a9d0e5c
Merge branch 'flutter:main' into main
ricardoamador Mar 20, 2024
b1e69d6
Merge branch 'flutter:main' into main
ricardoamador Mar 21, 2024
6783b07
Merge branch 'flutter:main' into main
ricardoamador Mar 25, 2024
1c4c810
Merge branch 'flutter:main' into main
ricardoamador Mar 26, 2024
1822d47
Merge branch 'flutter:main' into main
ricardoamador Apr 9, 2024
30c0e1a
Merge branch 'flutter:main' into main
ricardoamador Apr 12, 2024
7ac2613
Merge branch 'flutter:main' into main
ricardoamador Apr 15, 2024
8ba406b
Merge branch 'flutter:main' into main
ricardoamador Apr 16, 2024
631c2f7
Add remaining test support files excluding mocks.
Apr 16, 2024
3d3f512
Merge branch 'flutter:main' into main
ricardoamador Apr 22, 2024
92ee5da
Merge branch 'main' into build_bucket_migration_test_support
Apr 22, 2024
b154dd7
Adding license
Apr 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app_dart/test/src/service/fake_luci_build_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@

import 'package:cocoon_service/src/foundation/github_checks_util.dart';
import 'package:cocoon_service/src/request_handling/pubsub.dart';
import 'package:cocoon_service/src/service/build_bucket_v2_client.dart';
import 'package:cocoon_service/src/service/buildbucket.dart';
import 'package:cocoon_service/src/service/cache_service.dart';
import 'package:cocoon_service/src/service/gerrit_service.dart';
import 'package:cocoon_service/src/service/luci_build_service.dart';

import '../request_handling/fake_pubsub.dart';
import '../utilities/mocks.dart';
import 'fake_build_bucket_v2_client.dart';
import 'fake_buildbucket.dart';
import 'fake_gerrit_service.dart';

Expand All @@ -19,12 +21,14 @@ class FakeLuciBuildService extends LuciBuildService {
FakeLuciBuildService({
required super.config,
BuildBucketClient? buildbucket,
BuildBucketV2Client? buildBucketV2Client,
GithubChecksUtil? githubChecksUtil,
GerritService? gerritService,
PubSub? pubsub,
}) : super(
cache: CacheService(inMemory: true),
buildBucketClient: buildbucket ?? FakeBuildBucketClient(),
buildBucketV2Client: buildBucketV2Client ?? FakeBuildBucketV2Client(),
githubChecksUtil: githubChecksUtil ?? MockGithubChecksUtil(),
gerritService: gerritService ?? FakeGerritService(),
pubsub: pubsub ?? FakePubSub(),
Expand Down
32 changes: 32 additions & 0 deletions app_dart/test/src/service/fake_luci_build_service_v2.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright 2021 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.

import 'package:cocoon_service/src/foundation/github_checks_util.dart';
import 'package:cocoon_service/src/request_handling/pubsub.dart';
import 'package:cocoon_service/src/service/build_bucket_v2_client.dart';
import 'package:cocoon_service/src/service/cache_service.dart';
import 'package:cocoon_service/src/service/gerrit_service.dart';
import 'package:cocoon_service/src/service/luci_build_service_v2.dart';

import '../request_handling/fake_pubsub.dart';
import '../utilities/mocks.dart';
import 'fake_build_bucket_v2_client.dart';
import 'fake_gerrit_service.dart';

/// Fake [LuciBuildService] for use in tests.
class FakeLuciBuildServiceV2 extends LuciBuildServiceV2 {
FakeLuciBuildServiceV2({
required super.config,
BuildBucketV2Client? buildBucketV2Client,
GithubChecksUtil? githubChecksUtil,
GerritService? gerritService,
PubSub? pubsub,
}) : super(
cache: CacheService(inMemory: true),
buildBucketV2Client: buildBucketV2Client ?? FakeBuildBucketV2Client(),
githubChecksUtil: githubChecksUtil ?? MockGithubChecksUtil(),
gerritService: gerritService ?? FakeGerritService(),
pubsub: pubsub ?? FakePubSub(),
);
}
307 changes: 307 additions & 0 deletions app_dart/test/src/service/fake_scheduler_v2.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,307 @@
// Copyright 2021 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.

import 'package:cocoon_service/src/foundation/github_checks_util.dart';
import 'package:cocoon_service/src/model/appengine/commit.dart';
import 'package:cocoon_service/src/model/ci_yaml/ci_yaml.dart';
import 'package:cocoon_service/src/model/proto/protos.dart' as pb;
import 'package:cocoon_service/src/service/build_bucket_v2_client.dart';
import 'package:cocoon_service/src/service/cache_service.dart';
import 'package:cocoon_service/src/service/config.dart';
import 'package:cocoon_service/src/service/github_checks_service_v2.dart';
import 'package:cocoon_service/src/service/luci_build_service_v2.dart';
import 'package:cocoon_service/src/service/scheduler.dart';
import 'package:cocoon_service/src/service/scheduler_v2.dart';
import 'package:github/github.dart';
import 'package:retry/retry.dart';

import '../utilities/entity_generators.dart';
import 'fake_luci_build_service_v2.dart';

/// Fake for [Scheduler] to use for tests that rely on it.
class FakeSchedulerV2 extends SchedulerV2 {
FakeSchedulerV2({
this.ciYaml,
LuciBuildServiceV2? luciBuildService,
BuildBucketV2Client? buildbucket,
required super.config,
GithubChecksUtil? githubChecksUtil,
}) : super(
cache: CacheService(inMemory: true),
githubChecksService: GithubChecksServiceV2(
config,
githubChecksUtil: githubChecksUtil,
),
luciBuildService: luciBuildService ??
FakeLuciBuildServiceV2(
config: config,
buildBucketV2Client: buildbucket,
githubChecksUtil: githubChecksUtil,
),
);

final CiYaml _defaultConfig = emptyConfig;

/// [CiYaml] value to be injected on [getCiYaml].
CiYaml? ciYaml;

@override
Future<CiYaml> getCiYaml(
Commit commit, {
CiYaml? totCiYaml,
RetryOptions? retryOptions,
bool validate = false,
}) async =>
ciYaml ?? _defaultConfig;

@override
Future<Commit> generateTotCommit({required String branch, required RepositorySlug slug}) async {
return generateCommit(1);
}

int cancelPreSubmitTargetsCallCnt = 0;

int get cancelPreSubmitTargetsCallCount => cancelPreSubmitTargetsCallCnt;

void resetCancelPreSubmitTargetsCallCount() => cancelPreSubmitTargetsCallCnt = 0;

@override
Future<void> cancelPreSubmitTargets({
required PullRequest pullRequest,
String reason = 'Newer commit available',
}) async {
await super.cancelPreSubmitTargets(pullRequest: pullRequest);
cancelPreSubmitTargetsCallCnt++;
}

int triggerPresubmitTargetsCnt = 0;

int get triggerPresubmitTargetsCallCount => triggerPresubmitTargetsCnt;

void resetTriggerPresubmitTargetsCallCount() => triggerPresubmitTargetsCnt = 0;

@override
Future<void> triggerPresubmitTargets({
required PullRequest pullRequest,
String reason = 'Newer commit available',
List<String>? builderTriggerList,
}) async {
await super.triggerPresubmitTargets(pullRequest: pullRequest);
triggerPresubmitTargetsCnt++;
}

int addPullRequestCallCnt = 0;

int get addPullRequestCallCount {
return addPullRequestCallCnt;
}

void resetAddPullRequestCallCount() {
addPullRequestCallCnt = 0;
}

@override
Future<void> addPullRequest(
PullRequest pr,
) async {
await super.addPullRequest(pr);
addPullRequestCallCnt++;
}
}

final CiYaml emptyConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux A',
scheduler: pb.SchedulerSystem.luci,
),
],
),
);

CiYaml exampleConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux A',
scheduler: pb.SchedulerSystem.luci,
),
pb.Target(
name: 'Mac A',
scheduler: pb.SchedulerSystem.luci,
),
pb.Target(
name: 'Windows A',
scheduler: pb.SchedulerSystem.luci,
),
pb.Target(
name: 'Google Internal Roll',
presubmit: false,
postsubmit: true,
scheduler: pb.SchedulerSystem.google_internal,
),
],
),
);

CiYaml exampleBackfillConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux A',
scheduler: pb.SchedulerSystem.luci,
postsubmit: true,
properties: {'backfill': 'true'},
),
pb.Target(
name: 'Mac A',
scheduler: pb.SchedulerSystem.luci,
postsubmit: true,
),
pb.Target(
name: 'Windows A',
scheduler: pb.SchedulerSystem.luci,
postsubmit: true,
properties: {'backfill': 'false'},
),
],
),
);

CiYaml examplePresubmitRescheduleConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux A',
),
pb.Target(
name: 'Linux B',
postsubmit: true,
properties: {'presubmit_retry': '1'},
),
],
),
);

final CiYaml batchPolicyConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux_android A',
),
pb.Target(
name: 'Linux_android B',
),
pb.Target(
name: 'Linux_android C',
),
],
),
);

final CiYaml unsupportedPostsubmitCheckrunConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux flutter',
),
],
),
);

final CiYaml nonBringupPackagesConfig = CiYaml(
slug: Config.packagesSlug,
branch: Config.defaultBranch(Config.packagesSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.packagesSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux nonbringup',
),
],
),
);

final CiYaml bringupPackagesConfig = CiYaml(
slug: Config.packagesSlug,
branch: Config.defaultBranch(Config.packagesSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.packagesSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux bringup',
bringup: true,
),
],
),
);

final CiYaml totCiYaml = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux_android B',
),
pb.Target(
name: 'Linux_android C',
),
],
),
);

final CiYaml notInToTConfig = CiYaml(
slug: Config.flutterSlug,
branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
enabledBranches: <String>[
Config.defaultBranch(Config.flutterSlug),
],
targets: <pb.Target>[
pb.Target(
name: 'Linux_android A',
),
],
),
totConfig: totCiYaml,
);
Loading