diff options
author | 2021-07-20 16:56:06 +0100 | |
---|---|---|
committer | 2021-10-05 10:53:06 +0000 | |
commit | 7cf6c58ed90d827dd9b85020219eced5d8c8ae78 (patch) | |
tree | a0da2d477a14055959e9cbcfa15e5673cc04f9ff | |
parent | d4e07aac5b8774545d848b2907664a01ae00568f (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.bp | 13 | ||||
-rwxr-xr-x | test/968-default-partial-compile-gen/util-src/generate_java.py | 1 | ||||
-rwxr-xr-x | test/971-iface-super/util-src/generate_java.py | 1 | ||||
-rw-r--r-- | test/Android.bp | 46 | ||||
-rw-r--r-- | test/Android.run-test.bp | 3029 | ||||
-rwxr-xr-x | test/Android.run-test.bp.py | 60 | ||||
-rw-r--r-- | test/Android.run-test.mk | 4 | ||||
-rwxr-xr-x | test/etc/default-build | 12 | ||||
-rwxr-xr-x | test/run-test | 300 | ||||
-rwxr-xr-x | test/run-test-build.py | 101 | ||||
-rwxr-xr-x | test/testrunner/testrunner.py | 31 | ||||
-rwxr-xr-x | tools/javac-helper.sh | 2 |
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=() |