Merge "Verify graph information in ServiceLoaderTest"
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg
new file mode 100644
index 0000000..1833ca9
--- /dev/null
+++ b/infra/config/global/cr-buildbucket.cfg
@@ -0,0 +1,226 @@
+# Defines buckets on cr-buildbucket.appspot.com, used by to schedule builds
+# on buildbot. In particular, CQ uses some of these buckets to schedule tryjobs.
+#
+# See http://luci-config.appspot.com/schemas/projects:buildbucket.cfg for
+# schema of this file and documentation.
+#
+# Please keep this list sorted by bucket name.
+
+builder_mixins {
+ name: "linux"
+ dimensions: "os:Ubuntu-14.04"
+}
+
+builder_mixins {
+ name: "win"
+ dimensions: "os:Windows-10"
+}
+
+builder_mixins {
+ name: "mac"
+ dimensions: "os:Mac-10.13"
+ dimensions: "cores:" # Macs can be 4 or 8 cores.
+}
+
+builder_mixins {
+ name: "build_limited_scripts_slave recipe"
+ recipe {
+ cipd_package: "infra_internal/recipe_bundles/chrome-internal.googlesource.com/chrome/tools/build_limited/scripts/slave"
+ cipd_version: "refs/heads/master"
+ }
+}
+
+acl_sets {
+ name: "ci"
+ acls {
+ role: READER
+ group: "project-r8-readers"
+ }
+ acls {
+ role: SCHEDULER
+ identity: "luci-scheduler@appspot.gserviceaccount.com"
+ }
+}
+
+acl_sets {
+ name: "try"
+ acls {
+ role: READER
+ group: "project-r8-readers"
+ }
+ acls {
+ role: WRITER
+ group: "project-r8-admins"
+ }
+ acls {
+ role: SCHEDULER
+ group: "service-account-cq"
+ }
+ acls {
+ role: SCHEDULER
+ group: "project-r8-tryjob-access"
+ }
+}
+
+buckets {
+ name: "luci.r8.ci"
+ acl_sets: "ci"
+ swarming {
+ hostname: "chrome-swarming.appspot.com"
+ builder_defaults {
+ dimensions: "cores:8"
+ dimensions: "cpu:x86-64"
+ dimensions: "pool:luci.r8.ci"
+ service_account: "r8-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ execution_timeout_secs: 10800 # 3h
+ swarming_tags: "vpython:native-python-wrapper"
+ build_numbers: YES
+ luci_migration_host: "luci-migration.appspot.com"
+ recipe {
+ properties: "mastername:internal.client.r8"
+ name: "rex"
+ }
+ }
+
+ builders {
+ name: "archive"
+ mixins: "linux"
+ }
+ builders {
+ name: "archive_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-4.0.4"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-4.0.4_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-4.4.4"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-4.4.4_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-5.1.1"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-5.1.1_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-6.0.1"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-6.0.1_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-7.0.0"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-android-7.0.0_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-jctf"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux-jctf_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "d8-linux_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-4.0.4"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-4.0.4_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-4.4.4"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-4.4.4_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-5.1.1"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-5.1.1_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-6.0.1"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-6.0.1_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-7.0.0"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-android-7.0.0_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-internal"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-internal_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-jctf"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux-jctf_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "linux_release"
+ mixins: "linux"
+ }
+ builders {
+ name: "r8cf-linux-jctf"
+ mixins: "linux"
+ }
+ builders {
+ name: "windows"
+ mixins: "win"
+ }
+ builders {
+ name: "windows_release"
+ mixins: "win"
+ }
+ }
+}
diff --git a/infra/config/global/luci-logdog.cfg b/infra/config/global/luci-logdog.cfg
new file mode 100644
index 0000000..985ab91
--- /dev/null
+++ b/infra/config/global/luci-logdog.cfg
@@ -0,0 +1,14 @@
+# For the schema of this file and documentation, see ProjectConfig message in
+# https://luci-config.appspot.com/schemas/services/luci-logdog:logdog.cfg
+# This is for the pdfium project, but we're going to piggyback
+# off of the chromium settings.
+
+# Auth groups who can read log streams.
+reader_auth_groups: "project-r8-readers"
+# Auth groups who can register and emit new log streams.
+writer_auth_groups: "luci-logdog-r8-writers"
+# The base Google Storage archival path for this project.
+#
+# Archived LogDog logs will be written to this bucket/path.
+archive_gs_bucket: "logdog-r8-archive"
+
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg
new file mode 100644
index 0000000..42f3cdc
--- /dev/null
+++ b/infra/config/global/luci-milo.cfg
@@ -0,0 +1,184 @@
+consoles {
+ id: "main"
+ name: "r8 Main Console"
+ repo_url: "https://r8.googlesource.com/r8"
+ refs: "refs/heads/master"
+ manifest_name: "REVISION"
+
+
+ builders {
+ name: "buildbucket/luci.r8.ci/archive"
+ category: "archive"
+ short_name: "arc"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/archive_release"
+ category: "archive_release"
+ short_name: "arc"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux"
+ category: "d8-linux"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-4.0.4"
+ category: "d8-linux-android-4.0.4"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-4.0.4_release"
+ category: "d8-linux-android-4.0.4_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-4.4.4"
+ category: "d8-linux-android-4.4.4"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-4.4.4_release"
+ category: "d8-linux-android-4.4.4_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-5.1.1"
+ category: "d8-linux-android-5.1.1"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-5.1.1_release"
+ category: "d8-linux-android-5.1.1_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-6.0.1"
+ category: "d8-linux-android-6.0.1"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-6.0.1_release"
+ category: "d8-linux-android-6.0.1_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-7.0.0"
+ category: "d8-linux-android-7.0.0"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-android-7.0.0_release"
+ category: "d8-linux-android-7.0.0_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-jctf"
+ category: "d8-linux-jctf"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux-jctf_release"
+ category: "d8-linux-jctf_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/d8-linux_release"
+ category: "d8-linux_release"
+ short_name: "d8-"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux"
+ category: "linux"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-4.0.4"
+ category: "linux-android-4.0.4"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-4.0.4_release"
+ category: "linux-android-4.0.4_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-4.4.4"
+ category: "linux-android-4.4.4"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-4.4.4_release"
+ category: "linux-android-4.4.4_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-5.1.1"
+ category: "linux-android-5.1.1"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-5.1.1_release"
+ category: "linux-android-5.1.1_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-6.0.1"
+ category: "linux-android-6.0.1"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-6.0.1_release"
+ category: "linux-android-6.0.1_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-7.0.0"
+ category: "linux-android-7.0.0"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-android-7.0.0_release"
+ category: "linux-android-7.0.0_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-internal"
+ category: "linux-internal"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-internal_release"
+ category: "linux-internal_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-jctf"
+ category: "linux-jctf"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux-jctf_release"
+ category: "linux-jctf_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/linux_release"
+ category: "linux_release"
+ short_name: "lin"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/r8cf-linux-jctf"
+ category: "r8cf-linux-jctf"
+ short_name: "r8c"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/windows"
+ category: "windows"
+ short_name: "win"
+ }
+ builders {
+ name: "buildbucket/luci.r8.ci/windows_release"
+ category: "windows_release"
+ short_name: "win"
+ }
+}
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg
new file mode 100644
index 0000000..653f1dc
--- /dev/null
+++ b/infra/config/global/luci-scheduler.cfg
@@ -0,0 +1,415 @@
+# Defines jobs on luci-scheduler.appspot.com.
+#
+# For schema of this file and documentation see ProjectConfig message in
+#
+# https://chromium.googlesource.com/infra/luci/luci-go/+/master/scheduler/appengine/messages/config.proto
+
+acl_sets {
+ name: "default"
+ acls {
+ role: READER
+ granted_to: "group:project-r8-readers"
+ }
+ acls {
+ role: OWNER
+ granted_to: "group:project-r8-admins"
+ }
+}
+
+trigger {
+ id: "master-gitiles-trigger"
+ acl_sets: "default"
+ gitiles: {
+ repo: "https://r8.googlesource.com/r8.git"
+ refs: "refs/heads/master"
+ }
+
+ triggers: "archive"
+ triggers: "archive_release"
+ triggers: "d8-linux"
+ triggers: "d8-linux-android-4.0.4"
+ triggers: "d8-linux-android-4.0.4_release"
+ triggers: "d8-linux-android-4.4.4"
+ triggers: "d8-linux-android-4.4.4_release"
+ triggers: "d8-linux-android-5.1.1"
+ triggers: "d8-linux-android-5.1.1_release"
+ triggers: "d8-linux-android-6.0.1"
+ triggers: "d8-linux-android-6.0.1_release"
+ triggers: "d8-linux-android-7.0.0"
+ triggers: "d8-linux-android-7.0.0_release"
+ triggers: "d8-linux-jctf"
+ triggers: "d8-linux-jctf_release"
+ triggers: "d8-linux_release"
+ triggers: "linux"
+ triggers: "linux-android-4.0.4"
+ triggers: "linux-android-4.0.4_release"
+ triggers: "linux-android-4.4.4"
+ triggers: "linux-android-4.4.4_release"
+ triggers: "linux-android-5.1.1"
+ triggers: "linux-android-5.1.1_release"
+ triggers: "linux-android-6.0.1"
+ triggers: "linux-android-6.0.1_release"
+ triggers: "linux-android-7.0.0"
+ triggers: "linux-android-7.0.0_release"
+ triggers: "linux-internal"
+ triggers: "linux-internal_release"
+ triggers: "linux-jctf"
+ triggers: "linux-jctf_release"
+ triggers: "linux_release"
+ triggers: "r8cf-linux-jctf"
+ triggers: "windows"
+ triggers: "windows_release"
+
+}
+
+
+job {
+ id: "archive"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "archive"
+ }
+}
+
+job {
+ id: "archive_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "archive_release"
+ }
+}
+
+job {
+ id: "d8-linux"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux"
+ }
+}
+
+job {
+ id: "d8-linux-android-4.0.4"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-4.0.4"
+ }
+}
+
+job {
+ id: "d8-linux-android-4.0.4_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-4.0.4_release"
+ }
+}
+
+job {
+ id: "d8-linux-android-4.4.4"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-4.4.4"
+ }
+}
+
+job {
+ id: "d8-linux-android-4.4.4_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-4.4.4_release"
+ }
+}
+
+job {
+ id: "d8-linux-android-5.1.1"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-5.1.1"
+ }
+}
+
+job {
+ id: "d8-linux-android-5.1.1_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-5.1.1_release"
+ }
+}
+
+job {
+ id: "d8-linux-android-6.0.1"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-6.0.1"
+ }
+}
+
+job {
+ id: "d8-linux-android-6.0.1_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-6.0.1_release"
+ }
+}
+
+job {
+ id: "d8-linux-android-7.0.0"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-7.0.0"
+ }
+}
+
+job {
+ id: "d8-linux-android-7.0.0_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-android-7.0.0_release"
+ }
+}
+
+job {
+ id: "d8-linux-jctf"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-jctf"
+ }
+}
+
+job {
+ id: "d8-linux-jctf_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux-jctf_release"
+ }
+}
+
+job {
+ id: "d8-linux_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "d8-linux_release"
+ }
+}
+
+job {
+ id: "linux"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux"
+ }
+}
+
+job {
+ id: "linux-android-4.0.4"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-4.0.4"
+ }
+}
+
+job {
+ id: "linux-android-4.0.4_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-4.0.4_release"
+ }
+}
+
+job {
+ id: "linux-android-4.4.4"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-4.4.4"
+ }
+}
+
+job {
+ id: "linux-android-4.4.4_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-4.4.4_release"
+ }
+}
+
+job {
+ id: "linux-android-5.1.1"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-5.1.1"
+ }
+}
+
+job {
+ id: "linux-android-5.1.1_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-5.1.1_release"
+ }
+}
+
+job {
+ id: "linux-android-6.0.1"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-6.0.1"
+ }
+}
+
+job {
+ id: "linux-android-6.0.1_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-6.0.1_release"
+ }
+}
+
+job {
+ id: "linux-android-7.0.0"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-7.0.0"
+ }
+}
+
+job {
+ id: "linux-android-7.0.0_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-android-7.0.0_release"
+ }
+}
+
+job {
+ id: "linux-internal"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-internal"
+ }
+}
+
+job {
+ id: "linux-internal_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-internal_release"
+ }
+}
+
+job {
+ id: "linux-jctf"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-jctf"
+ }
+}
+
+job {
+ id: "linux-jctf_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux-jctf_release"
+ }
+}
+
+job {
+ id: "linux_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "linux_release"
+ }
+}
+
+job {
+ id: "r8cf-linux-jctf"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "r8cf-linux-jctf"
+ }
+}
+
+job {
+ id: "windows"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "windows"
+ }
+}
+
+job {
+ id: "windows_release"
+ acl_sets: "default"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.r8.ci"
+ builder: "windows_release"
+ }
+}
+
diff --git a/infra/config/global/project.cfg b/infra/config/global/project.cfg
new file mode 100644
index 0000000..d1cef54
--- /dev/null
+++ b/infra/config/global/project.cfg
@@ -0,0 +1,4 @@
+# For the schema of this file and documentation, see ProjectCfg message in
+# https://luci-config.appspot.com/schemas/projects:project.cfg
+name: "r8"
+access: "group:project-r8-readers"
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
index 51f9de0..c0008dc 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.cf.FixedLocalValue;
import com.android.tools.r8.dex.Constants;
+import com.android.tools.r8.errors.CompilationError;
import com.android.tools.r8.graph.AppInfo;
import com.android.tools.r8.graph.DebugLocalInfo;
import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
@@ -618,6 +619,13 @@
return realRegisterNumberFromAllocated(value.asFixedRegisterValue().getRegister());
}
LiveIntervals intervals = value.getLiveIntervals();
+ if (intervals == null) {
+ throw new CompilationError(
+ "Unexpected attempt to get register for a value without a register in method `"
+ + code.method.method.toSourceString()
+ + "`.",
+ code.origin);
+ }
if (intervals.hasSplits()) {
intervals = intervals.getSplitCovering(instructionNumber);
}
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index 7f389a4..af18595 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -25,7 +25,6 @@
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.Timing;
import com.google.common.collect.ImmutableMap;
-import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Set;
@@ -87,13 +86,11 @@
return lens;
}
- static class MinifiedRenaming extends NamingLens {
+ private static class MinifiedRenaming extends NamingLens {
private final AppInfo appInfo;
private final Map<String, String> packageRenaming;
private final Map<DexItem, DexString> renaming = new IdentityHashMap<>();
- // This set is only used for asserting no duplicated names.
- private final Map<DexString, DexType> renamedTypesForVerification;
private MinifiedRenaming(
ClassRenaming classRenaming,
@@ -106,10 +103,6 @@
renaming.putAll(methodRenaming.renaming);
renaming.putAll(methodRenaming.callSiteRenaming);
renaming.putAll(fieldRenaming.renaming);
- renamedTypesForVerification = new HashMap<>();
- for (Map.Entry<DexType, DexString> entry : classRenaming.classRenaming.entrySet()) {
- renamedTypesForVerification.put(entry.getValue(), entry.getKey());
- }
}
@Override
@@ -119,18 +112,7 @@
@Override
public DexString lookupDescriptor(DexType type) {
- DexString dexString = renaming.get(type);
- if (dexString != null) {
- return dexString;
- }
- assert type.isPrimitiveType()
- || type.isVoidType()
- || !renamedTypesForVerification.containsKey(type.descriptor)
- : "Duplicate minified type '"
- + type.descriptor
- + "' already mapped for: "
- + renamedTypesForVerification.get(type.descriptor);
- return type.descriptor;
+ return renaming.getOrDefault(type, type.descriptor);
}
@Override
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierTest.java b/src/test/java/com/android/tools/r8/naming/MinifierTest.java
index adf74ce..473ca53 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierTest.java
@@ -3,16 +3,13 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.naming;
-import static junit.framework.TestCase.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.fail;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.naming.Minifier.MinifiedRenaming;
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.Timing;
import java.nio.file.Paths;
@@ -43,25 +40,6 @@
inspection.accept(dexItemFactory, naming);
}
- @Test
- public void ensureClassesAddedToRenamingOrNoClashTest() throws Exception {
- MinifiedRenaming naming =
- (MinifiedRenaming) runMinifier(ListUtils.map(keepRulesFiles, Paths::get));
- // Create a type that exists.
- String existingType = "La/c;";
- DexType d = dexItemFactory.createType(existingType);
- try {
- naming.lookupDescriptor(d);
- } catch (AssertionError ae) {
- assertTrue(
- ae.getMessage()
- .startsWith(
- "Duplicate minified type '" + existingType + "' already mapped for: naming001."));
- return;
- }
- fail("Should have thrown an error.");
- }
-
@Parameters(name = "test: {0} keep: {1}")
public static Collection<Object[]> data() {
List<String> tests = Arrays.asList("naming001");
diff --git a/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java b/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
index 659a8fc..37a0215 100644
--- a/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
+++ b/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
@@ -89,7 +89,7 @@
// Convince R8 we only use subtypes to get class merging of Foo into FooImpl.
Foo<String> foo = new FooImpl<>();
- System.out.println(foo.getClass().getTypeName());
+ System.out.println(foo.getClass().getCanonicalName());
}
}
diff --git a/tools/run_on_as_app.py b/tools/run_on_as_app.py
index ef72d12..f3cc2eb 100755
--- a/tools/run_on_as_app.py
+++ b/tools/run_on_as_app.py
@@ -107,6 +107,7 @@
'app_module': '',
'flavor': 'play',
'git_repo': 'https://github.com/mkj-gram/Signal-Android.git',
+ 'main_dex_rules': 'multidex-config.pro',
'revision': '85e1a10993e5e9ffe923f0798b26cbc44068ba31',
'releaseTarget': 'assemblePlayRelease',
'signed-apk-name': 'Signal-play-release-4.32.7.apk',
@@ -353,6 +354,13 @@
# Now rebuild generated apk.
previous_apk = apk_dest
+
+ # We may need main dex rules when re-compiling with R8 as standalone.
+ main_dex_rules = None
+ if config.get('main_dex_rules'):
+ main_dex_rules = os.path.join(
+ checkout_dir, config.get('main_dex_rules'))
+
for i in range(1, options.r8_compilation_steps):
try:
recompiled_apk_dest = os.path.join(
@@ -360,7 +368,7 @@
RebuildAppWithShrinker(
app, previous_apk, recompiled_apk_dest,
ext_proguard_config_file, shrinker, min_sdk, compile_sdk,
- options, temp_dir)
+ options, temp_dir, main_dex_rules)
recompilation_result = {
'apk_dest': recompiled_apk_dest,
'build_status': 'success',
@@ -483,7 +491,7 @@
def RebuildAppWithShrinker(
app, apk, apk_dest, proguard_config_file, shrinker, min_sdk, compile_sdk,
- options, temp_dir):
+ options, temp_dir, main_dex_rules):
assert 'r8' in shrinker
assert apk_dest.endswith('.apk')
@@ -507,6 +515,10 @@
cmd.append('--lib')
cmd.append(android_optional_jar)
+ if main_dex_rules:
+ cmd.append('--main-dex-rules')
+ cmd.append(main_dex_rules)
+
utils.RunCmd(cmd, quiet=options.quiet)
# Make a copy of the given APK, move the newly generated dex files into the