summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2021-07-20 16:56:06 +0100
committer David Srbecky <dsrbecky@google.com> 2021-10-05 10:53:06 +0000
commit7cf6c58ed90d827dd9b85020219eced5d8c8ae78 (patch)
treea0da2d477a14055959e9cbcfa15e5673cc04f9ff
parentd4e07aac5b8774545d848b2907664a01ae00568f (diff)
Move run-test compilation to soong.
Run-test compile many java files (sometimes in very specific ways). Compile them just once in soong, instead of every time we run a test. This makes local host tests 4x faster (21min -> 6min). I expect similar or better improvement on LUCI. It does not affect eng-prod tests now, but the generated output should be reusable to make more run-tests supported in eng-prod. Bug: 147814778 Test: test.py -r --host --target --jvm Change-Id: If689784d2a8d901d132ed0d674a2e2be36f1cd05
-rw-r--r--build/apex/Android.bp13
-rwxr-xr-xtest/968-default-partial-compile-gen/util-src/generate_java.py1
-rwxr-xr-xtest/971-iface-super/util-src/generate_java.py1
-rw-r--r--test/Android.bp46
-rw-r--r--test/Android.run-test.bp3029
-rwxr-xr-xtest/Android.run-test.bp.py60
-rw-r--r--test/Android.run-test.mk4
-rwxr-xr-xtest/etc/default-build12
-rwxr-xr-xtest/run-test300
-rwxr-xr-xtest/run-test-build.py101
-rwxr-xr-xtest/testrunner/testrunner.py31
-rwxr-xr-xtools/javac-helper.sh2
12 files changed, 3317 insertions, 283 deletions
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index 7efdcb8aa7..a38a2c6a9f 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -174,6 +174,19 @@ libcore_java_libs = [
"apache-xml",
]
+// Create combined library which is used for compiling run-tests.
+// This is much easier than trying to make the test depend on them directly,
+// or than trying to make the test compilation depend on the apex module.
+// Some of the components are only visible here (but not in test Android.bp).
+java_library {
+ name: "art-run-test-bootclasspath",
+ sdk_version: "core_platform",
+ static_libs: libcore_java_libs + [
+ "core-icu4j-host",
+ "framework-annotations-lib",
+ ],
+}
+
// Native libraries that support the core Java libraries.
//
// Note: ART on-device chroot-based testing and benchmarking is not yet using
diff --git a/test/968-default-partial-compile-gen/util-src/generate_java.py b/test/968-default-partial-compile-gen/util-src/generate_java.py
index ce3c912e35..a4a4a4dce0 100755
--- a/test/968-default-partial-compile-gen/util-src/generate_java.py
+++ b/test/968-default-partial-compile-gen/util-src/generate_java.py
@@ -68,7 +68,6 @@ class Compiler:
args = args.split()
files = list(map(str, files))
cmd = ['sh', '-a', '-e', '--', str(self.javac)] + args + sorted(files)
- print("Running compile command: {}".format(cmd))
subprocess.check_call(cmd)
print("Compiled {} files".format(len(files)))
diff --git a/test/971-iface-super/util-src/generate_java.py b/test/971-iface-super/util-src/generate_java.py
index c246e88acb..dafe7f5664 100755
--- a/test/971-iface-super/util-src/generate_java.py
+++ b/test/971-iface-super/util-src/generate_java.py
@@ -68,7 +68,6 @@ class Compiler:
args = args.split()
files = list(map(str, files))
cmd = ['sh', '-a', '-e', '--', str(self.javac)] + args + sorted(files)
- print("Running compile command: {}".format(cmd))
subprocess.check_call(cmd)
print("Compiled {} files".format(len(files)))
diff --git a/test/Android.bp b/test/Android.bp
index f67de2a324..06e55f966e 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -1312,6 +1312,30 @@ art_cc_test {
],
}
+// Install run-test data in the output directory.
+prebuilt_etc_host {
+ name: "art-run-test-host-data",
+ src: ":art-run-test-host-data-merged",
+ sub_dir: "art",
+ filename: "art-run-test-host-data.zip",
+}
+
+// Install run-test data in the output directory.
+prebuilt_etc_host {
+ name: "art-run-test-jvm-data",
+ src: ":art-run-test-jvm-data-merged",
+ sub_dir: "art",
+ filename: "art-run-test-jvm-data.zip",
+}
+
+// Install run-test data in the output directory.
+prebuilt_etc_host {
+ name: "art-run-test-target-data",
+ src: ":art-run-test-target-data-merged",
+ sub_dir: "art",
+ filename: "art-run-test-target-data.zip",
+}
+
filegroup {
name: "art-gtest-jars",
srcs: [
@@ -1787,3 +1811,25 @@ genrule {
srcs: ["Dex2oatVdexPublicSdkDex/*.smali"],
out: ["art-gtest-jars-Dex2oatVdexPublicSdkDex.dex"],
}
+
+genrule_defaults {
+ name: "art-run-test-data-defaults",
+ tool_files: [
+ "run-test-build.py",
+ "knownfailures.json",
+ "etc/default-build",
+ "etc/default-run",
+ "etc/default-check",
+ ":art-run-test-bootclasspath",
+ ],
+ tools: [
+ "d8",
+ "hiddenapi",
+ "jasmin",
+ "smali",
+ ],
+}
+
+build = [
+ "Android.run-test.bp",
+]
diff --git a/test/Android.run-test.bp b/test/Android.run-test.bp
new file mode 100644
index 0000000000..0f47bc1f7c
--- /dev/null
+++ b/test/Android.run-test.bp
@@ -0,0 +1,3029 @@
+// This file was generated by Android.run-test.bp.py
+// It is not necessary to regenerate it when tests are added/removed/modified.
+
+genrule {
+ name: "art-run-test-host-data-shard00",
+ out: ["art-run-test-host-data-shard00.zip"],
+ srcs: ["*00-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 00 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard01",
+ out: ["art-run-test-host-data-shard01.zip"],
+ srcs: ["*01-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 01 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard02",
+ out: ["art-run-test-host-data-shard02.zip"],
+ srcs: ["*02-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 02 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard03",
+ out: ["art-run-test-host-data-shard03.zip"],
+ srcs: ["*03-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 03 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard04",
+ out: ["art-run-test-host-data-shard04.zip"],
+ srcs: ["*04-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 04 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard05",
+ out: ["art-run-test-host-data-shard05.zip"],
+ srcs: ["*05-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 05 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard06",
+ out: ["art-run-test-host-data-shard06.zip"],
+ srcs: ["*06-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 06 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard07",
+ out: ["art-run-test-host-data-shard07.zip"],
+ srcs: ["*07-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 07 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard08",
+ out: ["art-run-test-host-data-shard08.zip"],
+ srcs: ["*08-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 08 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard09",
+ out: ["art-run-test-host-data-shard09.zip"],
+ srcs: ["*09-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 09 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard10",
+ out: ["art-run-test-host-data-shard10.zip"],
+ srcs: ["*10-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 10 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard11",
+ out: ["art-run-test-host-data-shard11.zip"],
+ srcs: ["*11-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 11 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard12",
+ out: ["art-run-test-host-data-shard12.zip"],
+ srcs: ["*12-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 12 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard13",
+ out: ["art-run-test-host-data-shard13.zip"],
+ srcs: ["*13-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 13 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard14",
+ out: ["art-run-test-host-data-shard14.zip"],
+ srcs: ["*14-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 14 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard15",
+ out: ["art-run-test-host-data-shard15.zip"],
+ srcs: ["*15-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 15 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard16",
+ out: ["art-run-test-host-data-shard16.zip"],
+ srcs: ["*16-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 16 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard17",
+ out: ["art-run-test-host-data-shard17.zip"],
+ srcs: ["*17-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 17 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard18",
+ out: ["art-run-test-host-data-shard18.zip"],
+ srcs: ["*18-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 18 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard19",
+ out: ["art-run-test-host-data-shard19.zip"],
+ srcs: ["*19-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 19 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard20",
+ out: ["art-run-test-host-data-shard20.zip"],
+ srcs: ["*20-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 20 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard21",
+ out: ["art-run-test-host-data-shard21.zip"],
+ srcs: ["*21-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 21 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard22",
+ out: ["art-run-test-host-data-shard22.zip"],
+ srcs: ["*22-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 22 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard23",
+ out: ["art-run-test-host-data-shard23.zip"],
+ srcs: ["*23-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 23 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard24",
+ out: ["art-run-test-host-data-shard24.zip"],
+ srcs: ["*24-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 24 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard25",
+ out: ["art-run-test-host-data-shard25.zip"],
+ srcs: ["*25-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 25 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard26",
+ out: ["art-run-test-host-data-shard26.zip"],
+ srcs: ["*26-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 26 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard27",
+ out: ["art-run-test-host-data-shard27.zip"],
+ srcs: ["*27-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 27 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard28",
+ out: ["art-run-test-host-data-shard28.zip"],
+ srcs: ["*28-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 28 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard29",
+ out: ["art-run-test-host-data-shard29.zip"],
+ srcs: ["*29-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 29 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard30",
+ out: ["art-run-test-host-data-shard30.zip"],
+ srcs: ["*30-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 30 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard31",
+ out: ["art-run-test-host-data-shard31.zip"],
+ srcs: ["*31-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 31 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard32",
+ out: ["art-run-test-host-data-shard32.zip"],
+ srcs: ["*32-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 32 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard33",
+ out: ["art-run-test-host-data-shard33.zip"],
+ srcs: ["*33-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 33 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard34",
+ out: ["art-run-test-host-data-shard34.zip"],
+ srcs: ["*34-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 34 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard35",
+ out: ["art-run-test-host-data-shard35.zip"],
+ srcs: ["*35-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 35 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard36",
+ out: ["art-run-test-host-data-shard36.zip"],
+ srcs: ["*36-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 36 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard37",
+ out: ["art-run-test-host-data-shard37.zip"],
+ srcs: ["*37-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 37 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard38",
+ out: ["art-run-test-host-data-shard38.zip"],
+ srcs: ["*38-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 38 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard39",
+ out: ["art-run-test-host-data-shard39.zip"],
+ srcs: ["*39-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 39 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard40",
+ out: ["art-run-test-host-data-shard40.zip"],
+ srcs: ["*40-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 40 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard41",
+ out: ["art-run-test-host-data-shard41.zip"],
+ srcs: ["*41-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 41 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard42",
+ out: ["art-run-test-host-data-shard42.zip"],
+ srcs: ["*42-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 42 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard43",
+ out: ["art-run-test-host-data-shard43.zip"],
+ srcs: ["*43-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 43 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard44",
+ out: ["art-run-test-host-data-shard44.zip"],
+ srcs: ["*44-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 44 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard45",
+ out: ["art-run-test-host-data-shard45.zip"],
+ srcs: ["*45-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 45 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard46",
+ out: ["art-run-test-host-data-shard46.zip"],
+ srcs: ["*46-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 46 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard47",
+ out: ["art-run-test-host-data-shard47.zip"],
+ srcs: ["*47-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 47 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard48",
+ out: ["art-run-test-host-data-shard48.zip"],
+ srcs: ["*48-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 48 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard49",
+ out: ["art-run-test-host-data-shard49.zip"],
+ srcs: ["*49-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 49 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard50",
+ out: ["art-run-test-host-data-shard50.zip"],
+ srcs: ["*50-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 50 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard51",
+ out: ["art-run-test-host-data-shard51.zip"],
+ srcs: ["*51-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 51 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard52",
+ out: ["art-run-test-host-data-shard52.zip"],
+ srcs: ["*52-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 52 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard53",
+ out: ["art-run-test-host-data-shard53.zip"],
+ srcs: ["*53-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 53 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard54",
+ out: ["art-run-test-host-data-shard54.zip"],
+ srcs: ["*54-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 54 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard55",
+ out: ["art-run-test-host-data-shard55.zip"],
+ srcs: ["*55-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 55 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard56",
+ out: ["art-run-test-host-data-shard56.zip"],
+ srcs: ["*56-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 56 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard57",
+ out: ["art-run-test-host-data-shard57.zip"],
+ srcs: ["*57-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 57 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard58",
+ out: ["art-run-test-host-data-shard58.zip"],
+ srcs: ["*58-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 58 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard59",
+ out: ["art-run-test-host-data-shard59.zip"],
+ srcs: ["*59-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 59 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard60",
+ out: ["art-run-test-host-data-shard60.zip"],
+ srcs: ["*60-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 60 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard61",
+ out: ["art-run-test-host-data-shard61.zip"],
+ srcs: ["*61-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 61 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard62",
+ out: ["art-run-test-host-data-shard62.zip"],
+ srcs: ["*62-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 62 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard63",
+ out: ["art-run-test-host-data-shard63.zip"],
+ srcs: ["*63-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 63 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard64",
+ out: ["art-run-test-host-data-shard64.zip"],
+ srcs: ["*64-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 64 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard65",
+ out: ["art-run-test-host-data-shard65.zip"],
+ srcs: ["*65-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 65 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard66",
+ out: ["art-run-test-host-data-shard66.zip"],
+ srcs: ["*66-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 66 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard67",
+ out: ["art-run-test-host-data-shard67.zip"],
+ srcs: ["*67-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 67 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard68",
+ out: ["art-run-test-host-data-shard68.zip"],
+ srcs: ["*68-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 68 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard69",
+ out: ["art-run-test-host-data-shard69.zip"],
+ srcs: ["*69-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 69 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard70",
+ out: ["art-run-test-host-data-shard70.zip"],
+ srcs: ["*70-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 70 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard71",
+ out: ["art-run-test-host-data-shard71.zip"],
+ srcs: ["*71-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 71 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard72",
+ out: ["art-run-test-host-data-shard72.zip"],
+ srcs: ["*72-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 72 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard73",
+ out: ["art-run-test-host-data-shard73.zip"],
+ srcs: ["*73-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 73 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard74",
+ out: ["art-run-test-host-data-shard74.zip"],
+ srcs: ["*74-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 74 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard75",
+ out: ["art-run-test-host-data-shard75.zip"],
+ srcs: ["*75-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 75 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard76",
+ out: ["art-run-test-host-data-shard76.zip"],
+ srcs: ["*76-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 76 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard77",
+ out: ["art-run-test-host-data-shard77.zip"],
+ srcs: ["*77-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 77 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard78",
+ out: ["art-run-test-host-data-shard78.zip"],
+ srcs: ["*78-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 78 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard79",
+ out: ["art-run-test-host-data-shard79.zip"],
+ srcs: ["*79-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 79 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard80",
+ out: ["art-run-test-host-data-shard80.zip"],
+ srcs: ["*80-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 80 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard81",
+ out: ["art-run-test-host-data-shard81.zip"],
+ srcs: ["*81-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 81 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard82",
+ out: ["art-run-test-host-data-shard82.zip"],
+ srcs: ["*82-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 82 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard83",
+ out: ["art-run-test-host-data-shard83.zip"],
+ srcs: ["*83-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 83 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard84",
+ out: ["art-run-test-host-data-shard84.zip"],
+ srcs: ["*84-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 84 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard85",
+ out: ["art-run-test-host-data-shard85.zip"],
+ srcs: ["*85-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 85 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard86",
+ out: ["art-run-test-host-data-shard86.zip"],
+ srcs: ["*86-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 86 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard87",
+ out: ["art-run-test-host-data-shard87.zip"],
+ srcs: ["*87-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 87 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard88",
+ out: ["art-run-test-host-data-shard88.zip"],
+ srcs: ["*88-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 88 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard89",
+ out: ["art-run-test-host-data-shard89.zip"],
+ srcs: ["*89-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 89 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard90",
+ out: ["art-run-test-host-data-shard90.zip"],
+ srcs: ["*90-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 90 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard91",
+ out: ["art-run-test-host-data-shard91.zip"],
+ srcs: ["*91-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 91 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard92",
+ out: ["art-run-test-host-data-shard92.zip"],
+ srcs: ["*92-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 92 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard93",
+ out: ["art-run-test-host-data-shard93.zip"],
+ srcs: ["*93-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 93 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard94",
+ out: ["art-run-test-host-data-shard94.zip"],
+ srcs: ["*94-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 94 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard95",
+ out: ["art-run-test-host-data-shard95.zip"],
+ srcs: ["*95-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 95 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard96",
+ out: ["art-run-test-host-data-shard96.zip"],
+ srcs: ["*96-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 96 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard97",
+ out: ["art-run-test-host-data-shard97.zip"],
+ srcs: ["*97-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 97 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard98",
+ out: ["art-run-test-host-data-shard98.zip"],
+ srcs: ["*98-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 98 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-shard99",
+ out: ["art-run-test-host-data-shard99.zip"],
+ srcs: ["*99-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode host --shard 99 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-host-data-merged",
+ out: ["art-run-test-host-data-merged.zip"],
+ srcs: [
+ ":art-run-test-host-data-shard00",
+ ":art-run-test-host-data-shard01",
+ ":art-run-test-host-data-shard02",
+ ":art-run-test-host-data-shard03",
+ ":art-run-test-host-data-shard04",
+ ":art-run-test-host-data-shard05",
+ ":art-run-test-host-data-shard06",
+ ":art-run-test-host-data-shard07",
+ ":art-run-test-host-data-shard08",
+ ":art-run-test-host-data-shard09",
+ ":art-run-test-host-data-shard10",
+ ":art-run-test-host-data-shard11",
+ ":art-run-test-host-data-shard12",
+ ":art-run-test-host-data-shard13",
+ ":art-run-test-host-data-shard14",
+ ":art-run-test-host-data-shard15",
+ ":art-run-test-host-data-shard16",
+ ":art-run-test-host-data-shard17",
+ ":art-run-test-host-data-shard18",
+ ":art-run-test-host-data-shard19",
+ ":art-run-test-host-data-shard20",
+ ":art-run-test-host-data-shard21",
+ ":art-run-test-host-data-shard22",
+ ":art-run-test-host-data-shard23",
+ ":art-run-test-host-data-shard24",
+ ":art-run-test-host-data-shard25",
+ ":art-run-test-host-data-shard26",
+ ":art-run-test-host-data-shard27",
+ ":art-run-test-host-data-shard28",
+ ":art-run-test-host-data-shard29",
+ ":art-run-test-host-data-shard30",
+ ":art-run-test-host-data-shard31",
+ ":art-run-test-host-data-shard32",
+ ":art-run-test-host-data-shard33",
+ ":art-run-test-host-data-shard34",
+ ":art-run-test-host-data-shard35",
+ ":art-run-test-host-data-shard36",
+ ":art-run-test-host-data-shard37",
+ ":art-run-test-host-data-shard38",
+ ":art-run-test-host-data-shard39",
+ ":art-run-test-host-data-shard40",
+ ":art-run-test-host-data-shard41",
+ ":art-run-test-host-data-shard42",
+ ":art-run-test-host-data-shard43",
+ ":art-run-test-host-data-shard44",
+ ":art-run-test-host-data-shard45",
+ ":art-run-test-host-data-shard46",
+ ":art-run-test-host-data-shard47",
+ ":art-run-test-host-data-shard48",
+ ":art-run-test-host-data-shard49",
+ ":art-run-test-host-data-shard50",
+ ":art-run-test-host-data-shard51",
+ ":art-run-test-host-data-shard52",
+ ":art-run-test-host-data-shard53",
+ ":art-run-test-host-data-shard54",
+ ":art-run-test-host-data-shard55",
+ ":art-run-test-host-data-shard56",
+ ":art-run-test-host-data-shard57",
+ ":art-run-test-host-data-shard58",
+ ":art-run-test-host-data-shard59",
+ ":art-run-test-host-data-shard60",
+ ":art-run-test-host-data-shard61",
+ ":art-run-test-host-data-shard62",
+ ":art-run-test-host-data-shard63",
+ ":art-run-test-host-data-shard64",
+ ":art-run-test-host-data-shard65",
+ ":art-run-test-host-data-shard66",
+ ":art-run-test-host-data-shard67",
+ ":art-run-test-host-data-shard68",
+ ":art-run-test-host-data-shard69",
+ ":art-run-test-host-data-shard70",
+ ":art-run-test-host-data-shard71",
+ ":art-run-test-host-data-shard72",
+ ":art-run-test-host-data-shard73",
+ ":art-run-test-host-data-shard74",
+ ":art-run-test-host-data-shard75",
+ ":art-run-test-host-data-shard76",
+ ":art-run-test-host-data-shard77",
+ ":art-run-test-host-data-shard78",
+ ":art-run-test-host-data-shard79",
+ ":art-run-test-host-data-shard80",
+ ":art-run-test-host-data-shard81",
+ ":art-run-test-host-data-shard82",
+ ":art-run-test-host-data-shard83",
+ ":art-run-test-host-data-shard84",
+ ":art-run-test-host-data-shard85",
+ ":art-run-test-host-data-shard86",
+ ":art-run-test-host-data-shard87",
+ ":art-run-test-host-data-shard88",
+ ":art-run-test-host-data-shard89",
+ ":art-run-test-host-data-shard90",
+ ":art-run-test-host-data-shard91",
+ ":art-run-test-host-data-shard92",
+ ":art-run-test-host-data-shard93",
+ ":art-run-test-host-data-shard94",
+ ":art-run-test-host-data-shard95",
+ ":art-run-test-host-data-shard96",
+ ":art-run-test-host-data-shard97",
+ ":art-run-test-host-data-shard98",
+ ":art-run-test-host-data-shard99",
+ ],
+ tools: ["merge_zips"],
+ cmd: "$(location merge_zips) $(out) $(in)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard00",
+ out: ["art-run-test-target-data-shard00.zip"],
+ srcs: ["*00-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 00 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard01",
+ out: ["art-run-test-target-data-shard01.zip"],
+ srcs: ["*01-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 01 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard02",
+ out: ["art-run-test-target-data-shard02.zip"],
+ srcs: ["*02-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 02 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard03",
+ out: ["art-run-test-target-data-shard03.zip"],
+ srcs: ["*03-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 03 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard04",
+ out: ["art-run-test-target-data-shard04.zip"],
+ srcs: ["*04-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 04 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard05",
+ out: ["art-run-test-target-data-shard05.zip"],
+ srcs: ["*05-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 05 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard06",
+ out: ["art-run-test-target-data-shard06.zip"],
+ srcs: ["*06-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 06 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard07",
+ out: ["art-run-test-target-data-shard07.zip"],
+ srcs: ["*07-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 07 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard08",
+ out: ["art-run-test-target-data-shard08.zip"],
+ srcs: ["*08-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 08 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard09",
+ out: ["art-run-test-target-data-shard09.zip"],
+ srcs: ["*09-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 09 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard10",
+ out: ["art-run-test-target-data-shard10.zip"],
+ srcs: ["*10-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 10 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard11",
+ out: ["art-run-test-target-data-shard11.zip"],
+ srcs: ["*11-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 11 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard12",
+ out: ["art-run-test-target-data-shard12.zip"],
+ srcs: ["*12-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 12 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard13",
+ out: ["art-run-test-target-data-shard13.zip"],
+ srcs: ["*13-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 13 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard14",
+ out: ["art-run-test-target-data-shard14.zip"],
+ srcs: ["*14-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 14 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard15",
+ out: ["art-run-test-target-data-shard15.zip"],
+ srcs: ["*15-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 15 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard16",
+ out: ["art-run-test-target-data-shard16.zip"],
+ srcs: ["*16-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 16 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard17",
+ out: ["art-run-test-target-data-shard17.zip"],
+ srcs: ["*17-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 17 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard18",
+ out: ["art-run-test-target-data-shard18.zip"],
+ srcs: ["*18-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 18 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard19",
+ out: ["art-run-test-target-data-shard19.zip"],
+ srcs: ["*19-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 19 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard20",
+ out: ["art-run-test-target-data-shard20.zip"],
+ srcs: ["*20-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 20 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard21",
+ out: ["art-run-test-target-data-shard21.zip"],
+ srcs: ["*21-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 21 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard22",
+ out: ["art-run-test-target-data-shard22.zip"],
+ srcs: ["*22-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 22 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard23",
+ out: ["art-run-test-target-data-shard23.zip"],
+ srcs: ["*23-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 23 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard24",
+ out: ["art-run-test-target-data-shard24.zip"],
+ srcs: ["*24-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 24 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard25",
+ out: ["art-run-test-target-data-shard25.zip"],
+ srcs: ["*25-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 25 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard26",
+ out: ["art-run-test-target-data-shard26.zip"],
+ srcs: ["*26-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 26 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard27",
+ out: ["art-run-test-target-data-shard27.zip"],
+ srcs: ["*27-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 27 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard28",
+ out: ["art-run-test-target-data-shard28.zip"],
+ srcs: ["*28-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 28 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard29",
+ out: ["art-run-test-target-data-shard29.zip"],
+ srcs: ["*29-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 29 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard30",
+ out: ["art-run-test-target-data-shard30.zip"],
+ srcs: ["*30-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 30 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard31",
+ out: ["art-run-test-target-data-shard31.zip"],
+ srcs: ["*31-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 31 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard32",
+ out: ["art-run-test-target-data-shard32.zip"],
+ srcs: ["*32-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 32 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard33",
+ out: ["art-run-test-target-data-shard33.zip"],
+ srcs: ["*33-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 33 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard34",
+ out: ["art-run-test-target-data-shard34.zip"],
+ srcs: ["*34-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 34 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard35",
+ out: ["art-run-test-target-data-shard35.zip"],
+ srcs: ["*35-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 35 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard36",
+ out: ["art-run-test-target-data-shard36.zip"],
+ srcs: ["*36-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 36 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard37",
+ out: ["art-run-test-target-data-shard37.zip"],
+ srcs: ["*37-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 37 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard38",
+ out: ["art-run-test-target-data-shard38.zip"],
+ srcs: ["*38-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 38 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard39",
+ out: ["art-run-test-target-data-shard39.zip"],
+ srcs: ["*39-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 39 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard40",
+ out: ["art-run-test-target-data-shard40.zip"],
+ srcs: ["*40-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 40 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard41",
+ out: ["art-run-test-target-data-shard41.zip"],
+ srcs: ["*41-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 41 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard42",
+ out: ["art-run-test-target-data-shard42.zip"],
+ srcs: ["*42-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 42 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard43",
+ out: ["art-run-test-target-data-shard43.zip"],
+ srcs: ["*43-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 43 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard44",
+ out: ["art-run-test-target-data-shard44.zip"],
+ srcs: ["*44-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 44 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard45",
+ out: ["art-run-test-target-data-shard45.zip"],
+ srcs: ["*45-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 45 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard46",
+ out: ["art-run-test-target-data-shard46.zip"],
+ srcs: ["*46-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 46 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard47",
+ out: ["art-run-test-target-data-shard47.zip"],
+ srcs: ["*47-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 47 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard48",
+ out: ["art-run-test-target-data-shard48.zip"],
+ srcs: ["*48-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 48 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard49",
+ out: ["art-run-test-target-data-shard49.zip"],
+ srcs: ["*49-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 49 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard50",
+ out: ["art-run-test-target-data-shard50.zip"],
+ srcs: ["*50-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 50 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard51",
+ out: ["art-run-test-target-data-shard51.zip"],
+ srcs: ["*51-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 51 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard52",
+ out: ["art-run-test-target-data-shard52.zip"],
+ srcs: ["*52-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 52 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard53",
+ out: ["art-run-test-target-data-shard53.zip"],
+ srcs: ["*53-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 53 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard54",
+ out: ["art-run-test-target-data-shard54.zip"],
+ srcs: ["*54-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 54 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard55",
+ out: ["art-run-test-target-data-shard55.zip"],
+ srcs: ["*55-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 55 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard56",
+ out: ["art-run-test-target-data-shard56.zip"],
+ srcs: ["*56-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 56 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard57",
+ out: ["art-run-test-target-data-shard57.zip"],
+ srcs: ["*57-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 57 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard58",
+ out: ["art-run-test-target-data-shard58.zip"],
+ srcs: ["*58-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 58 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard59",
+ out: ["art-run-test-target-data-shard59.zip"],
+ srcs: ["*59-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 59 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard60",
+ out: ["art-run-test-target-data-shard60.zip"],
+ srcs: ["*60-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 60 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard61",
+ out: ["art-run-test-target-data-shard61.zip"],
+ srcs: ["*61-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 61 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard62",
+ out: ["art-run-test-target-data-shard62.zip"],
+ srcs: ["*62-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 62 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard63",
+ out: ["art-run-test-target-data-shard63.zip"],
+ srcs: ["*63-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 63 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard64",
+ out: ["art-run-test-target-data-shard64.zip"],
+ srcs: ["*64-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 64 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard65",
+ out: ["art-run-test-target-data-shard65.zip"],
+ srcs: ["*65-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 65 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard66",
+ out: ["art-run-test-target-data-shard66.zip"],
+ srcs: ["*66-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 66 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard67",
+ out: ["art-run-test-target-data-shard67.zip"],
+ srcs: ["*67-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 67 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard68",
+ out: ["art-run-test-target-data-shard68.zip"],
+ srcs: ["*68-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 68 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard69",
+ out: ["art-run-test-target-data-shard69.zip"],
+ srcs: ["*69-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 69 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard70",
+ out: ["art-run-test-target-data-shard70.zip"],
+ srcs: ["*70-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 70 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard71",
+ out: ["art-run-test-target-data-shard71.zip"],
+ srcs: ["*71-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 71 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard72",
+ out: ["art-run-test-target-data-shard72.zip"],
+ srcs: ["*72-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 72 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard73",
+ out: ["art-run-test-target-data-shard73.zip"],
+ srcs: ["*73-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 73 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard74",
+ out: ["art-run-test-target-data-shard74.zip"],
+ srcs: ["*74-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 74 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard75",
+ out: ["art-run-test-target-data-shard75.zip"],
+ srcs: ["*75-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 75 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard76",
+ out: ["art-run-test-target-data-shard76.zip"],
+ srcs: ["*76-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 76 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard77",
+ out: ["art-run-test-target-data-shard77.zip"],
+ srcs: ["*77-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 77 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard78",
+ out: ["art-run-test-target-data-shard78.zip"],
+ srcs: ["*78-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 78 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard79",
+ out: ["art-run-test-target-data-shard79.zip"],
+ srcs: ["*79-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 79 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard80",
+ out: ["art-run-test-target-data-shard80.zip"],
+ srcs: ["*80-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 80 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard81",
+ out: ["art-run-test-target-data-shard81.zip"],
+ srcs: ["*81-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 81 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard82",
+ out: ["art-run-test-target-data-shard82.zip"],
+ srcs: ["*82-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 82 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard83",
+ out: ["art-run-test-target-data-shard83.zip"],
+ srcs: ["*83-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 83 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard84",
+ out: ["art-run-test-target-data-shard84.zip"],
+ srcs: ["*84-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 84 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard85",
+ out: ["art-run-test-target-data-shard85.zip"],
+ srcs: ["*85-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 85 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard86",
+ out: ["art-run-test-target-data-shard86.zip"],
+ srcs: ["*86-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 86 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard87",
+ out: ["art-run-test-target-data-shard87.zip"],
+ srcs: ["*87-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 87 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard88",
+ out: ["art-run-test-target-data-shard88.zip"],
+ srcs: ["*88-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 88 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard89",
+ out: ["art-run-test-target-data-shard89.zip"],
+ srcs: ["*89-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 89 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard90",
+ out: ["art-run-test-target-data-shard90.zip"],
+ srcs: ["*90-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 90 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard91",
+ out: ["art-run-test-target-data-shard91.zip"],
+ srcs: ["*91-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 91 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard92",
+ out: ["art-run-test-target-data-shard92.zip"],
+ srcs: ["*92-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 92 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard93",
+ out: ["art-run-test-target-data-shard93.zip"],
+ srcs: ["*93-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 93 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard94",
+ out: ["art-run-test-target-data-shard94.zip"],
+ srcs: ["*94-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 94 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard95",
+ out: ["art-run-test-target-data-shard95.zip"],
+ srcs: ["*95-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 95 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard96",
+ out: ["art-run-test-target-data-shard96.zip"],
+ srcs: ["*96-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 96 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard97",
+ out: ["art-run-test-target-data-shard97.zip"],
+ srcs: ["*97-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 97 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard98",
+ out: ["art-run-test-target-data-shard98.zip"],
+ srcs: ["*98-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 98 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-shard99",
+ out: ["art-run-test-target-data-shard99.zip"],
+ srcs: ["*99-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode target --shard 99 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-target-data-merged",
+ out: ["art-run-test-target-data-merged.zip"],
+ srcs: [
+ ":art-run-test-target-data-shard00",
+ ":art-run-test-target-data-shard01",
+ ":art-run-test-target-data-shard02",
+ ":art-run-test-target-data-shard03",
+ ":art-run-test-target-data-shard04",
+ ":art-run-test-target-data-shard05",
+ ":art-run-test-target-data-shard06",
+ ":art-run-test-target-data-shard07",
+ ":art-run-test-target-data-shard08",
+ ":art-run-test-target-data-shard09",
+ ":art-run-test-target-data-shard10",
+ ":art-run-test-target-data-shard11",
+ ":art-run-test-target-data-shard12",
+ ":art-run-test-target-data-shard13",
+ ":art-run-test-target-data-shard14",
+ ":art-run-test-target-data-shard15",
+ ":art-run-test-target-data-shard16",
+ ":art-run-test-target-data-shard17",
+ ":art-run-test-target-data-shard18",
+ ":art-run-test-target-data-shard19",
+ ":art-run-test-target-data-shard20",
+ ":art-run-test-target-data-shard21",
+ ":art-run-test-target-data-shard22",
+ ":art-run-test-target-data-shard23",
+ ":art-run-test-target-data-shard24",
+ ":art-run-test-target-data-shard25",
+ ":art-run-test-target-data-shard26",
+ ":art-run-test-target-data-shard27",
+ ":art-run-test-target-data-shard28",
+ ":art-run-test-target-data-shard29",
+ ":art-run-test-target-data-shard30",
+ ":art-run-test-target-data-shard31",
+ ":art-run-test-target-data-shard32",
+ ":art-run-test-target-data-shard33",
+ ":art-run-test-target-data-shard34",
+ ":art-run-test-target-data-shard35",
+ ":art-run-test-target-data-shard36",
+ ":art-run-test-target-data-shard37",
+ ":art-run-test-target-data-shard38",
+ ":art-run-test-target-data-shard39",
+ ":art-run-test-target-data-shard40",
+ ":art-run-test-target-data-shard41",
+ ":art-run-test-target-data-shard42",
+ ":art-run-test-target-data-shard43",
+ ":art-run-test-target-data-shard44",
+ ":art-run-test-target-data-shard45",
+ ":art-run-test-target-data-shard46",
+ ":art-run-test-target-data-shard47",
+ ":art-run-test-target-data-shard48",
+ ":art-run-test-target-data-shard49",
+ ":art-run-test-target-data-shard50",
+ ":art-run-test-target-data-shard51",
+ ":art-run-test-target-data-shard52",
+ ":art-run-test-target-data-shard53",
+ ":art-run-test-target-data-shard54",
+ ":art-run-test-target-data-shard55",
+ ":art-run-test-target-data-shard56",
+ ":art-run-test-target-data-shard57",
+ ":art-run-test-target-data-shard58",
+ ":art-run-test-target-data-shard59",
+ ":art-run-test-target-data-shard60",
+ ":art-run-test-target-data-shard61",
+ ":art-run-test-target-data-shard62",
+ ":art-run-test-target-data-shard63",
+ ":art-run-test-target-data-shard64",
+ ":art-run-test-target-data-shard65",
+ ":art-run-test-target-data-shard66",
+ ":art-run-test-target-data-shard67",
+ ":art-run-test-target-data-shard68",
+ ":art-run-test-target-data-shard69",
+ ":art-run-test-target-data-shard70",
+ ":art-run-test-target-data-shard71",
+ ":art-run-test-target-data-shard72",
+ ":art-run-test-target-data-shard73",
+ ":art-run-test-target-data-shard74",
+ ":art-run-test-target-data-shard75",
+ ":art-run-test-target-data-shard76",
+ ":art-run-test-target-data-shard77",
+ ":art-run-test-target-data-shard78",
+ ":art-run-test-target-data-shard79",
+ ":art-run-test-target-data-shard80",
+ ":art-run-test-target-data-shard81",
+ ":art-run-test-target-data-shard82",
+ ":art-run-test-target-data-shard83",
+ ":art-run-test-target-data-shard84",
+ ":art-run-test-target-data-shard85",
+ ":art-run-test-target-data-shard86",
+ ":art-run-test-target-data-shard87",
+ ":art-run-test-target-data-shard88",
+ ":art-run-test-target-data-shard89",
+ ":art-run-test-target-data-shard90",
+ ":art-run-test-target-data-shard91",
+ ":art-run-test-target-data-shard92",
+ ":art-run-test-target-data-shard93",
+ ":art-run-test-target-data-shard94",
+ ":art-run-test-target-data-shard95",
+ ":art-run-test-target-data-shard96",
+ ":art-run-test-target-data-shard97",
+ ":art-run-test-target-data-shard98",
+ ":art-run-test-target-data-shard99",
+ ],
+ tools: ["merge_zips"],
+ cmd: "$(location merge_zips) $(out) $(in)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard00",
+ out: ["art-run-test-jvm-data-shard00.zip"],
+ srcs: ["*00-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 00 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard01",
+ out: ["art-run-test-jvm-data-shard01.zip"],
+ srcs: ["*01-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 01 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard02",
+ out: ["art-run-test-jvm-data-shard02.zip"],
+ srcs: ["*02-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 02 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard03",
+ out: ["art-run-test-jvm-data-shard03.zip"],
+ srcs: ["*03-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 03 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard04",
+ out: ["art-run-test-jvm-data-shard04.zip"],
+ srcs: ["*04-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 04 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard05",
+ out: ["art-run-test-jvm-data-shard05.zip"],
+ srcs: ["*05-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 05 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard06",
+ out: ["art-run-test-jvm-data-shard06.zip"],
+ srcs: ["*06-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 06 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard07",
+ out: ["art-run-test-jvm-data-shard07.zip"],
+ srcs: ["*07-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 07 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard08",
+ out: ["art-run-test-jvm-data-shard08.zip"],
+ srcs: ["*08-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 08 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard09",
+ out: ["art-run-test-jvm-data-shard09.zip"],
+ srcs: ["*09-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 09 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard10",
+ out: ["art-run-test-jvm-data-shard10.zip"],
+ srcs: ["*10-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 10 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard11",
+ out: ["art-run-test-jvm-data-shard11.zip"],
+ srcs: ["*11-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 11 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard12",
+ out: ["art-run-test-jvm-data-shard12.zip"],
+ srcs: ["*12-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 12 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard13",
+ out: ["art-run-test-jvm-data-shard13.zip"],
+ srcs: ["*13-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 13 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard14",
+ out: ["art-run-test-jvm-data-shard14.zip"],
+ srcs: ["*14-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 14 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard15",
+ out: ["art-run-test-jvm-data-shard15.zip"],
+ srcs: ["*15-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 15 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard16",
+ out: ["art-run-test-jvm-data-shard16.zip"],
+ srcs: ["*16-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 16 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard17",
+ out: ["art-run-test-jvm-data-shard17.zip"],
+ srcs: ["*17-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 17 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard18",
+ out: ["art-run-test-jvm-data-shard18.zip"],
+ srcs: ["*18-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 18 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard19",
+ out: ["art-run-test-jvm-data-shard19.zip"],
+ srcs: ["*19-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 19 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard20",
+ out: ["art-run-test-jvm-data-shard20.zip"],
+ srcs: ["*20-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 20 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard21",
+ out: ["art-run-test-jvm-data-shard21.zip"],
+ srcs: ["*21-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 21 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard22",
+ out: ["art-run-test-jvm-data-shard22.zip"],
+ srcs: ["*22-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 22 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard23",
+ out: ["art-run-test-jvm-data-shard23.zip"],
+ srcs: ["*23-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 23 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard24",
+ out: ["art-run-test-jvm-data-shard24.zip"],
+ srcs: ["*24-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 24 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard25",
+ out: ["art-run-test-jvm-data-shard25.zip"],
+ srcs: ["*25-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 25 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard26",
+ out: ["art-run-test-jvm-data-shard26.zip"],
+ srcs: ["*26-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 26 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard27",
+ out: ["art-run-test-jvm-data-shard27.zip"],
+ srcs: ["*27-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 27 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard28",
+ out: ["art-run-test-jvm-data-shard28.zip"],
+ srcs: ["*28-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 28 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard29",
+ out: ["art-run-test-jvm-data-shard29.zip"],
+ srcs: ["*29-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 29 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard30",
+ out: ["art-run-test-jvm-data-shard30.zip"],
+ srcs: ["*30-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 30 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard31",
+ out: ["art-run-test-jvm-data-shard31.zip"],
+ srcs: ["*31-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 31 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard32",
+ out: ["art-run-test-jvm-data-shard32.zip"],
+ srcs: ["*32-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 32 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard33",
+ out: ["art-run-test-jvm-data-shard33.zip"],
+ srcs: ["*33-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 33 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard34",
+ out: ["art-run-test-jvm-data-shard34.zip"],
+ srcs: ["*34-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 34 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard35",
+ out: ["art-run-test-jvm-data-shard35.zip"],
+ srcs: ["*35-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 35 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard36",
+ out: ["art-run-test-jvm-data-shard36.zip"],
+ srcs: ["*36-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 36 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard37",
+ out: ["art-run-test-jvm-data-shard37.zip"],
+ srcs: ["*37-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 37 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard38",
+ out: ["art-run-test-jvm-data-shard38.zip"],
+ srcs: ["*38-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 38 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard39",
+ out: ["art-run-test-jvm-data-shard39.zip"],
+ srcs: ["*39-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 39 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard40",
+ out: ["art-run-test-jvm-data-shard40.zip"],
+ srcs: ["*40-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 40 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard41",
+ out: ["art-run-test-jvm-data-shard41.zip"],
+ srcs: ["*41-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 41 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard42",
+ out: ["art-run-test-jvm-data-shard42.zip"],
+ srcs: ["*42-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 42 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard43",
+ out: ["art-run-test-jvm-data-shard43.zip"],
+ srcs: ["*43-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 43 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard44",
+ out: ["art-run-test-jvm-data-shard44.zip"],
+ srcs: ["*44-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 44 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard45",
+ out: ["art-run-test-jvm-data-shard45.zip"],
+ srcs: ["*45-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 45 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard46",
+ out: ["art-run-test-jvm-data-shard46.zip"],
+ srcs: ["*46-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 46 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard47",
+ out: ["art-run-test-jvm-data-shard47.zip"],
+ srcs: ["*47-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 47 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard48",
+ out: ["art-run-test-jvm-data-shard48.zip"],
+ srcs: ["*48-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 48 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard49",
+ out: ["art-run-test-jvm-data-shard49.zip"],
+ srcs: ["*49-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 49 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard50",
+ out: ["art-run-test-jvm-data-shard50.zip"],
+ srcs: ["*50-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 50 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard51",
+ out: ["art-run-test-jvm-data-shard51.zip"],
+ srcs: ["*51-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 51 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard52",
+ out: ["art-run-test-jvm-data-shard52.zip"],
+ srcs: ["*52-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 52 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard53",
+ out: ["art-run-test-jvm-data-shard53.zip"],
+ srcs: ["*53-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 53 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard54",
+ out: ["art-run-test-jvm-data-shard54.zip"],
+ srcs: ["*54-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 54 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard55",
+ out: ["art-run-test-jvm-data-shard55.zip"],
+ srcs: ["*55-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 55 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard56",
+ out: ["art-run-test-jvm-data-shard56.zip"],
+ srcs: ["*56-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 56 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard57",
+ out: ["art-run-test-jvm-data-shard57.zip"],
+ srcs: ["*57-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 57 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard58",
+ out: ["art-run-test-jvm-data-shard58.zip"],
+ srcs: ["*58-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 58 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard59",
+ out: ["art-run-test-jvm-data-shard59.zip"],
+ srcs: ["*59-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 59 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard60",
+ out: ["art-run-test-jvm-data-shard60.zip"],
+ srcs: ["*60-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 60 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard61",
+ out: ["art-run-test-jvm-data-shard61.zip"],
+ srcs: ["*61-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 61 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard62",
+ out: ["art-run-test-jvm-data-shard62.zip"],
+ srcs: ["*62-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 62 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard63",
+ out: ["art-run-test-jvm-data-shard63.zip"],
+ srcs: ["*63-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 63 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard64",
+ out: ["art-run-test-jvm-data-shard64.zip"],
+ srcs: ["*64-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 64 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard65",
+ out: ["art-run-test-jvm-data-shard65.zip"],
+ srcs: ["*65-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 65 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard66",
+ out: ["art-run-test-jvm-data-shard66.zip"],
+ srcs: ["*66-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 66 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard67",
+ out: ["art-run-test-jvm-data-shard67.zip"],
+ srcs: ["*67-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 67 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard68",
+ out: ["art-run-test-jvm-data-shard68.zip"],
+ srcs: ["*68-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 68 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard69",
+ out: ["art-run-test-jvm-data-shard69.zip"],
+ srcs: ["*69-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 69 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard70",
+ out: ["art-run-test-jvm-data-shard70.zip"],
+ srcs: ["*70-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 70 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard71",
+ out: ["art-run-test-jvm-data-shard71.zip"],
+ srcs: ["*71-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 71 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard72",
+ out: ["art-run-test-jvm-data-shard72.zip"],
+ srcs: ["*72-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 72 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard73",
+ out: ["art-run-test-jvm-data-shard73.zip"],
+ srcs: ["*73-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 73 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard74",
+ out: ["art-run-test-jvm-data-shard74.zip"],
+ srcs: ["*74-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 74 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard75",
+ out: ["art-run-test-jvm-data-shard75.zip"],
+ srcs: ["*75-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 75 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard76",
+ out: ["art-run-test-jvm-data-shard76.zip"],
+ srcs: ["*76-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 76 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard77",
+ out: ["art-run-test-jvm-data-shard77.zip"],
+ srcs: ["*77-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 77 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard78",
+ out: ["art-run-test-jvm-data-shard78.zip"],
+ srcs: ["*78-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 78 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard79",
+ out: ["art-run-test-jvm-data-shard79.zip"],
+ srcs: ["*79-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 79 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard80",
+ out: ["art-run-test-jvm-data-shard80.zip"],
+ srcs: ["*80-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 80 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard81",
+ out: ["art-run-test-jvm-data-shard81.zip"],
+ srcs: ["*81-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 81 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard82",
+ out: ["art-run-test-jvm-data-shard82.zip"],
+ srcs: ["*82-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 82 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard83",
+ out: ["art-run-test-jvm-data-shard83.zip"],
+ srcs: ["*83-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 83 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard84",
+ out: ["art-run-test-jvm-data-shard84.zip"],
+ srcs: ["*84-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 84 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard85",
+ out: ["art-run-test-jvm-data-shard85.zip"],
+ srcs: ["*85-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 85 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard86",
+ out: ["art-run-test-jvm-data-shard86.zip"],
+ srcs: ["*86-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 86 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard87",
+ out: ["art-run-test-jvm-data-shard87.zip"],
+ srcs: ["*87-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 87 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard88",
+ out: ["art-run-test-jvm-data-shard88.zip"],
+ srcs: ["*88-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 88 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard89",
+ out: ["art-run-test-jvm-data-shard89.zip"],
+ srcs: ["*89-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 89 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard90",
+ out: ["art-run-test-jvm-data-shard90.zip"],
+ srcs: ["*90-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 90 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard91",
+ out: ["art-run-test-jvm-data-shard91.zip"],
+ srcs: ["*91-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 91 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard92",
+ out: ["art-run-test-jvm-data-shard92.zip"],
+ srcs: ["*92-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 92 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard93",
+ out: ["art-run-test-jvm-data-shard93.zip"],
+ srcs: ["*93-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 93 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard94",
+ out: ["art-run-test-jvm-data-shard94.zip"],
+ srcs: ["*94-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 94 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard95",
+ out: ["art-run-test-jvm-data-shard95.zip"],
+ srcs: ["*95-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 95 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard96",
+ out: ["art-run-test-jvm-data-shard96.zip"],
+ srcs: ["*96-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 96 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard97",
+ out: ["art-run-test-jvm-data-shard97.zip"],
+ srcs: ["*97-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 97 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard98",
+ out: ["art-run-test-jvm-data-shard98.zip"],
+ srcs: ["*98-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 98 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-shard99",
+ out: ["art-run-test-jvm-data-shard99.zip"],
+ srcs: ["*99-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode jvm --shard 99 " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+}
+
+genrule {
+ name: "art-run-test-jvm-data-merged",
+ out: ["art-run-test-jvm-data-merged.zip"],
+ srcs: [
+ ":art-run-test-jvm-data-shard00",
+ ":art-run-test-jvm-data-shard01",
+ ":art-run-test-jvm-data-shard02",
+ ":art-run-test-jvm-data-shard03",
+ ":art-run-test-jvm-data-shard04",
+ ":art-run-test-jvm-data-shard05",
+ ":art-run-test-jvm-data-shard06",
+ ":art-run-test-jvm-data-shard07",
+ ":art-run-test-jvm-data-shard08",
+ ":art-run-test-jvm-data-shard09",
+ ":art-run-test-jvm-data-shard10",
+ ":art-run-test-jvm-data-shard11",
+ ":art-run-test-jvm-data-shard12",
+ ":art-run-test-jvm-data-shard13",
+ ":art-run-test-jvm-data-shard14",
+ ":art-run-test-jvm-data-shard15",
+ ":art-run-test-jvm-data-shard16",
+ ":art-run-test-jvm-data-shard17",
+ ":art-run-test-jvm-data-shard18",
+ ":art-run-test-jvm-data-shard19",
+ ":art-run-test-jvm-data-shard20",
+ ":art-run-test-jvm-data-shard21",
+ ":art-run-test-jvm-data-shard22",
+ ":art-run-test-jvm-data-shard23",
+ ":art-run-test-jvm-data-shard24",
+ ":art-run-test-jvm-data-shard25",
+ ":art-run-test-jvm-data-shard26",
+ ":art-run-test-jvm-data-shard27",
+ ":art-run-test-jvm-data-shard28",
+ ":art-run-test-jvm-data-shard29",
+ ":art-run-test-jvm-data-shard30",
+ ":art-run-test-jvm-data-shard31",
+ ":art-run-test-jvm-data-shard32",
+ ":art-run-test-jvm-data-shard33",
+ ":art-run-test-jvm-data-shard34",
+ ":art-run-test-jvm-data-shard35",
+ ":art-run-test-jvm-data-shard36",
+ ":art-run-test-jvm-data-shard37",
+ ":art-run-test-jvm-data-shard38",
+ ":art-run-test-jvm-data-shard39",
+ ":art-run-test-jvm-data-shard40",
+ ":art-run-test-jvm-data-shard41",
+ ":art-run-test-jvm-data-shard42",
+ ":art-run-test-jvm-data-shard43",
+ ":art-run-test-jvm-data-shard44",
+ ":art-run-test-jvm-data-shard45",
+ ":art-run-test-jvm-data-shard46",
+ ":art-run-test-jvm-data-shard47",
+ ":art-run-test-jvm-data-shard48",
+ ":art-run-test-jvm-data-shard49",
+ ":art-run-test-jvm-data-shard50",
+ ":art-run-test-jvm-data-shard51",
+ ":art-run-test-jvm-data-shard52",
+ ":art-run-test-jvm-data-shard53",
+ ":art-run-test-jvm-data-shard54",
+ ":art-run-test-jvm-data-shard55",
+ ":art-run-test-jvm-data-shard56",
+ ":art-run-test-jvm-data-shard57",
+ ":art-run-test-jvm-data-shard58",
+ ":art-run-test-jvm-data-shard59",
+ ":art-run-test-jvm-data-shard60",
+ ":art-run-test-jvm-data-shard61",
+ ":art-run-test-jvm-data-shard62",
+ ":art-run-test-jvm-data-shard63",
+ ":art-run-test-jvm-data-shard64",
+ ":art-run-test-jvm-data-shard65",
+ ":art-run-test-jvm-data-shard66",
+ ":art-run-test-jvm-data-shard67",
+ ":art-run-test-jvm-data-shard68",
+ ":art-run-test-jvm-data-shard69",
+ ":art-run-test-jvm-data-shard70",
+ ":art-run-test-jvm-data-shard71",
+ ":art-run-test-jvm-data-shard72",
+ ":art-run-test-jvm-data-shard73",
+ ":art-run-test-jvm-data-shard74",
+ ":art-run-test-jvm-data-shard75",
+ ":art-run-test-jvm-data-shard76",
+ ":art-run-test-jvm-data-shard77",
+ ":art-run-test-jvm-data-shard78",
+ ":art-run-test-jvm-data-shard79",
+ ":art-run-test-jvm-data-shard80",
+ ":art-run-test-jvm-data-shard81",
+ ":art-run-test-jvm-data-shard82",
+ ":art-run-test-jvm-data-shard83",
+ ":art-run-test-jvm-data-shard84",
+ ":art-run-test-jvm-data-shard85",
+ ":art-run-test-jvm-data-shard86",
+ ":art-run-test-jvm-data-shard87",
+ ":art-run-test-jvm-data-shard88",
+ ":art-run-test-jvm-data-shard89",
+ ":art-run-test-jvm-data-shard90",
+ ":art-run-test-jvm-data-shard91",
+ ":art-run-test-jvm-data-shard92",
+ ":art-run-test-jvm-data-shard93",
+ ":art-run-test-jvm-data-shard94",
+ ":art-run-test-jvm-data-shard95",
+ ":art-run-test-jvm-data-shard96",
+ ":art-run-test-jvm-data-shard97",
+ ":art-run-test-jvm-data-shard98",
+ ":art-run-test-jvm-data-shard99",
+ ],
+ tools: ["merge_zips"],
+ cmd: "$(location merge_zips) $(out) $(in)",
+}
diff --git a/test/Android.run-test.bp.py b/test/Android.run-test.bp.py
new file mode 100755
index 0000000000..f029097f33
--- /dev/null
+++ b/test/Android.run-test.bp.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2021 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+""" This script generates the Android.run-test.bp build file"""
+
+import os, textwrap
+
+def main():
+ test_dir = os.path.dirname(__file__)
+ with open(os.path.join(test_dir, "Android.run-test.bp"), mode="wt") as f:
+ f.write(textwrap.dedent("""
+ // This file was generated by {}
+ // It is not necessary to regenerate it when tests are added/removed/modified.
+ """.format(os.path.basename(__file__))).lstrip())
+ for mode in ["host", "target", "jvm"]:
+ names = []
+ # Group the tests into shards based on the last two digits of the test number.
+ # This keeps the number of generated genrules low so we don't overwhelm soong,
+ # but it still allows iterating on single test without recompiling all tests.
+ for shard in ["{:02}".format(i) for i in range(100)]:
+ name = "art-run-test-{mode}-data-shard{shard}".format(mode=mode, shard=shard)
+ names.append(name)
+ f.write(textwrap.dedent("""
+ genrule {{
+ name: "{name}",
+ out: ["{name}.zip"],
+ srcs: ["*{shard}-*/**/*"],
+ defaults: ["art-run-test-data-defaults"],
+ cmd: "$(location run-test-build.py) --out $(out) --mode {mode} --shard {shard} " +
+ "--bootclasspath $(location :art-run-test-bootclasspath)",
+ }}
+ """.format(name=name, mode=mode, shard=shard)))
+ srcs = ("\n"+" "*8).join('":{}",'.format(n) for n in names)
+ f.write(textwrap.dedent("""
+ genrule {{
+ name: "art-run-test-{mode}-data-merged",
+ out: ["art-run-test-{mode}-data-merged.zip"],
+ srcs: [
+ {srcs}
+ ],
+ tools: ["merge_zips"],
+ cmd: "$(location merge_zips) $(out) $(in)",
+ }}
+ """).format(mode=mode, srcs=srcs))
+
+if __name__ == "__main__":
+ main()
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index 8b5aae484c..ea305ced91 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -48,10 +48,14 @@ ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += libnativebridgetest-target libnativebri
# Also need signal_dumper.
ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += signal_dumper-target
+ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += art-run-test-target-data
+
# All tests require the host executables. The tests also depend on the core images, but on
# specific version depending on the compiler.
ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
$(ART_HOST_EXECUTABLES) \
+ art-run-test-host-data \
+ art-run-test-jvm-data \
$(HOST_OUT_EXECUTABLES)/hprof-conv \
$(HOST_OUT_EXECUTABLES)/signal_dumper \
$(ART_TEST_LIST_host_$(ART_HOST_ARCH)_libtiagent) \
diff --git a/test/etc/default-build b/test/etc/default-build
index 0bd6f0d65b..0dfb1e0e53 100755
--- a/test/etc/default-build
+++ b/test/etc/default-build
@@ -283,10 +283,14 @@ function make_dex() {
local dex_output=${name}.dex
local d8_local_flags=""
if [[ "$USE_DESUGAR" = "true" ]]; then
- local boot_class_path_list=$($ANDROID_BUILD_TOP/art/tools/bootjars.sh --$BUILD_MODE --core --path)
- for boot_class_path_element in $boot_class_path_list; do
- d8_local_flags="$d8_local_flags --lib $boot_class_path_element"
- done
+ if [[ ! -z ${ART_TEST_RUN_TEST_BOOTCLASSPATH} ]]; then
+ d8_local_flags="$d8_local_flags --lib ${ART_TEST_RUN_TEST_BOOTCLASSPATH}"
+ else
+ local boot_class_path_list=$($ANDROID_BUILD_TOP/art/tools/bootjars.sh --$BUILD_MODE --core --path)
+ for boot_class_path_element in $boot_class_path_list; do
+ d8_local_flags="$d8_local_flags --lib $boot_class_path_element"
+ done
+ fi
else
d8_local_flags="$d8_local_flags --no-desugaring"
fi
diff --git a/test/run-test b/test/run-test
index fb1b3c960e..50b09a7439 100755
--- a/test/run-test
+++ b/test/run-test
@@ -39,38 +39,11 @@ if [ -z "$TMPDIR" ]; then
else
tmp_dir="${TMPDIR}/${test_dir}"
fi
-build_path="${tmp_dir}-build"
checker="${progdir}/../tools/checker/checker.py"
export JAVA="java"
export JAVAC="javac -g -Xlint:-options -source 1.8 -target 1.8"
export RUN="${progdir}/etc/run-test-jar"
export DEX_LOCATION=/data/run-test/${test_dir}
-export NEED_DEX="true"
-export USE_D8="true"
-export USE_DESUGAR="true"
-export SMALI_ARGS=""
-
-# If d8 was not set by the environment variable, assume it is in the path.
-if [ -z "$D8" ]; then
- export D8="d8"
-fi
-
-# If dx was not set by the environment variable, assume it is in the path.
-if [ -z "$DX" ]; then
- export DX="d8-compat-dx"
-fi
-
-export DEXMERGER="$D8"
-
-# If jasmin was not set by the environment variable, assume it is in the path.
-if [ -z "$JASMIN" ]; then
- export JASMIN="jasmin"
-fi
-
-# If smali was not set by the environment variable, assume it is in the path.
-if [ -z "$SMALI" ]; then
- export SMALI="smali"
-fi
# ANDROID_BUILD_TOP is not set in a build environment.
if [ -z "$ANDROID_BUILD_TOP" ]; then
@@ -90,54 +63,19 @@ if [ -z "$ANDROID_HOST_OUT" ]; then
fi
host_lib_root=${ANDROID_HOST_OUT}
-
-# Allow changing DESUGAR script to something else, or to disable it with DESUGAR=false.
-if [ -z "$DESUGAR" ]; then
- export DESUGAR="$ANDROID_BUILD_TOP/art/tools/desugar.sh"
-fi
-
-# Zipalign is not on the PATH in some configs, auto-detect it.
-if [ -z "$ZIPALIGN" ]; then
- if which zipalign >/dev/null; then
- ZIPALIGN="zipalign";
- else
- # TODO: Add a dependency for zipalign in Android.run-test.mk
- # once it doesn't depend on libandroidfw (b/35246701)
- case "$OSTYPE" in
- darwin*) ZIPALIGN="$ANDROID_BUILD_TOP/prebuilts/sdk/tools/darwin/bin/zipalign" ;;
- linux*) ZIPALIGN="$ANDROID_BUILD_TOP/prebuilts/sdk/tools/linux/bin/zipalign" ;;
- *) echo "Can't find zipalign: unknown: $OSTYPE" >&2;;
- esac
- fi
-fi
-export ZIPALIGN
-
-# If hiddenapi was not set by the environment variable, assume it is in
-# ANDROID_HOST_OUT.
-if [ -z "$HIDDENAPI" ]; then
- export HIDDENAPI="${ANDROID_HOST_OUT}/bin/hiddenapi"
-fi
-
-export SOONG_ZIP="$ANDROID_BUILD_TOP/prebuilts/build-tools/linux-x86/bin/soong_zip"
-
chroot=
-
info="info.txt"
-build="build"
run="run"
expected_stdout="expected-stdout.txt"
expected_stderr="expected-stderr.txt"
check_cmd="check"
test_stdout="test-stdout.txt"
test_stderr="test-stderr.txt"
-build_stdout="build-stdout.txt"
-build_stderr="build-stderr.txt"
cfg_output="graph.cfg"
strace_output="strace-output.txt"
lib="libartd.so"
testlib="arttestd"
run_args=(--quiet)
-build_args=""
quiet="no"
debuggable="no"
@@ -150,8 +88,6 @@ debug_mode="no"
relocate="no"
runtime="art"
usage="no"
-build_only="no"
-skip_build="no"
suffix64=""
trace="false"
trace_stream="false"
@@ -206,7 +142,6 @@ while true; do
DEX_LOCATION="$tmp_dir"
runtime="jvm"
prebuild_mode="no"
- NEED_DEX="false"
run_args+=(--jvm)
shift
elif [ "x$1" = "x-O" ]; then
@@ -281,11 +216,6 @@ while true; do
option="$1"
run_args+=(-Xcompiler-option "$option")
shift
- elif [ "x$1" = "x--build-option" ]; then
- shift
- option="$1"
- build_args="${build_args} $option"
- shift
elif [ "x$1" = "x--runtime-option" ]; then
shift
option="$1"
@@ -397,21 +327,6 @@ while true; do
run_args+=(--dev)
dev_mode="yes"
shift
- elif [ "x$1" = "x--build-only" ]; then
- build_only="yes"
- shift
- elif [ "x$1" = "x--skip-build" ]; then
- skip_build="yes"
- shift
- elif [ "x$1" = "x--build-path" ]; then
- shift
- build_path=$1
- if [ "x$build_path" = "x" ]; then
- echo "$0 missing argument to --build-path" 1>&2
- usage="yes"
- break
- fi
- shift
elif [ "x$1" = "x--temp-path" ]; then
shift
tmp_dir=$1
@@ -808,7 +723,6 @@ if [ "$usage" = "yes" ]; then
echo " Runtime Options:"
echo " -O Run non-debug rather than debug build (off by default)."
echo " -Xcompiler-option Pass an option to the compiler."
- echo " --build-option Pass an option to the build script."
echo " --runtime-option Pass an option to the runtime."
echo " --compact-dex-level Specify a compact dex level to the compiler."
echo " --debug Wait for the default debugger to attach."
@@ -828,9 +742,6 @@ if [ "$usage" = "yes" ]; then
echo " Use the given binary as gdbserver."
echo " --gdb-arg Pass an option to gdb or gdbserver."
echo " --gdb-dex2oat-args Pass options separated by ';' to lldb for dex2oat."
- echo " --build-only Build test files only (off by default)."
- echo " --skip-build Assume that test files are already built (off by default)."
- echo " --build-path [path] Location where to store or expect the build files."
echo " --temp-path [path] Location where to execute the tests."
echo " --interpreter Enable interpreter only mode (off by default)."
echo " --jit Enable jit (off by default)."
@@ -919,37 +830,6 @@ for td_file in "$td_info" "$td_expected_stdout" "$td_expected_stderr"; do
fi
done
-if [ "$skip_build" = "no" ]; then
- echo "${test_dir}: building..." 1>&2
-
- rm -rf "$build_path"
- cp -LRp "$test_dir" "$build_path"
- cd "$build_path"
-
- if [ '!' -r "$build" ]; then
- cp "${progdir}/etc/default-build" build
- else
- cp "${progdir}/etc/default-build" .
- fi
-
- if [ '!' -r "$run" ]; then
- cp "${progdir}/etc/default-run" run
- else
- cp "${progdir}/etc/default-run" .
- fi
-
- if [ '!' -r "$check_cmd" ]; then
- cp "${progdir}/etc/default-check" check
- else
- cp "${progdir}/etc/default-check" .
- fi
-
- chmod 755 "$build"
- chmod 755 "$run"
- chmod 755 "$check_cmd"
-fi
-cd "$build_path"
-
export TEST_NAME=`basename ${test_dir}`
# Tests named '<number>-checker-*' will also have their CFGs verified with
@@ -986,154 +866,84 @@ if ! ulimit -f ${file_ulimit}; then
err_echo "ulimit file size setting failed"
fi
-# Tell the build script which mode (target, host, jvm) we are building for
-# to determine the bootclasspath at build time.
+# Extract run-test data from the zip file.
+rm -rf "$tmp_dir"
+mkdir -p "$tmp_dir/.unzipped"
+cd "$tmp_dir"
if [[ "$target_mode" == "yes" ]]; then
- build_args="$build_args --target"
-else
- if [[ $runtime == "jvm" ]]; then
- build_args="$build_args --jvm"
- else
- build_args="$build_args --host"
- fi
-fi
-
-if [[ "$dev_mode" == "yes" ]]; then
- build_args="$build_args --dev"
-fi
-
-# Build needed files, and copy them to the directory that will run the tests.
-if [ "$skip_build" = "yes" ]; then
- # Assume the directory already contains all the needed files.
- # Load the exit code, since builds can intentionally fail.
- build_exit=`cat ./build_exit_code`
-elif [ "$dev_mode" = "yes" ]; then
- "./${build}" $build_args
- build_exit="$?"
- echo "build exit status: $build_exit" 1>&2
- echo "$build_exit" > ./build_exit_code
+ zip_file="${ANDROID_HOST_OUT}/etc/art/art-run-test-target-data.zip"
+ zip_entry="target/${TEST_NAME}"
+elif [[ $runtime == "jvm" ]]; then
+ zip_file="${ANDROID_HOST_OUT}/etc/art/art-run-test-jvm-data.zip"
+ zip_entry="jvm/${TEST_NAME}"
else
- "./${build}" $build_args >"$build_stdout" 2>"$build_stderr"
- build_exit="$?"
- echo "$build_exit" > ./build_exit_code
+ zip_file="${ANDROID_HOST_OUT}/etc/art/art-run-test-host-data.zip"
+ zip_entry="host/${TEST_NAME}"
fi
-rm -rf "$tmp_dir"
-cp -LRp "$build_path" "$tmp_dir"
-cd "$tmp_dir"
+unzip -q "${zip_file}" "${zip_entry}/*" -d "$tmp_dir/.unzipped"
+mv "$tmp_dir"/.unzipped/${zip_entry}/* "$tmp_dir"
good="no"
-good_build="yes"
good_run="yes"
export TEST_RUNTIME="${runtime}"
if [ "$dev_mode" = "yes" ]; then
- if [ "$build_exit" = '0' ]; then
- echo "${test_dir}: running..." 1>&2
- "./${run}" "${run_args[@]}" "$@"
- run_exit="$?"
+ echo "${test_dir}: running..." 1>&2
+ "./${run}" "${run_args[@]}" "$@"
+ run_exit="$?"
- if [ "$run_exit" = "0" ]; then
- if [ "$run_checker" = "yes" ]; then
- if [ "$target_mode" = "yes" ]; then
- adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
- fi
- "$checker" $checker_args "$cfg_output" "$tmp_dir" 2>&1
- checker_exit="$?"
- if [ "$checker_exit" = "0" ]; then
- good="yes"
- fi
- err_echo "checker exit status: $checker_exit"
- else
+ if [ "$run_exit" = "0" ]; then
+ if [ "$run_checker" = "yes" ]; then
+ if [ "$target_mode" = "yes" ]; then
+ adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
+ fi
+ "$checker" $checker_args "$cfg_output" "$tmp_dir" 2>&1
+ checker_exit="$?"
+ if [ "$checker_exit" = "0" ]; then
good="yes"
fi
+ err_echo "checker exit status: $checker_exit"
+ else
+ good="yes"
fi
- echo "run exit status: $run_exit" 1>&2
fi
+ echo "run exit status: $run_exit" 1>&2
elif [ "$update_mode" = "yes" ]; then
- if [ "$build_exit" = '0' ]; then
- echo "${test_dir}: running..." 1>&2
- "./${run}" "${run_args[@]}" "$@" >"$test_stdout" 2>"$test_stderr"
- if [ "$run_checker" = "yes" ]; then
- if [ "$target_mode" = "yes" ]; then
- adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
- fi
- "$checker" -q $checker_args "$cfg_output" "$tmp_dir" >>"$test_stdout" 2>>"$test_stderr"
- fi
- sed -e 's/[[:cntrl:]]$//g' <"$test_stdout" >"${td_expected_stdout}"
- sed -e 's/[[:cntrl:]]$//g' <"$test_stderr" >"${td_expected_stderr}"
- good="yes"
- else
- err_echo "#################### build standard output"
- cat "$build_stdout" 1>&${real_stderr}
- err_echo "####################"
- err_echo "#################### build standard error"
- cat "$build_stderr" 1>&${real_stderr}
- err_echo "####################"
- err_echo "build exit status: $build_exit"
+ echo "${test_dir}: running..." 1>&2
+ "./${run}" "${run_args[@]}" "$@" >"$test_stdout" 2>"$test_stderr"
+ if [ "$run_checker" = "yes" ]; then
+ if [ "$target_mode" = "yes" ]; then
+ adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
+ fi
+ "$checker" -q $checker_args "$cfg_output" "$tmp_dir" >>"$test_stdout" 2>>"$test_stderr"
fi
-elif [ "$build_only" = "yes" ]; then
+ sed -e 's/[[:cntrl:]]$//g' <"$test_stdout" >"${td_expected_stdout}"
+ sed -e 's/[[:cntrl:]]$//g' <"$test_stderr" >"${td_expected_stderr}"
good="yes"
- if [ "$build_exit" '!=' '0' ]; then
- cp "$build_stdout" "$test_stdout"
- diff --strip-trailing-cr -q "$expected_stdout" "$test_stdout" >/dev/null
- if [ "$?" '!=' "0" ]; then
- good="no"
- err_echo "BUILD FAILED For ${TEST_NAME}" \
- "(the build's standard output does not match the expected standard output)"
- fi
- cp "$build_stderr" "$test_stderr"
- diff --strip-trailing-cr -q "$expected_stderr" "$test_stderr" >/dev/null
- if [ "$?" '!=' "0" ]; then
- good="no"
- err_echo "BUILD FAILED For ${TEST_NAME}" \
- "(the build's standard error does not match the expected standard error)"
- fi
- echo "build exit status: $build_exit" >>"$test_stderr"
- fi
- # Clean up extraneous files that are not used by tests.
- find $tmp_dir -mindepth 1 \
- ! -regex ".*/\(.*jar\|$test_stdout\|$expected_stdout|$test_stderr\|$expected_stderr\)" \
- | xargs rm -rf
- exit 0
else
- if [ "$build_exit" = '0' ]; then
- echo "${test_dir}: running..." 1>&2
- "./${run}" "${run_args[@]}" "$@" >"$test_stdout" 2>"$test_stderr"
- run_exit="$?"
- if [ "$run_exit" != "0" ]; then
- err_echo "run exit status: $run_exit"
+ echo "${test_dir}: running..." 1>&2
+ "./${run}" "${run_args[@]}" "$@" >"$test_stdout" 2>"$test_stderr"
+ run_exit="$?"
+ if [ "$run_exit" != "0" ]; then
+ err_echo "run exit status: $run_exit"
+ good_run="no"
+ elif [ "$run_checker" = "yes" ]; then
+ if [ "$target_mode" = "yes" ]; then
+ adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
+ fi
+ "$checker" -q $checker_args "$cfg_output" "$tmp_dir" >>"$test_stdout" 2>>"$test_stderr"
+ checker_exit="$?"
+ if [ "$checker_exit" != "0" ]; then
+ err_echo "checker exit status: $checker_exit"
good_run="no"
- elif [ "$run_checker" = "yes" ]; then
- if [ "$target_mode" = "yes" ]; then
- adb pull "$chroot/$cfg_output_dir/$cfg_output" &> /dev/null
- fi
- "$checker" -q $checker_args "$cfg_output" "$tmp_dir" >>"$test_stdout" 2>>"$test_stderr"
- checker_exit="$?"
- if [ "$checker_exit" != "0" ]; then
- err_echo "checker exit status: $checker_exit"
- good_run="no"
- else
- good_run="yes"
- fi
else
good_run="yes"
fi
else
- good_build="no"
- cp "$build_stdout" "$test_stdout"
- cp "$build_stderr" "$test_stderr"
- echo "Failed to build in tmpdir=${tmp_dir} from oldwd=${oldwd} and cwd=`pwd`" \
- >> "$test_stderr"
- echo "Non-canonical tmpdir was ${noncanonical_tmp_dir}" >> "$test_stderr"
- echo "Args: ${args}" >> "$test_stderr"
- echo "build exit status: $build_exit" >> "$test_stderr"
- max_name_length=$(getconf NAME_MAX ${tmp_dir})
- echo "Max filename (NAME_MAX): ${max_name_length}" >> "$test_stderr"
- max_path_length=$(getconf PATH_MAX ${tmp_dir})
- echo "Max pathlength (PATH_MAX): ${max_path_length}" >> "$test_stderr"
+ good_run="yes"
fi
./$check_cmd "$expected_stdout" "$test_stdout" "$expected_stderr" "$test_stderr"
if [ "$?" = "0" ]; then
- if [ "$good_build" = "no" -o "$good_run" = "yes" ]; then
+ if [ "$good_run" = "yes" ]; then
# test_stdout == expected_stdout && test_stderr == expected_stderr
good="yes"
echo "${test_dir}: succeeded!" 1>&2
@@ -1225,10 +1035,6 @@ fi
# Clean up test files.
if [ "$always_clean" = "yes" -o "$good" = "yes" ] && [ "$never_clean" = "no" ]; then
cd "$oldwd"
- # Clean up build files only if we created them.
- if [ "$skip_build" = "no" ]; then
- rm -rf "$build_path"
- fi
rm -rf "$tmp_dir"
if [ "$target_mode" = "yes" -a "$build_exit" = "0" ]; then
adb shell rm -rf $chroot_dex_location
diff --git a/test/run-test-build.py b/test/run-test-build.py
new file mode 100755
index 0000000000..fb3579b05b
--- /dev/null
+++ b/test/run-test-build.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2021 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+This scripts compiles Java files which are needed to execute run-tests.
+It is intended to be used only from soong genrule.
+"""
+
+import argparse, os, tempfile, shutil, subprocess, glob, textwrap, re, json, concurrent.futures
+
+ZIP = "prebuilts/build-tools/linux-x86/bin/soong_zip"
+KNOWNFAILURES = json.loads(open(os.path.join("art", "test", "knownfailures.json"), "rt").read())
+
+def build(args, tmp, mode, srcdir):
+ join = os.path.join
+ test = os.path.basename(srcdir)
+ dstdir = join(tmp, mode, test)
+
+ # Don't build tests that are disabled since they might not compile (e.g. on jvm).
+ def is_knownfailure(kf):
+ return test in kf.get("tests", []) and mode == kf.get("variant") and not kf.get("env_vars")
+ if any(is_knownfailure(kf) for kf in KNOWNFAILURES):
+ return None, 0 # (stdout, exitcode)
+
+ # Copy all source files to the temporary directory.
+ shutil.copytree(srcdir, dstdir)
+
+ # Copy the default scripts if the test does not have a custom ones.
+ for name in ["build", "run", "check"]:
+ src, dst = f"art/test/etc/default-{name}", join(dstdir, name)
+ if os.path.exists(dst):
+ shutil.copy2(src, dstdir) # Copy default script next to the custom script.
+ else:
+ shutil.copy2(src, dst) # Use just the default script.
+ os.chmod(dst, 0o755)
+ os.sync() # Ensure the chmod changes are applied and file descriptor is closed.
+
+ # Execute the build script.
+ build_top = os.getcwd()
+ java_home = os.environ.get("JAVA_HOME")
+ tools_dir = os.path.abspath(join(os.path.dirname(__file__), "../../../out/bin"))
+ env = {
+ "PATH": os.environ.get("PATH"),
+ "ANDROID_BUILD_TOP": build_top,
+ "ART_TEST_RUN_TEST_BOOTCLASSPATH": join(build_top, args.bootclasspath),
+ "TEST_NAME": test,
+ "SOONG_ZIP": join(build_top, "prebuilts/build-tools/linux-x86/bin/soong_zip"),
+ "ZIPALIGN": join(build_top, "prebuilts/build-tools/linux-x86/bin/zipalign"),
+ "JAVA": join(java_home, "bin/java"),
+ "JAVAC": join(java_home, "bin/javac") + " -g -Xlint:-options -source 1.8 -target 1.8",
+ "D8": join(tools_dir, "d8"),
+ "HIDDENAPI": join(tools_dir, "hiddenapi"),
+ "JASMIN": join(tools_dir, "jasmin"),
+ "SMALI": join(tools_dir, "smali"),
+ "NEED_DEX": {"host": "true", "target": "true", "jvm": "false"}[mode],
+ "USE_DESUGAR": "true",
+ }
+ proc = subprocess.run([join(dstdir, "build"), "--" + mode],
+ cwd=dstdir,
+ env=env,
+ encoding=os.sys.stdout.encoding,
+ stderr=subprocess.STDOUT,
+ stdout=subprocess.PIPE)
+ return proc.stdout, proc.returncode
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--out", help="Path of the generated ZIP file with the build data")
+ parser.add_argument('--mode', choices=['host', 'jvm', 'target'])
+ parser.add_argument("--shard", help="Identifies subset of tests to build (00..99)")
+ parser.add_argument("--bootclasspath", help="JAR files used for javac compilation")
+ args = parser.parse_args()
+
+ with tempfile.TemporaryDirectory(prefix=os.path.basename(__file__)) as tmp:
+ srcdirs = sorted(glob.glob(os.path.join("art", "test", "*")))
+ srcdirs = filter(lambda srcdir: re.match(".*/\d*{}-.*".format(args.shard), srcdir), srcdirs)
+ with concurrent.futures.ThreadPoolExecutor() as pool:
+ for stdout, exitcode in pool.map(lambda srcdir: build(args, tmp, args.mode, srcdir), srcdirs):
+ if stdout:
+ print(stdout.strip())
+ assert(exitcode == 0) # Build failed.
+
+ # Create the final zip file which contains the content of the temporary directory.
+ proc = subprocess.run([ZIP, "-o", args.out, "-C", tmp, "-D", tmp])
+ assert(proc.returncode == 0) # Zip failed.
+
+if __name__ == "__main__":
+ main()
diff --git a/test/testrunner/testrunner.py b/test/testrunner/testrunner.py
index 0e6f147a61..82ad0c820d 100755
--- a/test/testrunner/testrunner.py
+++ b/test/testrunner/testrunner.py
@@ -197,9 +197,6 @@ class ChildProcessTracker(object):
child_process_tracker = ChildProcessTracker()
-# Keep track of the already executed build scripts
-finished_build_script = {}
-
def setup_csv_result():
"""Set up the CSV output if required."""
global csv_writer
@@ -580,27 +577,9 @@ def run_tests(tests):
if address_size == '64':
options_test += ' --64'
- # Make it possible to split the test to two passes: build only and test only.
- # This is useful to avoid building identical files many times for the test combinations.
- # We can remove this once we move the build script fully to soong.
- global build_only
- global skip_build
- if (build_only or skip_build) and not is_test_disabled(test, variant_set):
- assert(env.ART_TEST_RUN_TEST_BUILD_PATH) # Persistent storage between the passes.
- build_path = os.path.join(env.ART_TEST_RUN_TEST_BUILD_PATH, test)
- if build_only and finished_build_script.setdefault(test, test_name) != test_name:
- return None # Different combination already build the needed files for this test.
- os.makedirs(build_path, exist_ok=True)
- if build_only:
- options_test += ' --build-only'
- if skip_build:
- options_test += ' --skip-build'
- else:
- build_path = tempfile.mkdtemp(dir=env.ART_HOST_TEST_DIR)
-
# b/36039166: Note that the path lengths must kept reasonably short.
temp_path = tempfile.mkdtemp(dir=env.ART_HOST_TEST_DIR)
- options_test = '--build-path {} --temp-path {} '.format(build_path, temp_path) + options_test
+ options_test = '--temp-path {} '.format(temp_path) + options_test
run_test_sh = env.ANDROID_BUILD_TOP + '/art/test/run-test'
command = ' '.join((run_test_sh, options_test, ' '.join(extra_arguments[target]), test))
@@ -1123,8 +1102,6 @@ def parse_option():
global with_agent
global zipapex_loc
global csv_result
- global build_only
- global skip_build
parser = argparse.ArgumentParser(description="Runs all or a subset of the ART test suite.")
parser.add_argument('-t', '--test', action='append', dest='tests', help='name(s) of the test(s)')
@@ -1167,10 +1144,6 @@ def parse_option():
This should be enclosed in single-quotes to allow for spaces. The option
will be split using shlex.split() prior to invoking run-test.
Example \"--run-test-option='--with-agent libtifast.so=MethodExit'\".""")
- global_group.add_argument('--build-only', action='store_true', dest='build_only',
- help="""Only execute the build commands in the run-test script""")
- global_group.add_argument('--skip-build', action='store_true', dest='skip_build',
- help="""Skip the builds command in the run-test script""")
global_group.add_argument('--with-agent', action='append', dest='with_agent',
help="""Pass an agent to be attached to the runtime""")
global_group.add_argument('--runtime-option', action='append', dest='runtime_option',
@@ -1245,8 +1218,6 @@ def parse_option():
with_agent = options['with_agent'];
run_test_option = sum(map(shlex.split, options['run_test_option']), [])
zipapex_loc = options['runtime_zipapex']
- build_only = options['build_only']
- skip_build = options['skip_build']
timeout = options['timeout']
if options['dex2oat_jobs']:
diff --git a/tools/javac-helper.sh b/tools/javac-helper.sh
index 0182025c1f..7e174b2232 100755
--- a/tools/javac-helper.sh
+++ b/tools/javac-helper.sh
@@ -79,6 +79,8 @@ if [[ $mode == jvm ]]; then
# For --mode=jvm:
# Do not prepend a -bootclasspath, which will use the default bootclasspath instead.
javac_args=()
+elif [[ ! -z ${ART_TEST_RUN_TEST_BOOTCLASSPATH} ]]; then
+ javac_args=(-bootclasspath "${ART_TEST_RUN_TEST_BOOTCLASSPATH}")
else
# For --mode=host or --mode=target, look up the correct -bootclasspath for libcore.
javac_bootclasspath=()