• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (C) 2016 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17// ART gtests.
18
19package {
20    // See: http://go/android-license-faq
21    // A large-scale-change added 'default_applicable_licenses' to import
22    // all of the 'license_kinds' from "art_license"
23    // to get the below license kinds:
24    //   SPDX-license-identifier-Apache-2.0
25    default_applicable_licenses: ["art_license"],
26    default_team: "trendy_team_art_performance",
27}
28
29// Properties common to `art_test_defaults` and `art_standalone_test_defaults`.
30cc_defaults {
31    name: "art_test_common_defaults",
32    defaults: ["art_defaults"],
33
34    // Override flags from art_defaults:
35    cflags: [
36        // gmock.h has incorrect unused markers.
37        "-Wno-used-but-marked-unused",
38        // gtest.h compares signed and unsigned.
39        "-Wno-sign-compare",
40        // gtest.h includes cxxabi.h which fails on this check.
41        "-Wno-deprecated-dynamic-exception-spec",
42    ],
43
44    target: {
45        darwin: {
46            enabled: false,
47        },
48        // This has to be duplicated for android and host to make sure it
49        // comes after the -Wframe-larger-than warnings inserted by art.go
50        // target-specific properties
51        android: {
52            cflags: ["-Wno-frame-larger-than="],
53        },
54        host: {
55            cflags: [
56                "-Wno-frame-larger-than=",
57                "-fsanitize-address-use-after-return=never",
58                "-Wno-unused-command-line-argument",
59            ],
60        },
61    },
62}
63
64cc_defaults {
65    name: "art_test_defaults",
66    defaults: [
67        "art_test_common_defaults",
68    ],
69    host_supported: true,
70    target: {
71        // The following set of relative_install_paths installs the library in a
72        // location that will be available as java.library.path in run tests.
73        android_arm: {
74            relative_install_path: "art/arm",
75        },
76        android_arm64: {
77            relative_install_path: "art/arm64",
78        },
79        android_riscv64: {
80            relative_install_path: "art/riscv64",
81        },
82        android_x86: {
83            relative_install_path: "art/x86",
84        },
85        android_x86_64: {
86            relative_install_path: "art/x86_64",
87        },
88    },
89}
90
91// Variant of art_test_defaults for test libraries that installs them in a
92// location which will be added to the default namespace, and hence also the
93// com_android_art namespace. That allows them to have shared_libs
94// dependencies on all ART internal libraries.
95//
96// Currently this only works for run tests where run-test-jar sets
97// LD_LIBRARY_PATH and NATIVELOADER_DEFAULT_NAMESPACE_LIBS.
98art_cc_defaults {
99    name: "art_test_internal_library_defaults",
100    defaults: ["art_test_defaults"],
101    target: {
102        android_arm: {
103            relative_install_path: "com.android.art/lib",
104        },
105        android_arm64: {
106            relative_install_path: "com.android.art/lib64",
107        },
108        android_riscv64: {
109            relative_install_path: "com.android.art/lib64",
110        },
111        android_x86: {
112            relative_install_path: "com.android.art/lib",
113        },
114        android_x86_64: {
115            relative_install_path: "com.android.art/lib64",
116        },
117    },
118}
119
120// Test configuration template for standalone ART gtests on target (not bundled with the ART APEX).
121filegroup {
122    name: "art-gtests-target-standalone-template",
123    srcs: ["art-gtests-target-standalone-template.xml"],
124}
125
126// Test configuration template for standalone ART gtests on target (not bundled with the ART APEX)
127// which are part of CTS and MCTS.
128filegroup {
129    name: "art-gtests-target-standalone-cts-template",
130    srcs: ["art-gtests-target-standalone-cts-template.xml"],
131}
132
133// Test configuration template for standalone ART gtests on target (not bundled with the ART APEX)
134// which don't support multilib.
135filegroup {
136    name: "art-gtests-target-standalone-non-multilib-template",
137    srcs: ["art-gtests-target-standalone-non-multilib-template.xml"],
138}
139
140// Test configuration template for standalone ART gtests run with a boot image on target (not
141// bundled with the ART APEX).
142filegroup {
143    name: "art-gtests-target-standalone-with-boot-image-template",
144    srcs: ["art-gtests-target-standalone-with-boot-image-template.xml"],
145}
146
147// Version script for `art_standalone_test_defaults`.
148filegroup {
149    name: "art-standalone-test-version",
150    srcs: ["art-standalone-test-version.map"],
151}
152
153// Version script for `art_standalone_gtest_defaults`. In particular, it adds
154// libsigchain's libc.so interceptors.
155filegroup {
156    name: "art-standalone-gtest-version",
157    srcs: ["art-standalone-gtest-version.map"],
158}
159
160// When soong builds the tests in a sandbox, the targets of symlinks
161// must be declared as inputs to soong modules that use them, or else
162// it will be a dangling symlink in the sandbox.
163filegroup {
164    name: "test_build_symlink_targets",
165    srcs: [
166        "jvmti-common/*.java",
167        "1953-pop-frame/src/art/SuspendEvents.java",
168        "1953-pop-frame/src/art/Test1953.java",
169        "993-breakpoints/src/art/Test993.java",
170        "988-method-trace/src/art/Test988.java",
171        "988-method-trace/src/art/Test988Intrinsics.java",
172    ],
173    visibility: [
174        "//art/test:__subpackages__",
175    ],
176}
177
178cc_library_static {
179    name: "standalone_test_lib_check",
180    srcs: ["standalone_test_lib_check.cc"],
181    header_libs: ["art_libartbase_headers"],
182    static_libs: [
183        "libbase",
184        "libelf",
185        "libgmock",
186        "libgtest",
187    ],
188}
189
190// Defaults for tests that can run using atest against an ART APEX installed on
191// any supported platform. These tests can only depend on NDK libraries from
192// platform and exported module libraries. Any other libraries must be pushed
193// with the test or linked statically.
194art_cc_defaults {
195    name: "art_standalone_test_defaults",
196    defaults: [
197        "art_test_common_defaults",
198        "elfutils_transitive_defaults", // For libelf
199    ],
200    // Standalone ART gtests are only supported on device for now.
201    // TODO: Add support for host standalone ART gtests. Note that they should not differ much
202    // from the original ("non-standalone") host gtests, as the latter are not really bundled with
203    // the host ART APEX / artifacts (unlike their device counterparts); but as we plan to remove
204    // the ART gtests bundled with the ART APEX, we'll have to support the host case here
205    // eventually.
206    host_supported: false,
207    test_config_template: ":art-gtests-target-standalone-template",
208
209    // Support multilib variants (using different suffix per sub-architecture),
210    // which is needed on build targets with secondary architectures, as the
211    // CTS/MCTS/MTS/etc. test suite packaging logic may flatten all test artifacts
212    // into a single `testcases` directory. Also, there is CI testing that
213    // expects 64-bit multilib test suites to work for 32-bit devices
214    // (b/233550842).
215    compile_multilib: "both",
216    multilib: {
217        lib32: {
218            suffix: "32",
219        },
220        lib64: {
221            suffix: "64",
222        },
223    },
224
225    min_sdk_version: "31", // Same as the ART APEX.
226
227    // Link libc++ statically to avoid needing the system libc++.so, which may
228    // be incompatible. The linker exports symbols from an executable that are
229    // referenced in the .dynsym tables of shared object dependencies, so use a
230    // version script to restrict exports. The version script is needed for
231    // hiding symbols from libc++ (either libc++_static.a or vaguely-linked
232    // symbols in other object files) and from other libraries, such as libbase.
233    stl: "libc++_static",
234    version_script: ":art-standalone-test-version",
235
236    // Make standalone tests check their own NEEDED dependencies for disallowed
237    // libraries. Add standalone_test_lib_check and its dependencies, except
238    // libgtest which is expected to be added by the tests.
239    whole_static_libs: [
240        "libbase",
241        "libelf",
242        "libgmock",
243        "standalone_test_lib_check",
244    ],
245}
246
247// Properties common to `art_gtest_defaults` and `art_standalone_gtest_defaults`.
248art_cc_defaults {
249    name: "art_gtest_common_defaults",
250    // These really are gtests, but the gtest library comes from `libart(d)-gtest.so`.
251    gtest: false,
252
253    header_libs: [
254        "libnativeloader-headers",
255        // The full libnativehelper library has wrappers for the JNI APIs (e.g.
256        // `JNI_CreateJavaVM`) that are implemented in libart(d), so it
257        // shouldn't be linked into the tests where libart(d) is linked
258        // statically.
259        "libnativehelper_header_only",
260    ],
261    target: {
262        android: {
263            shared_libs: [
264                // Dependencies of `libart(d)`, that are not included in *static_defaults.
265                "libdl_android",
266                "libstatspull",
267                "libstatssocket",
268                "heapprofd_client_api",
269            ],
270        },
271        host: {
272            cflags: [
273                "-fsanitize-address-use-after-return=never",
274                "-Wno-unused-command-line-argument",
275            ],
276        },
277        linux: {
278            ldflags: [
279                // Allow jni_compiler_test to find Java_MyClassNatives_bar
280                // within itself using dlopen(NULL, ...).
281                // Mac OS linker doesn't understand --export-dynamic.
282                "-Wl,--export-dynamic",
283                "-Wl,-u,Java_MyClassNatives_bar",
284                "-Wl,-u,Java_MyClassNatives_sbar",
285            ],
286            cflags: [
287                // gtest issue
288                "-Wno-used-but-marked-unused",
289                "-Wno-deprecated",
290                "-Wno-missing-noreturn",
291            ],
292        },
293        // Library search path needed for running host tests in CI (from testcases directory).
294        linux_glibc_x86: {
295            ldflags: [
296                "-Wl,-rpath,$ORIGIN/../../art_common/out/host/linux-x86/lib",
297                "-Wl,--enable-new-dtags",
298            ],
299        },
300        linux_glibc_x86_64: {
301            ldflags: [
302                "-Wl,-rpath,$ORIGIN/../../art_common/out/host/linux-x86/lib64",
303                "-Wl,--enable-new-dtags",
304            ],
305        },
306    },
307    static_libs: [
308        "libartbase-testing",
309        // `libsigchain` must be static linked into gtests, otherwise some tests fail under
310        // ASAN. ASAN init uses sigaction, which makes `libsigchain.so` initialize earlier than
311        // required and breaks `environ` variable in gtest.
312        // `libsigchain` is not whole-static-linked into `libart(d)-gtest`, because hiding its
313        // symbols with `--exclude-libs` breaks art_standalone_sigchain_tests.
314        "libsigchain",
315    ],
316}
317
318art_cc_defaults {
319    name: "art_gtest_defaults",
320    defaults: [
321        "art_test_defaults",
322        "art_gtest_common_defaults",
323        "art_debug_defaults",
324    ],
325    test_suites: ["art-host-tests"],
326    test_options: {
327        test_suite_tag: ["art-host-gtest"],
328    },
329    static_libs: [
330        "libartd-gtest",
331    ],
332    // Reduce test executable size by disabling automatic export of static lib symbols.
333    // Don't use --exclude-libs=ALL, because it breaks tests under ASAN by hiding __asan* symbols.
334    ldflags: [
335        "-Wl,--exclude-libs=libartd-gtest.a",
336    ],
337}
338
339art_cc_defaults {
340    name: "art_standalone_gtest_defaults",
341    defaults: [
342        // Note: We don't include "art_debug_defaults" here, as standalone ART
343        // gtests link with the "non-d" versions of the libraries contained in
344        // the ART APEX, so that they can be used with all ART APEX flavors
345        // (including the Release ART APEX).
346        "art_standalone_test_defaults",
347        "art_gtest_common_defaults",
348    ],
349    test_suites: [
350        "general-tests",
351        "mts-art",
352    ],
353    // Support multilib variants (using different suffix per sub-architecture), which is needed on
354    // build targets with secondary architectures, as the MTS test suite packaging logic flattens
355    // all test artifacts into a single `testcases` directory.
356    compile_multilib: "both",
357    multilib: {
358        lib32: {
359            suffix: "32",
360        },
361        lib64: {
362            suffix: "64",
363        },
364    },
365    static_libs: [
366        // This dependency links the whole runtime statically into the test. Note that the boot
367        // classpath is not (normally) bundled with the test, so if the runtime is used to actually
368        // start a VM it may load the boot classpath from the device. Depending on the test
369        // configuration, that may not be in sync with the statically linked runtime.
370        "libart-gtest",
371    ],
372    version_script: ":art-standalone-gtest-version",
373}
374
375art_cc_defaults {
376    name: "libart-gtest-defaults",
377    defaults: [
378        "art_defaults",
379    ],
380    host_supported: true,
381    shared_libs: [
382        "liblog",
383    ],
384    static_libs: [
385        "libgtest_isolated",
386    ],
387    target: {
388        host: {
389            cflags: [
390                "-fsanitize-address-use-after-return=never",
391                "-Wno-unused-command-line-argument",
392            ],
393        },
394        android32: {
395            cflags: ["-DART_TARGET_NATIVETEST_DIR=/data/nativetest/art"],
396        },
397        android64: {
398            cflags: ["-DART_TARGET_NATIVETEST_DIR=/data/nativetest64/art"],
399        },
400        linux: {
401            cflags: [
402                // gtest issue
403                "-Wno-used-but-marked-unused",
404                "-Wno-deprecated",
405                "-Wno-missing-noreturn",
406            ],
407        },
408        darwin: {
409            enabled: false,
410        },
411    },
412}
413
414// Properties common to `libart-gtest` and `libartd-gtest`.
415art_cc_defaults {
416    name: "libart-gtest-common",
417    defaults: [
418        "art_defaults",
419    ],
420    host_supported: true,
421    srcs: [
422        "common/gtest_main.cc",
423    ],
424    whole_static_libs: [
425        "libgtest_isolated",
426    ],
427    shared_libs: [
428        "liblog",
429    ],
430    target: {
431        host: {
432            cflags: [
433                "-fsanitize-address-use-after-return=never",
434                "-Wno-unused-command-line-argument",
435            ],
436        },
437        darwin: {
438            enabled: false,
439        },
440    },
441}
442
443art_cc_library_static {
444    name: "libart-gtest",
445    defaults: [
446        "libart-gtest-common",
447    ],
448    whole_static_libs: [
449        "libart-compiler-gtest",
450        "libart-runtime-gtest",
451        "libartbase-art-gtest",
452    ],
453}
454
455art_cc_library_static {
456    name: "libartd-gtest",
457    defaults: [
458        "art_debug_defaults",
459        "libart-gtest-common",
460    ],
461    whole_static_libs: [
462        "libartd-compiler-gtest",
463        "libartd-runtime-gtest",
464        "libartbased-art-gtest",
465    ],
466}
467
468// ART run-tests.
469
470// Test configuration template for ART run-tests on target expected to run
471// successfully, and as such tagged as part of TradeFed's `art-target-run-test`
472// test suite via the `test-suite-tag`.
473filegroup {
474    name: "art-run-test-target-template",
475    srcs: [
476        "art-run-test-target-template.xml",
477    ],
478}
479
480// Same as `art-run-test-target-template`, but with a longer timeout.
481filegroup {
482    name: "art-run-test-target-slow-template",
483    srcs: [
484        "art-run-test-target-slow-template.xml",
485    ],
486}
487
488// Same as `art-run-test-target-template`, but contains additional
489// options to also make the test part of CTS and MCTS.
490filegroup {
491    name: "art-run-test-target-cts-template",
492    srcs: [
493        "art-run-test-target-cts-template.xml",
494    ],
495}
496
497// Test configuration template for ART run-tests on target expected to run
498// successfully, and as such *not* tagged as part of TradeFed's
499// `art-target-run-test` test suite via the `test-suite-tag`. This is as
500// temporary measure, while we add proper support for all ART (target) run-tests
501// to TradeFed (b/147818031).
502filegroup {
503    name: "art-run-test-target-no-test-suite-tag-template",
504    srcs: [
505        "art-run-test-target-no-test-suite-tag-template.xml",
506    ],
507}
508
509java_defaults {
510    name: "art-run-test-defaults",
511
512    // Compile against the "core" bootclasspath, not the "default" one (current
513    // platform) -- use the same settings as Libcore tests (see e.g. the
514    // definition of module `core-tests` in libcore/JavaLibrary.bp).
515    //
516    // Note: The legacy way to build ART run-tests uses the
517    // `javac_with_bootclasspath` function defined in `test/etc/default-build`.
518    // See also `tools/javac-helper.sh`.
519    sdk_version: "none",
520    system_modules: "core-all-system-modules",
521
522    // Some ART run-tests contain constructs which break ErrorProne checks;
523    // disable `errorprone` builds.
524    errorprone: {
525        enabled: false,
526    },
527    test_suites: [
528        "general-tests",
529    ],
530    host_required: [
531        "art-run-test-checker",
532    ],
533    min_sdk_version: "31",
534
535    compile_data: [
536        ":test_build_symlink_targets",
537    ],
538}
539
540art_cc_defaults {
541    name: "libnativebridgetest-defaults",
542    defaults: ["art_test_defaults"],
543    header_libs: ["libnativebridge-headers"],
544    srcs: ["115-native-bridge/nativebridge.cc"],
545}
546
547art_cc_test_library {
548    name: "libnativebridgetest",
549    shared_libs: ["libart"],
550    defaults: [
551        "libnativebridgetest-defaults",
552    ],
553}
554
555art_cc_test_library {
556    name: "libnativebridgetestd",
557    shared_libs: ["libartd"],
558    defaults: [
559        "libnativebridgetest-defaults",
560        "art_debug_defaults",
561    ],
562}
563
564// ART JVMTI run-tests.
565
566cc_defaults {
567    name: "libartagent-defaults",
568    defaults: ["art_test_internal_library_defaults"],
569    shared_libs: [
570        "libbase",
571        "liblog",
572        "libnativehelper",
573    ],
574}
575
576art_cc_test_library {
577    name: "libartagent",
578    srcs: ["900-hello-plugin/load_unload.cc"],
579    defaults: ["libartagent-defaults"],
580    shared_libs: [
581        "libart",
582        "libdexfile",
583        "libprofile",
584        "libartbase",
585    ],
586}
587
588art_cc_test_library {
589    name: "libartagentd",
590    srcs: ["900-hello-plugin/load_unload.cc"],
591    defaults: [
592        "art_debug_defaults",
593        "libartagent-defaults",
594    ],
595    shared_libs: [
596        "libartd",
597        "libdexfiled",
598        "libprofiled",
599        "libartbased",
600    ],
601}
602
603art_cc_defaults {
604    name: "libtiagent-base-defaults",
605    defaults: ["art_test_internal_library_defaults"],
606    srcs: [
607        // These are the ART-independent parts.
608        "ti-agent/agent_common.cc",
609        "ti-agent/agent_startup.cc",
610        "ti-agent/jni_binder.cc",
611        "ti-agent/jvmti_helper.cc",
612        "ti-agent/test_env.cc",
613        "ti-agent/breakpoint_helper.cc",
614        "ti-agent/common_helper.cc",
615        "ti-agent/early_return_helper.cc",
616        "ti-agent/frame_pop_helper.cc",
617        "ti-agent/locals_helper.cc",
618        "ti-agent/monitors_helper.cc",
619        "ti-agent/redefinition_helper.cc",
620        "ti-agent/suspension_helper.cc",
621        "ti-agent/suspend_event_helper.cc",
622        "ti-agent/stack_trace_helper.cc",
623        "ti-agent/threads_helper.cc",
624        "ti-agent/trace_helper.cc",
625        "ti-agent/exceptions_helper.cc",
626        // This is the list of non-special OnLoad things and excludes BCI and anything that depends
627        // on ART internals.
628        "903-hello-tagging/tagging.cc",
629        "904-object-allocation/tracking.cc",
630        "905-object-free/tracking_free.cc",
631        "906-iterate-heap/iterate_heap.cc",
632        "907-get-loaded-classes/get_loaded_classes.cc",
633        "908-gc-start-finish/gc_callbacks.cc",
634        "910-methods/methods.cc",
635        "911-get-stack-trace/stack_trace.cc",
636        "912-classes/classes.cc",
637        "913-heaps/heaps.cc",
638        "918-fields/fields.cc",
639        "920-objects/objects.cc",
640        "922-properties/properties.cc",
641        "923-monitors/monitors.cc",
642        "924-threads/threads.cc",
643        "925-threadgroups/threadgroups.cc",
644        "927-timers/timers.cc",
645        "928-jni-table/jni_table.cc",
646        "929-search/search.cc",
647        "931-agent-thread/agent_thread.cc",
648        "933-misc-events/misc_events.cc",
649        "945-obsolete-native/obsolete_native.cc",
650        "983-source-transform-verify/source_transform.cc",
651        "984-obsolete-invoke/obsolete_invoke.cc",
652        "986-native-method-bind/native_bind.cc",
653        "987-agent-bind/agent_bind.cc",
654        "988-method-trace/trace_fib.cc",
655        "989-method-trace-throw/method_trace.cc",
656        "991-field-trace-2/field_trace.cc",
657        "992-source-data/source_file.cc",
658        "993-breakpoints/breakpoints.cc",
659        "993-breakpoints-non-debuggable/onload.cc",
660        "996-breakpoint-obsolete/obsolete_breakpoints.cc",
661        "1900-track-alloc/alloc.cc",
662        "1901-get-bytecodes/bytecodes.cc",
663        "1905-suspend-native/native_suspend.cc",
664        "1908-suspend-native-resume-self/native_suspend_resume.cc",
665        "1909-per-agent-tls/agent_tls.cc",
666        "1914-get-local-instance/local_instance.cc",
667        "1919-vminit-thread-start-timing/vminit.cc",
668        "1920-suspend-native-monitor/native_suspend_monitor.cc",
669        "1921-suspend-native-recursive-monitor/native_suspend_recursive_monitor.cc",
670        "1922-owned-monitors-info/owned_monitors.cc",
671        "1924-frame-pop-toggle/frame_pop_toggle.cc",
672        "1926-missed-frame-pop/frame_pop_missed.cc",
673        "1927-exception-event/exception_event.cc",
674        "1930-monitor-info/monitor.cc",
675        "1932-monitor-events-misc/monitor_misc.cc",
676        "1934-jvmti-signal-thread/signal_threads.cc",
677        "1939-proxy-frames/local_instance.cc",
678        "1940-ddms-ext/ddm_ext.cc",
679        "1941-dispose-stress/dispose_stress.cc",
680        "1942-suspend-raw-monitor-exit/native_suspend_monitor.cc",
681        "1943-suspend-raw-monitor-wait/native_suspend_monitor.cc",
682        "1946-list-descriptors/descriptors.cc",
683        "1950-unprepared-transform/unprepared_transform.cc",
684        "1951-monitor-enter-no-suspend/raw_monitor.cc",
685        "1953-pop-frame/pop_frame.cc",
686        "1957-error-ext/lasterror.cc",
687        // TODO Renumber
688        "1962-multi-thread-events/multi_thread_events.cc",
689        "1963-add-to-dex-classloader-in-memory/add_to_loader.cc",
690        "1968-force-early-return/force_early_return.cc",
691        "1969-force-early-return-void/force_early_return_void.cc",
692        "1970-force-early-return-long/force_early_return_long.cc",
693        "1974-resize-array/resize_array.cc",
694        "1975-hello-structural-transformation/structural_transform.cc",
695        "1976-hello-structural-static-methods/structural_transform_methods.cc",
696        "2005-pause-all-redefine-multithreaded/pause-all.cc",
697        "2009-structural-local-ref/local-ref.cc",
698        "2035-structural-native-method/structural-native.cc",
699        "2243-single-step-default/single_step_helper.cc",
700    ],
701    // Use NDK-compatible headers for ctstiagent.
702    header_libs: [
703        "libopenjdkjvmti_headers",
704    ],
705    local_include_dirs: ["ti-agent"],
706}
707
708art_cc_defaults {
709    name: "libtiagent-defaults",
710    defaults: [
711        "libtiagent-base-defaults",
712        "libartagent-defaults",
713    ],
714    srcs: [
715        // This is to get the IsInterpreted native method.
716        "common/stack_inspect.cc",
717        "common/runtime_state.cc",
718        "ti-agent/common_load.cc",
719        // This includes the remaining test functions. We should try to refactor things to
720        // make this list smaller.
721        "901-hello-ti-agent/basics.cc",
722        "909-attach-agent/attach.cc",
723        "912-classes/classes_art.cc",
724        "936-search-onload/search_onload.cc",
725        "980-redefine-object/redef_object.cc",
726        "983-source-transform-verify/source_transform_art.cc",
727        "993-breakpoints-non-debuggable/native_attach_agent.cc",
728        // "1952-pop-frame-jit/pop_frame.cc",
729        "1959-redefine-object-instrument/fake_redef_object.cc",
730        "1960-obsolete-jit-multithread-native/native_say_hi.cc",
731        "1964-add-to-dex-classloader-file/add_to_loader.cc",
732        "2012-structural-redefinition-failures-jni-id/set-jni-id-used.cc",
733        "2031-zygote-compiled-frame-deopt/native-wait.cc",
734        "2038-hiddenapi-jvmti-ext/hiddenapi_ext.cc",
735    ],
736    static_libs: [
737        "libz",
738        "slicer_no_rtti",
739    ],
740}
741
742art_cc_test_library {
743    name: "libtiagent",
744    defaults: ["libtiagent-defaults"],
745    shared_libs: [
746        "libart",
747        "libdexfile#impl",
748        "libprofile",
749        "libartbase",
750    ],
751}
752
753art_cc_test_library {
754    name: "libtiagentd",
755    defaults: [
756        "art_debug_defaults",
757        "libtiagent-defaults",
758    ],
759    shared_libs: [
760        "libartd",
761        "libdexfiled#impl",
762        "libprofiled",
763        "libartbased",
764    ],
765}
766
767cc_library_static {
768    name: "libctstiagent",
769    defaults: ["libtiagent-base-defaults"],
770
771    // TODO(b/187288515): Providing this as a prebuilt introduces an issue with
772    // sdk_version propagation. Temporarily use the source library instead,
773    // which means we need to override the logic inherited from art_defaults and
774    // art_test_internal_library_defaults that disables sources when not
775    // building ART from sources.
776    enabled: true,
777
778    visibility: [
779        "//cts/hostsidetests/jvmti:__subpackages__",
780    ],
781    host_supported: false,
782    srcs: [
783        "983-source-transform-verify/source_transform_slicer.cc",
784    ],
785    whole_static_libs: [
786        "slicer_ndk_no_rtti",
787    ],
788    static_libs: [
789        "libbase_ndk",
790    ],
791    shared_libs: [
792        "libz", // for slicer (using adler32).
793    ],
794    sdk_version: "current",
795    stl: "c++_static",
796    header_libs: ["jni_headers"],
797    export_include_dirs: ["ti-agent"],
798}
799
800art_cc_defaults {
801    name: "libtistress-srcs",
802    defaults: ["libartagent-defaults"],
803    srcs: [
804        "ti-stress/stress.cc",
805    ],
806    header_libs: ["libopenjdkjvmti_headers"],
807}
808
809art_cc_defaults {
810    name: "libtistress-defaults",
811    defaults: ["libtistress-srcs"],
812    shared_libs: [
813        "slicer_no_rtti",
814        "libz", // for slicer (using adler32).
815    ],
816}
817
818art_cc_test_library {
819    name: "libtistress",
820    defaults: ["libtistress-defaults"],
821    shared_libs: [
822        "libartbase",
823        "libz",
824    ],
825}
826
827art_cc_test_library {
828    name: "libtistressd",
829    defaults: [
830        "art_debug_defaults",
831        "libtistress-defaults",
832    ],
833    shared_libs: [
834        "libartbased",
835        "libz",
836    ],
837}
838
839art_cc_defaults {
840    name: "libtistress-shared-defaults",
841    defaults: [
842        "libtistress-srcs",
843    ],
844    static_libs: ["slicer_no_rtti"],
845}
846
847art_cc_test_library {
848    name: "libtistresss",
849    defaults: ["libtistress-shared-defaults"],
850    shared_libs: [
851        "libartbase",
852        "libz",
853    ],
854}
855
856art_cc_test_library {
857    name: "libtistressds",
858    defaults: [
859        "libtistress-shared-defaults",
860    ],
861    shared_libs: [
862        "libartbased",
863        "libz",
864    ],
865}
866
867cc_defaults {
868    name: "libarttest-defaults",
869    defaults: ["art_test_internal_library_defaults"],
870    srcs: [
871        "004-JniTest/jni_test.cc",
872        "004-ReferenceMap/stack_walk_refmap_jni.cc",
873        "004-SignalTest/signaltest.cc",
874        "004-StackWalk/stack_walk_jni.cc",
875        "004-ThreadStress/thread_stress.cc",
876        "004-UnsafeTest/unsafe_test.cc",
877        "044-proxy/native_proxy.cc",
878        "051-thread/thread_test.cc",
879        "1337-gc-coverage/gc_coverage.cc",
880        "136-daemon-jni-shutdown/daemon_jni_shutdown.cc",
881        "137-cfi/cfi.cc",
882        "139-register-natives/regnative.cc",
883        "141-class-unload/jni_unload.cc",
884        "148-multithread-gc-annotations/gc_coverage.cc",
885        "149-suspend-all-stress/suspend_all.cc",
886        "154-gc-loop/heap_interface.cc",
887        "167-visit-locks/visit_locks.cc",
888        "169-threadgroup-jni/jni_daemon_thread.cc",
889        "172-app-image-twice/debug_print_class.cc",
890        "177-visibly-initialized-deadlock/visibly_initialized.cc",
891        "178-app-image-native-method/native_methods.cc",
892        "179-nonvirtual-jni/nonvirtual-call.cc",
893        "1945-proxy-method-arguments/get_args.cc",
894        "203-multi-checkpoint/multi_checkpoint.cc",
895        "305-other-fault-handler/fault_handler.cc",
896        "454-get-vreg/get_vreg_jni.cc",
897        "457-regs/regs_jni.cc",
898        "461-get-reference-vreg/get_reference_vreg_jni.cc",
899        "466-get-live-vreg/get_live_vreg_jni.cc",
900        "497-inlining-and-class-loader/clear_dex_cache.cc",
901        "543-env-long-ref/env_long_ref.cc",
902        "566-polymorphic-inlining/polymorphic_inline.cc",
903        "570-checker-osr/osr.cc",
904        "595-profile-saving/profile-saving.cc",
905        "596-app-images/app_images.cc",
906        "596-monitor-inflation/monitor_inflation.cc",
907        "597-deopt-new-string/deopt.cc",
908        "616-cha-unloading/cha_unload.cc",
909        "626-const-class-linking/clear_dex_cache_types.cc",
910        "642-fp-callees/fp_callees.cc",
911        "647-jni-get-field-id/get_field_id.cc",
912        "656-annotation-lookup-generic-jni/test.cc",
913        "661-oat-writer-layout/oat_writer_layout.cc",
914        "664-aget-verifier/aget-verifier.cc",
915        "667-jit-jni-stub/jit_jni_stub_test.cc",
916        "674-hiddenapi/hiddenapi.cc",
917        "692-vdex-inmem-loader/vdex_inmem_loader.cc",
918        "720-thread-priority/thread_priority.cc",
919        "800-smali/jni.cc",
920        "817-hiddenapi/libarttest_api.cc",
921        "855-native/throws_exception.cc",
922        "909-attach-agent/disallow_debugging.cc",
923        "993-breakpoints-non-debuggable/native_attach_agent.cc",
924        "1001-app-image-regions/app_image_regions.cc",
925        "1002-notify-startup/startup_interface.cc",
926        "1947-breakpoint-redefine-deopt/check_deopt.cc",
927        "1972-jni-id-swap-indices/jni_id.cc",
928        "1985-structural-redefine-stack-scope/stack_scope.cc",
929        "2011-stack-walk-concurrent-instrument/stack_walk_concurrent.cc",
930        "2031-zygote-compiled-frame-deopt/native-wait.cc",
931        "2033-shutdown-mechanics/native_shutdown.cc",
932        "2036-jni-filechannel/jni_filechannel.cc",
933        "2037-thread-name-inherit/thread_name_inherit.cc",
934        "2040-huge-native-alloc/huge_native_buf.cc",
935        "2048-bad-native-registry/native_finalizer.cc",
936        "2235-JdkUnsafeTest/unsafe_test.cc",
937        "2246-trace-v2/dump_trace.cc",
938        "2262-miranda-methods/jni_invoke.cc",
939        "2270-mh-internal-hiddenapi-use/mh-internal-hidden-api.cc",
940        "2275-pthread-name/native_getname.cc",
941        "common/runtime_state.cc",
942        "common/stack_inspect.cc",
943    ],
944    shared_libs: [
945        "libbase",
946        "liblog",
947        "libnativehelper",
948        "libunwindstack",
949    ],
950    target: {
951        android: {
952            header_libs: ["libnativeloader-headers"],
953            shared_libs: ["libdl_android"],
954        },
955    },
956}
957
958art_cc_test_library {
959    name: "libarttest",
960    defaults: ["libarttest-defaults"],
961    shared_libs: [
962        "libart",
963        "libdexfile#impl",
964        "libprofile",
965        "libartbase",
966    ],
967}
968
969art_cc_test_library {
970    name: "libarttestd",
971    defaults: [
972        "art_debug_defaults",
973        "libarttest-defaults",
974    ],
975    shared_libs: [
976        "libartd",
977        "libdexfiled#impl",
978        "libprofiled",
979        "libartbased",
980    ],
981}
982
983// "External" native code for run tests. Unlike libarttest(d), this library is
984// not installed in the com_android_art namespace, so it cannot access ART
985// internals. It's instead installed in a location that will be available as
986// java.library.path in run tests, and it can call functions in
987// libarttest(d).so.
988cc_defaults {
989    name: "libarttest_external-defaults",
990    defaults: ["art_test_defaults"],
991    srcs: [
992        "817-hiddenapi/test_native.cc",
993        "common/libarttest_external.cc",
994    ],
995    shared_libs: [
996        "libbase",
997        "liblog",
998        "libnativehelper",
999    ],
1000}
1001
1002art_cc_test_library {
1003    name: "libarttest_external",
1004    defaults: ["libarttest_external-defaults"],
1005    shared_libs: ["libarttest"],
1006}
1007
1008art_cc_test_library {
1009    name: "libarttestd_external",
1010    defaults: [
1011        "art_debug_defaults",
1012        "libarttest_external-defaults",
1013    ],
1014    shared_libs: ["libarttestd"],
1015}
1016
1017java_library {
1018    name: "art_cts_jvmti_test_library",
1019    visibility: [
1020        "//art:__subpackages__",
1021        "//cts/hostsidetests/jvmti:__subpackages__",
1022    ],
1023    javacflags: ["-g"],
1024    srcs: [
1025        // shim classes. We use one that exposes the common functionality.
1026        "jvmti-common/Redefinition.java",
1027        "jvmti-common/Main.java",
1028        "jvmti-common/Trace.java",
1029        "jvmti-common/Breakpoint.java",
1030        "jvmti-common/Suspension.java",
1031        "jvmti-common/Locals.java",
1032        "jvmti-common/StackTrace.java",
1033        "jvmti-common/FramePop.java",
1034        "jvmti-common/Exceptions.java",
1035        "jvmti-common/Monitors.java",
1036        "jvmti-common/NonStandardExit.java",
1037        "jvmti-common/Threads.java",
1038        "jvmti-common/SuspendEvents.java",
1039
1040        // Actual test classes.
1041        "901-hello-ti-agent/src/art/Test901.java",
1042        "902-hello-transformation/src/art/Test902.java",
1043        "903-hello-tagging/src/art/Test903.java",
1044        "904-object-allocation/src/art/Test904.java",
1045        "905-object-free/src/art/Test905.java",
1046        "906-iterate-heap/src/art/Test906.java",
1047        "907-get-loaded-classes/src/art/Test907.java",
1048        "907-get-loaded-classes/src/art/Cerr.java",
1049        "908-gc-start-finish/src/art/Test908.java",
1050        "910-methods/src/art/Test910.java",
1051        "911-get-stack-trace/src/art/Test911.java",
1052        "911-get-stack-trace/src/art/AllTraces.java",
1053        "911-get-stack-trace/src/art/ControlData.java",
1054        "911-get-stack-trace/src/art/Frames.java",
1055        "911-get-stack-trace/src/art/OtherThread.java",
1056        "911-get-stack-trace/src/art/PrintThread.java",
1057        "911-get-stack-trace/src/art/Recurse.java",
1058        "911-get-stack-trace/src/art/SameThread.java",
1059        "911-get-stack-trace/src/art/ThreadListTraces.java",
1060        "912-classes/src-art/art/Test912.java",
1061        "912-classes/src-art/art/DexData.java",
1062        "913-heaps/src/art/Test913.java",
1063        "914-hello-obsolescence/src/art/Test914.java",
1064        "915-obsolete-2/src/art/Test915.java",
1065        "917-fields-transformation/src/art/Test917.java",
1066        "918-fields/src/art/Test918.java",
1067        "919-obsolete-fields/src/art/Test919.java",
1068        "920-objects/src/art/Test920.java",
1069        "922-properties/src/art/Test922.java",
1070        "923-monitors/src/art/Test923.java",
1071        "924-threads/src/art/Test924.java",
1072        "925-threadgroups/src/art/Test925.java",
1073        "926-multi-obsolescence/src/art/Test926.java",
1074        "927-timers/src/art/Test927.java",
1075        "928-jni-table/src/art/Test928.java",
1076        "930-hello-retransform/src/art/Test930.java",
1077        "931-agent-thread/src/art/Test931.java",
1078        "932-transform-saves/src/art/Test932.java",
1079        "933-misc-events/src/art/Test933.java",
1080        "940-recursive-obsolete/src/art/Test940.java",
1081        "942-private-recursive/src/art/Test942.java",
1082        "944-transform-classloaders/src/art/Test944.java",
1083        "945-obsolete-native/src/art/Test945.java",
1084        "947-reflect-method/src/art/Test947.java",
1085        "951-threaded-obsolete/src/art/Test951.java",
1086        "982-ok-no-retransform/src/art/Test982.java",
1087        "983-source-transform-verify/src/art/Test983.java",
1088        "984-obsolete-invoke/src/art/Test984.java",
1089        "985-re-obsolete/src/art/Test985.java",
1090        "986-native-method-bind/src/art/Test986.java",
1091        "988-method-trace/src/art/Test988.java",
1092        "988-method-trace/src/art/Test988Intrinsics.java",
1093        "989-method-trace-throw/src/art/Test989.java",
1094        "990-field-trace/src/art/Test990.java",
1095        "991-field-trace-2/src/art/Test991.java",
1096        "992-source-data/src/art/Test992.java",
1097        "992-source-data/src/art/Target2.java",
1098        "993-breakpoints/src/art/Test993.java",
1099        "993-breakpoints-non-debuggable/src/art/Test993AttachAgent.java",
1100        "994-breakpoint-line/src/art/Test994.java",
1101        "995-breakpoints-throw/src/art/Test995.java",
1102        "996-breakpoint-obsolete/src/art/Test996.java",
1103        "997-single-step/src/art/Test997.java",
1104        "1900-track-alloc/src/art/Test1900.java",
1105        "1901-get-bytecodes/src/art/Test1901.java",
1106        "1902-suspend/src/art/Test1902.java",
1107        "1903-suspend-self/src/art/Test1903.java",
1108        "1904-double-suspend/src/art/Test1904.java",
1109        "1906-suspend-list-me-first/src/art/Test1906.java",
1110        "1907-suspend-list-self-twice/src/art/Test1907.java",
1111        "1908-suspend-native-resume-self/src/art/Test1908.java",
1112        "1909-per-agent-tls/src/art/Test1909.java",
1113        "1910-transform-with-default/src/art/Test1910.java",
1114        "1911-get-local-var-table/src/art/Test1911.java",
1115        "1912-get-set-local-primitive/src/art/Test1912.java",
1116        "1913-get-set-local-objects/src/art/Test1913.java",
1117        "1914-get-local-instance/src/art/Test1914.java",
1118        "1915-get-set-local-current-thread/src/art/Test1915.java",
1119        "1916-get-set-current-frame/src/art/Test1916.java",
1120        "1917-get-stack-frame/src/art/Test1917.java",
1121        "1920-suspend-native-monitor/src/art/Test1920.java",
1122        "1921-suspend-native-recursive-monitor/src/art/Test1921.java",
1123        "1922-owned-monitors-info/src/art/Test1922.java",
1124        "1923-frame-pop/src/art/Test1923.java",
1125        "1924-frame-pop-toggle/src/art/Test1924.java",
1126        "1925-self-frame-pop/src/art/Test1925.java",
1127        "1926-missed-frame-pop/src/art/Test1926.java",
1128        "1927-exception-event/src/art/Test1927.java",
1129        "1928-exception-event-exception/src/art/Test1928.java",
1130        "1930-monitor-info/src/art/Test1930.java",
1131        "1931-monitor-events/src/art/Test1931.java",
1132        "1932-monitor-events-misc/src/art/Test1932.java",
1133        "1933-monitor-current-contended/src/art/Test1933.java",
1134        "1934-jvmti-signal-thread/src/art/Test1934.java",
1135        "1936-thread-end-events/src/art/Test1936.java",
1136        "1937-transform-soft-fail/src/art/Test1937.java",
1137        "1939-proxy-frames/src/art/Test1939.java",
1138        "1940-ddms-ext/src-art/art/Test1940.java",
1139        "1941-dispose-stress/src/art/Test1941.java",
1140        "1942-suspend-raw-monitor-exit/src/art/Test1942.java",
1141        "1943-suspend-raw-monitor-wait/src/art/Test1943.java",
1142        "1953-pop-frame/src/art/Test1953.java",
1143        "1958-transform-try-jit/src/art/Test1958.java",
1144        "1962-multi-thread-events/src/art/Test1962.java",
1145        "1963-add-to-dex-classloader-in-memory/src/art/Test1963.java",
1146        "1967-get-set-local-bad-slot/src/art/Test1967.java",
1147        "1968-force-early-return/src/art/Test1968.java",
1148        "1969-force-early-return-void/src/art/Test1969.java",
1149        "1970-force-early-return-long/src/art/Test1970.java",
1150        "1971-multi-force-early-return/src/art/Test1971.java",
1151        "1974-resize-array/src/art/Test1974.java",
1152        "1975-hello-structural-transformation/src/art/Test1975.java",
1153        "1975-hello-structural-transformation/src/art/Transform1975.java",
1154        "1976-hello-structural-static-methods/src/art/Test1976.java",
1155        "1976-hello-structural-static-methods/src/art/Transform1976.java",
1156        "1977-hello-structural-obsolescence/src/art/Test1977.java",
1157        "1978-regular-obsolete-then-structural-obsolescence/src/art/Test1978.java",
1158        "1979-threaded-structural-transformation/src/art/Test1979.java",
1159        "1981-structural-redef-private-method-handles/src/art/Test1981.java",
1160        // TODO Requires VarHandles to be un-@hide. See b/64382372
1161        // "1981-structural-redef-private-method-handles/src/art/Test1981_Varhandles.java",
1162        "1982-no-virtuals-structural-redefinition/src/art/Test1982.java",
1163        "1983-structural-redefinition-failures/src/art/Test1983.java",
1164        "1984-structural-redefine-field-trace/src/art/Test1984.java",
1165        "1988-multi-structural-redefine/src/art/Test1988.java",
1166        "1989-transform-bad-monitor/src/art/Test1989.java",
1167        "1990-structural-bad-verify/src/art/Test1990.java",
1168        "1991-hello-structural-retransform/src/art/Test1991.java",
1169        "1992-retransform-no-such-field/src/art/Test1992.java",
1170        "1994-final-virtual-structural/src/art/Test1994.java",
1171        "1995-final-virtual-structural-multithread/src/art/Test1995.java",
1172        "1996-final-override-virtual-structural/src/art/Test1996.java",
1173        "1997-structural-shadow-method/src/art/Test1997.java",
1174        "1998-structural-shadow-field/src/art/Test1998.java",
1175        "1999-virtual-structural/src/art/Test1999.java",
1176        "2001-virtual-structural-multithread/src-art/art/Test2001.java",
1177        "2002-virtual-structural-initializing/src-art/art/Test2002.java",
1178        "2003-double-virtual-structural/src/art/Test2003.java",
1179        "2004-double-virtual-structural-abstract/src/art/Test2004.java",
1180        "2005-pause-all-redefine-multithreaded/src/art/Test2005.java",
1181        "2006-virtual-structural-finalizing/src-art/art/Test2006.java",
1182        "2007-virtual-structural-finalizable/src-art/art/Test2007.java",
1183    ],
1184    sdk_version: "core_platform",
1185    // Make sure that this will be added to the sdk snapshot for S.
1186    min_sdk_version: "S",
1187    // Some ART run-tests contain constructs which break ErrorProne checks;
1188    // disable `errorprone` builds.
1189    errorprone: {
1190        enabled: false,
1191    },
1192}
1193
1194// CTS test runner in cts/hostsidetests/jvmti looks for an expected test
1195// result for the test NN in the file results.NN.expected.txt while in the
1196// source tree each expected test result is in the NN-xxxx/expected-stdout.txt.
1197// Copy+rename them them to a temporary directory and them zip them.
1198java_genrule {
1199    name: "expected_cts_outputs_gen",
1200    srcs: [
1201        "901-hello-ti-agent/expected-stdout.txt",
1202        "902-hello-transformation/expected-stdout.txt",
1203        "903-hello-tagging/expected-stdout.txt",
1204        "904-object-allocation/expected-stdout.txt",
1205        "905-object-free/expected-stdout.txt",
1206        "906-iterate-heap/expected-stdout.txt",
1207        "907-get-loaded-classes/expected-stdout.txt",
1208        "908-gc-start-finish/expected-stdout.txt",
1209        "910-methods/expected-stdout.txt",
1210        "911-get-stack-trace/expected-cts-version.txt",
1211        "912-classes/expected-stdout.txt",
1212        "913-heaps/expected-stdout.txt",
1213        "914-hello-obsolescence/expected-stdout.txt",
1214        "915-obsolete-2/expected-stdout.txt",
1215        "917-fields-transformation/expected-stdout.txt",
1216        "918-fields/expected-stdout.txt",
1217        "919-obsolete-fields/expected-stdout.txt",
1218        "920-objects/expected-stdout.txt",
1219        "922-properties/expected-stdout.txt",
1220        "923-monitors/expected-stdout.txt",
1221        "924-threads/expected-stdout.txt",
1222        "925-threadgroups/expected-stdout.txt",
1223        "926-multi-obsolescence/expected-stdout.txt",
1224        "927-timers/expected-stdout.txt",
1225        "928-jni-table/expected-stdout.txt",
1226        "930-hello-retransform/expected-stdout.txt",
1227        "931-agent-thread/expected-stdout.txt",
1228        "932-transform-saves/expected-stdout.txt",
1229        "933-misc-events/expected-stdout.txt",
1230        "940-recursive-obsolete/expected-stdout.txt",
1231        "942-private-recursive/expected-stdout.txt",
1232        "944-transform-classloaders/expected-stdout.txt",
1233        "945-obsolete-native/expected-stdout.txt",
1234        "947-reflect-method/expected-stdout.txt",
1235        "951-threaded-obsolete/expected-stdout.txt",
1236        "982-ok-no-retransform/expected-stdout.txt",
1237        "983-source-transform-verify/expected-stdout.txt",
1238        "984-obsolete-invoke/expected-stdout.txt",
1239        "985-re-obsolete/expected-stdout.txt",
1240        "986-native-method-bind/expected-stdout.txt",
1241        "988-method-trace/expected-stdout.txt",
1242        "989-method-trace-throw/expected-stdout.txt",
1243        "990-field-trace/expected-stdout.txt",
1244        "991-field-trace-2/expected-stdout.txt",
1245        "992-source-data/expected-stdout.txt",
1246        // Need to avoid using hidden-apis
1247        "993-breakpoints/expected_cts.txt",
1248        "993-breakpoints-non-debuggable/expected_cts.txt",
1249        "994-breakpoint-line/expected-stdout.txt",
1250        "995-breakpoints-throw/expected-stdout.txt",
1251        "996-breakpoint-obsolete/expected-stdout.txt",
1252        "997-single-step/expected-stdout.txt",
1253        "1900-track-alloc/expected-stdout.txt",
1254        "1901-get-bytecodes/expected-stdout.txt",
1255        "1902-suspend/expected-stdout.txt",
1256        "1903-suspend-self/expected-stdout.txt",
1257        "1904-double-suspend/expected-stdout.txt",
1258        "1906-suspend-list-me-first/expected-stdout.txt",
1259        "1907-suspend-list-self-twice/expected-stdout.txt",
1260        "1908-suspend-native-resume-self/expected-stdout.txt",
1261        "1909-per-agent-tls/expected-stdout.txt",
1262        "1910-transform-with-default/expected-stdout.txt",
1263        "1911-get-local-var-table/expected-stdout.txt",
1264        "1912-get-set-local-primitive/expected-stdout.txt",
1265        "1913-get-set-local-objects/expected-stdout.txt",
1266        "1914-get-local-instance/expected-stdout.txt",
1267        "1915-get-set-local-current-thread/expected-stdout.txt",
1268        "1916-get-set-current-frame/expected-stdout.txt",
1269        "1917-get-stack-frame/expected-stdout.txt",
1270        "1920-suspend-native-monitor/expected-stdout.txt",
1271        "1921-suspend-native-recursive-monitor/expected-stdout.txt",
1272        "1922-owned-monitors-info/expected-stdout.txt",
1273        "1923-frame-pop/expected-stdout.txt",
1274        "1924-frame-pop-toggle/expected-stdout.txt",
1275        "1925-self-frame-pop/expected-stdout.txt",
1276        "1926-missed-frame-pop/expected-stdout.txt",
1277        "1927-exception-event/expected-stdout.txt",
1278        "1928-exception-event-exception/expected-stdout.txt",
1279        "1930-monitor-info/expected-stdout.txt",
1280        "1931-monitor-events/expected-stdout.txt",
1281        "1932-monitor-events-misc/expected-stdout.txt",
1282        "1933-monitor-current-contended/expected-stdout.txt",
1283        "1934-jvmti-signal-thread/expected-stdout.txt",
1284        "1936-thread-end-events/expected-stdout.txt",
1285        "1937-transform-soft-fail/expected-stdout.txt",
1286        "1939-proxy-frames/expected-stdout.txt",
1287        "1940-ddms-ext/expected-stdout.txt",
1288        "1941-dispose-stress/expected-stdout.txt",
1289        "1942-suspend-raw-monitor-exit/expected-stdout.txt",
1290        "1943-suspend-raw-monitor-wait/expected-stdout.txt",
1291        "1953-pop-frame/expected-stdout.txt",
1292        "1958-transform-try-jit/expected-stdout.txt",
1293        "1962-multi-thread-events/expected-stdout.txt",
1294        "1963-add-to-dex-classloader-in-memory/expected-stdout.txt",
1295        "1967-get-set-local-bad-slot/expected-stdout.txt",
1296        "1968-force-early-return/expected-stdout.txt",
1297        "1969-force-early-return-void/expected-stdout.txt",
1298        "1970-force-early-return-long/expected-stdout.txt",
1299        "1971-multi-force-early-return/expected-stdout.txt",
1300        "1974-resize-array/expected-stdout.txt",
1301        "1975-hello-structural-transformation/expected-stdout.txt",
1302        "1976-hello-structural-static-methods/expected-stdout.txt",
1303        "1977-hello-structural-obsolescence/expected-stdout.txt",
1304        "1978-regular-obsolete-then-structural-obsolescence/expected-stdout.txt",
1305        "1979-threaded-structural-transformation/expected-stdout.txt",
1306        // TODO Requires VarHandles to be un-@hide. See b/64382372
1307        // "test/1981-structural-redef-private-method-handles/expected-stdout.txt",
1308        "1981-structural-redef-private-method-handles/expected_no_mh.txt",
1309        "1982-no-virtuals-structural-redefinition/expected-stdout.txt",
1310        // JNI-id use can change the outcome of this test on device.
1311        "1983-structural-redefinition-failures/expected-cts.txt",
1312        "1984-structural-redefine-field-trace/expected-stdout.txt",
1313        "1988-multi-structural-redefine/expected-stdout.txt",
1314        "1989-transform-bad-monitor/expected-stdout.txt",
1315        "1990-structural-bad-verify/expected-stdout.txt",
1316        "1991-hello-structural-retransform/expected-stdout.txt",
1317        "1992-retransform-no-such-field/expected-stdout.txt",
1318        "1994-final-virtual-structural/expected-stdout.txt",
1319        "1995-final-virtual-structural-multithread/expected-stdout.txt",
1320        "1996-final-override-virtual-structural/expected-stdout.txt",
1321        "1997-structural-shadow-method/expected-stdout.txt",
1322        "1998-structural-shadow-field/expected-stdout.txt",
1323        "1999-virtual-structural/expected-stdout.txt",
1324        "2001-virtual-structural-multithread/expected-stdout.txt",
1325        "2002-virtual-structural-initializing/expected-stdout.txt",
1326        "2003-double-virtual-structural/expected-stdout.txt",
1327        "2004-double-virtual-structural-abstract/expected-stdout.txt",
1328        "2005-pause-all-redefine-multithreaded/expected-stdout.txt",
1329        "2006-virtual-structural-finalizing/expected-stdout.txt",
1330        "2007-virtual-structural-finalizable/expected-stdout.txt",
1331    ],
1332    out: ["expected_cts_outputs.jar"],
1333    tools: ["soong_zip"],
1334    cmd: "rm -rf $(genDir)/res && mkdir -p $(genDir)/res && " +
1335        "for f in $(in); do x=$${f#art/test/}; " +
1336        "cp $$f $(genDir)/res/results.$${x%%-*}.expected.txt; done && " +
1337        "$(location soong_zip) -o $(out) -C $(genDir)/res -D $(genDir)/res",
1338}
1339
1340// Wrap the expected_cts_outputs_gen inside a java library to make it easy
1341// to export as a member of a module_exports.
1342java_library {
1343    name: "expected_cts_outputs",
1344    visibility: [
1345        "//art/build/sdk",
1346        "//cts/hostsidetests/jvmti:__subpackages__",
1347    ],
1348    static_libs: [
1349        "expected_cts_outputs_gen",
1350    ],
1351    sdk_version: "core_current",
1352    // Make sure that this will be added to the sdk snapshot for S.
1353    min_sdk_version: "S",
1354}
1355
1356art_cc_test {
1357    name: "ArtGtestsTargetInstallApex",
1358    data: [
1359        // We need the ART testing apex, which contains all gtest binaries.
1360        // Note that due to build system and linker constraints the gtests must be in the apex.
1361        ":com.android.art.testing",
1362    ],
1363    // It seems that only device-tests build can create a valid apex.
1364    test_suites: [
1365        "device-tests",
1366    ],
1367    test_config: "art-gtests-target-install-apex.xml",
1368
1369    // Support multilib variants (using different suffix per sub-architecture), which is needed on
1370    // build targets with secondary architectures, as the packaging logic for some test suites
1371    // flattens all test artifacts into a single `testcases` directory.
1372    compile_multilib: "both",
1373    multilib: {
1374        lib32: {
1375            suffix: "32",
1376        },
1377        lib64: {
1378            suffix: "64",
1379        },
1380    },
1381}
1382
1383art_cc_test {
1384    name: "ArtGtestsTargetChroot",
1385    data: [
1386        // We need the ART testing apex, which contains all gtest binaries.
1387        // Note that due to build system and linker constraints the gtests must be in the apex.
1388        ":com.android.art.testing",
1389        ":generate-boot-image",
1390    ],
1391    test_suites: ["general-tests"],
1392    test_config: "art-gtests-target-chroot.xml",
1393}
1394
1395art_cc_test {
1396    name: "ArtTest",
1397    data: [
1398        // We need the ART testing apex, which contains debug binaries and other utilities.
1399        ":com.android.art.testing",
1400        // Archive which contains all run-test data and test-specific bash scripts to run them.
1401        ":art-test-target-fg",
1402    ],
1403    test_suites: ["general-tests"],
1404    test_config: "ArtTest.xml",
1405}
1406
1407csuite_test {
1408    name: "csuite-app-compile-launch",
1409    test_config_template: "csuite-app-compile-launch.xml",
1410}
1411
1412filegroup {
1413    name: "art-gtest-jars",
1414    device_common_srcs: [
1415        ":art-gtest-jars-AbstractMethod",
1416        ":art-gtest-jars-AllFields",
1417        ":art-gtest-jars-ArrayClassWithUnresolvedComponent",
1418        ":art-gtest-jars-DefaultMethods",
1419        ":art-gtest-jars-ErroneousA",
1420        ":art-gtest-jars-ErroneousB",
1421        ":art-gtest-jars-ErroneousInit",
1422        ":art-gtest-jars-Extension1",
1423        ":art-gtest-jars-Extension2",
1424        ":art-gtest-jars-ForClassLoaderA",
1425        ":art-gtest-jars-ForClassLoaderB",
1426        ":art-gtest-jars-ForClassLoaderC",
1427        ":art-gtest-jars-ForClassLoaderD",
1428        ":art-gtest-jars-ExceptionHandle",
1429        ":art-gtest-jars-GetMethodSignature",
1430        ":art-gtest-jars-HiddenApi",
1431        ":art-gtest-jars-HiddenApiSignatures",
1432        ":art-gtest-jars-HiddenApiStubs",
1433        ":art-gtest-jars-ImageLayoutA",
1434        ":art-gtest-jars-ImageLayoutB",
1435        ":art-gtest-jars-IMTA",
1436        ":art-gtest-jars-IMTB",
1437        ":art-gtest-jars-Instrumentation",
1438        ":art-gtest-jars-Interfaces",
1439        ":art-gtest-jars-Lookup",
1440        ":art-gtest-jars-Main",
1441        ":art-gtest-jars-ManyMethods",
1442        ":art-gtest-jars-MethodTypes",
1443        ":art-gtest-jars-MultiDex",
1444        ":art-gtest-jars-MultiDexModifiedSecondary",
1445        ":art-gtest-jars-MyClass",
1446        ":art-gtest-jars-MyClassNatives",
1447        ":art-gtest-jars-Nested",
1448        ":art-gtest-jars-NonStaticLeafMethods",
1449        ":art-gtest-jars-Packages",
1450        ":art-gtest-jars-ProtoCompare",
1451        ":art-gtest-jars-ProtoCompare2",
1452        ":art-gtest-jars-ProfileTestMultiDex",
1453        ":art-gtest-jars-StaticLeafMethods",
1454        ":art-gtest-jars-Statics",
1455        ":art-gtest-jars-StaticsFromCode",
1456        ":art-gtest-jars-StringLiterals",
1457        ":art-gtest-jars-Transaction",
1458        ":art-gtest-jars-XandY",
1459        ":art-gtest-jars-MainEmptyUncompressed",
1460        ":art-gtest-jars-MainEmptyUncompressedAligned",
1461        ":art-gtest-jars-MainStripped",
1462        ":art-gtest-jars-MainUncompressedAligned",
1463        ":art-gtest-jars-MultiDexUncompressedAligned",
1464        ":art-gtest-jars-SuperWithAccessChecks",
1465        ":art-gtest-jars-VerifierDeps",
1466        ":art-gtest-jars-VerifierDepsMulti",
1467        ":art-gtest-jars-VerifySoftFailDuringClinit",
1468    ],
1469}
1470
1471java_defaults {
1472    name: "art-gtest-jars-defaults",
1473    installable: true,
1474    dex_preopt: {
1475        enabled: false,
1476    },
1477    sdk_version: "core_platform",
1478    uncompress_dex: false,
1479}
1480
1481// The following modules are just trivial compilations (non-trivial cases are the end).
1482
1483java_library {
1484    name: "art-gtest-jars-AbstractMethod",
1485    srcs: ["AbstractMethod/**/*.java"],
1486    defaults: ["art-gtest-jars-defaults"],
1487}
1488
1489java_library {
1490    name: "art-gtest-jars-AllFields",
1491    srcs: ["AllFields/**/*.java"],
1492    defaults: ["art-gtest-jars-defaults"],
1493}
1494
1495java_library {
1496    name: "art-gtest-jars-DefaultMethods",
1497    srcs: ["DefaultMethods/**/*.java"],
1498    defaults: ["art-gtest-jars-defaults"],
1499}
1500
1501java_library {
1502    name: "art-gtest-jars-ErroneousA",
1503    srcs: ["ErroneousA/**/*.java"],
1504    defaults: ["art-gtest-jars-defaults"],
1505}
1506
1507java_library {
1508    name: "art-gtest-jars-ErroneousB",
1509    srcs: ["ErroneousB/**/*.java"],
1510    defaults: ["art-gtest-jars-defaults"],
1511}
1512
1513java_library {
1514    name: "art-gtest-jars-ErroneousInit",
1515    srcs: ["ErroneousInit/**/*.java"],
1516    defaults: ["art-gtest-jars-defaults"],
1517}
1518
1519java_library {
1520    name: "art-gtest-jars-Extension1",
1521    srcs: ["Extension1/**/*.java"],
1522    defaults: ["art-gtest-jars-defaults"],
1523}
1524
1525java_library {
1526    name: "art-gtest-jars-Extension2",
1527    srcs: ["Extension2/**/*.java"],
1528    defaults: ["art-gtest-jars-defaults"],
1529}
1530
1531java_library {
1532    name: "art-gtest-jars-ForClassLoaderA",
1533    srcs: ["ForClassLoaderA/**/*.java"],
1534    defaults: ["art-gtest-jars-defaults"],
1535}
1536
1537java_library {
1538    name: "art-gtest-jars-ForClassLoaderB",
1539    srcs: ["ForClassLoaderB/**/*.java"],
1540    defaults: ["art-gtest-jars-defaults"],
1541}
1542
1543java_library {
1544    name: "art-gtest-jars-ForClassLoaderC",
1545    srcs: ["ForClassLoaderC/**/*.java"],
1546    defaults: ["art-gtest-jars-defaults"],
1547}
1548
1549java_library {
1550    name: "art-gtest-jars-ForClassLoaderD",
1551    srcs: ["ForClassLoaderD/**/*.java"],
1552    defaults: ["art-gtest-jars-defaults"],
1553}
1554
1555java_library {
1556    name: "art-gtest-jars-ExceptionHandle",
1557    srcs: ["ExceptionHandle/**/*.java"],
1558    defaults: ["art-gtest-jars-defaults"],
1559}
1560
1561java_library {
1562    name: "art-gtest-jars-GetMethodSignature",
1563    srcs: ["GetMethodSignature/**/*.java"],
1564    defaults: ["art-gtest-jars-defaults"],
1565}
1566
1567java_library {
1568    name: "art-gtest-jars-HiddenApi",
1569    srcs: ["HiddenApi/**/*.java"],
1570    defaults: ["art-gtest-jars-defaults"],
1571}
1572
1573java_library {
1574    name: "art-gtest-jars-HiddenApiSignatures",
1575    srcs: ["HiddenApiSignatures/**/*.java"],
1576    defaults: ["art-gtest-jars-defaults"],
1577}
1578
1579java_library {
1580    name: "art-gtest-jars-HiddenApiStubs",
1581    srcs: ["HiddenApiStubs/**/*.java"],
1582    defaults: ["art-gtest-jars-defaults"],
1583}
1584
1585java_library {
1586    name: "art-gtest-jars-ImageLayoutA",
1587    srcs: ["ImageLayoutA/**/*.java"],
1588    defaults: ["art-gtest-jars-defaults"],
1589}
1590
1591java_library {
1592    name: "art-gtest-jars-ImageLayoutB",
1593    srcs: ["ImageLayoutB/**/*.java"],
1594    defaults: ["art-gtest-jars-defaults"],
1595}
1596
1597java_library {
1598    name: "art-gtest-jars-IMTA",
1599    srcs: ["IMTA/**/*.java"],
1600    defaults: ["art-gtest-jars-defaults"],
1601}
1602
1603java_library {
1604    name: "art-gtest-jars-IMTB",
1605    srcs: ["IMTB/**/*.java"],
1606    defaults: ["art-gtest-jars-defaults"],
1607}
1608
1609java_library {
1610    name: "art-gtest-jars-Instrumentation",
1611    srcs: ["Instrumentation/**/*.java"],
1612    defaults: ["art-gtest-jars-defaults"],
1613}
1614
1615java_library {
1616    name: "art-gtest-jars-Interfaces",
1617    srcs: ["Interfaces/**/*.java"],
1618    defaults: ["art-gtest-jars-defaults"],
1619}
1620
1621java_library {
1622    name: "art-gtest-jars-Lookup",
1623    srcs: ["Lookup/**/*.java"],
1624    defaults: ["art-gtest-jars-defaults"],
1625}
1626
1627java_library {
1628    name: "art-gtest-jars-Main",
1629    srcs: ["Main/**/*.java"],
1630    defaults: ["art-gtest-jars-defaults"],
1631}
1632
1633java_library {
1634    name: "art-gtest-jars-ManyMethods",
1635    srcs: ["ManyMethods/**/*.java"],
1636    defaults: ["art-gtest-jars-defaults"],
1637}
1638
1639java_library {
1640    name: "art-gtest-jars-MethodTypes",
1641    srcs: ["MethodTypes/**/*.java"],
1642    defaults: ["art-gtest-jars-defaults"],
1643}
1644
1645java_library {
1646    name: "art-gtest-jars-MyClass",
1647    srcs: ["MyClass/**/*.java"],
1648    defaults: ["art-gtest-jars-defaults"],
1649}
1650
1651java_library {
1652    name: "art-gtest-jars-MyClassNatives",
1653    srcs: ["MyClassNatives/**/*.java"],
1654    defaults: ["art-gtest-jars-defaults"],
1655}
1656
1657java_library {
1658    name: "art-gtest-jars-Nested",
1659    srcs: ["Nested/**/*.java"],
1660    defaults: ["art-gtest-jars-defaults"],
1661}
1662
1663java_library {
1664    name: "art-gtest-jars-NonStaticLeafMethods",
1665    srcs: ["NonStaticLeafMethods/**/*.java"],
1666    defaults: ["art-gtest-jars-defaults"],
1667}
1668
1669java_library {
1670    name: "art-gtest-jars-Packages",
1671    srcs: ["Packages/**/*.java"],
1672    defaults: ["art-gtest-jars-defaults"],
1673}
1674
1675java_library {
1676    name: "art-gtest-jars-ProtoCompare",
1677    srcs: ["ProtoCompare/**/*.java"],
1678    defaults: ["art-gtest-jars-defaults"],
1679}
1680
1681java_library {
1682    name: "art-gtest-jars-ProtoCompare2",
1683    srcs: ["ProtoCompare2/**/*.java"],
1684    defaults: ["art-gtest-jars-defaults"],
1685}
1686
1687java_library {
1688    name: "art-gtest-jars-StaticLeafMethods",
1689    srcs: ["StaticLeafMethods/**/*.java"],
1690    defaults: ["art-gtest-jars-defaults"],
1691}
1692
1693java_library {
1694    name: "art-gtest-jars-Statics",
1695    srcs: ["Statics/**/*.java"],
1696    defaults: ["art-gtest-jars-defaults"],
1697}
1698
1699java_library {
1700    name: "art-gtest-jars-StaticsFromCode",
1701    srcs: ["StaticsFromCode/**/*.java"],
1702    defaults: ["art-gtest-jars-defaults"],
1703}
1704
1705java_library {
1706    name: "art-gtest-jars-StringLiterals",
1707    srcs: ["StringLiterals/**/*.java"],
1708    defaults: ["art-gtest-jars-defaults"],
1709}
1710
1711java_library {
1712    name: "art-gtest-jars-Transaction",
1713    srcs: ["Transaction/**/*.java"],
1714    defaults: ["art-gtest-jars-defaults"],
1715}
1716
1717java_library {
1718    name: "art-gtest-jars-XandY",
1719    srcs: ["XandY/**/*.java"],
1720    defaults: ["art-gtest-jars-defaults"],
1721}
1722
1723java_library {
1724    name: "art-gtest-jars-Dex2oatVdexTestDex",
1725    srcs: ["Dex2oatVdexTestDex/**/*.java"],
1726    defaults: ["art-gtest-jars-defaults"],
1727}
1728
1729// The following cases are non-trivial.
1730
1731// Uncompress classes.dex files in the jar file.
1732genrule_defaults {
1733    name: "art-gtest-jars-uncompress-defaults",
1734    cmd: "$(location zip2zip) -i $(in) -o $(out) -0 'classes*.dex'",
1735    tools: ["zip2zip"],
1736}
1737
1738// Ensure the files are at least 4 byte aligned.
1739genrule_defaults {
1740    name: "art-gtest-jars-align-defaults",
1741    cmd: "$(location zipalign) 4 $(in) $(out)",
1742    tools: ["zipalign"],
1743}
1744
1745// Assemble jar file from smali source.
1746genrule_defaults {
1747    name: "art-gtest-jars-smali-defaults",
1748    cmd: "$(location android-smali) assemble --output $(out) $(in)",
1749    tools: ["android-smali"],
1750}
1751
1752// A copy of Main with the classes.dex stripped for the oat file assistant tests.
1753java_genrule {
1754    name: "art-gtest-jars-MainStripped",
1755    srcs: [":art-gtest-jars-Main"],
1756    cmd: "$(location zip2zip) -i $(in) -o $(out) -x 'classes*.dex'",
1757    out: ["art-gtest-jars-MainStripped.jar"],
1758    tools: ["zip2zip"],
1759}
1760
1761// An empty.dex that is empty and uncompressed for the dex2oat tests.
1762java_genrule {
1763    name: "art-gtest-jars-MainEmptyUncompressed",
1764    srcs: ["Main/empty.dex"],
1765    cmd: "$(location soong_zip) -j -L 0 -o $(out) -f $(in)",
1766    out: ["art-gtest-jars-MainEmptyUncompressed.jar"],
1767    tools: ["soong_zip"],
1768}
1769
1770// An empty.dex that is empty and uncompressed and aligned for the dex2oat tests.
1771java_genrule {
1772    name: "art-gtest-jars-MainEmptyUncompressedAligned",
1773    defaults: ["art-gtest-jars-align-defaults"],
1774    srcs: [":art-gtest-jars-MainEmptyUncompressed"],
1775    out: ["art-gtest-jars-MainEmptyUncompressedAligned.jar"],
1776}
1777
1778// A copy of Main with the classes.dex uncompressed for the dex2oat tests.
1779java_genrule {
1780    name: "art-gtest-jars-MainUncompressed",
1781    defaults: ["art-gtest-jars-uncompress-defaults"],
1782    srcs: [":art-gtest-jars-Main"],
1783    out: ["art-gtest-jars-MainUncompressed.jar"],
1784}
1785
1786// A copy of Main with the classes.dex uncompressed and aligned for the dex2oat tests.
1787java_genrule {
1788    name: "art-gtest-jars-MainUncompressedAligned",
1789    defaults: ["art-gtest-jars-align-defaults"],
1790    srcs: [":art-gtest-jars-MainUncompressed"],
1791    out: ["art-gtest-jars-MainUncompressedAligned.jar"],
1792}
1793
1794java_library {
1795    name: "art-gtest-jars-MultiDex",
1796    srcs: ["MultiDex/**/*.java"],
1797    defaults: ["art-gtest-jars-defaults"],
1798    min_sdk_version: "19",
1799    dxflags: [
1800        "--main-dex-list",
1801        "art/test/MultiDex/main.list",
1802    ],
1803}
1804
1805// A copy of MultiDex with the classes.dex uncompressed for the OatFile tests.
1806java_genrule {
1807    name: "art-gtest-jars-MultiDexUncompressed",
1808    defaults: ["art-gtest-jars-uncompress-defaults"],
1809    srcs: [":art-gtest-jars-MultiDex"],
1810    out: ["art-gtest-jars-MultiDexUncompressed.jar"],
1811}
1812
1813// A copy of MultiDex with the classes.dex uncompressed and aligned for the OatFile tests.
1814java_genrule {
1815    name: "art-gtest-jars-MultiDexUncompressedAligned",
1816    defaults: ["art-gtest-jars-align-defaults"],
1817    srcs: [":art-gtest-jars-MultiDexUncompressed"],
1818    out: ["art-gtest-jars-MultiDexUncompressedAligned.jar"],
1819}
1820
1821java_library {
1822    name: "art-gtest-jars-MultiDexModifiedSecondary",
1823    srcs: ["MultiDexModifiedSecondary/**/*.java"],
1824    defaults: ["art-gtest-jars-defaults"],
1825    min_sdk_version: "19",
1826    dxflags: [
1827        "--main-dex-list",
1828        "art/test/MultiDexModifiedSecondary/main.list",
1829    ],
1830}
1831
1832java_library {
1833    name: "art-gtest-jars-ProfileTestMultiDex",
1834    srcs: ["ProfileTestMultiDex/**/*.java"],
1835    defaults: ["art-gtest-jars-defaults"],
1836    min_sdk_version: "19",
1837    dxflags: [
1838        "--main-dex-list",
1839        "art/test/ProfileTestMultiDex/main.list",
1840    ],
1841}
1842
1843// Smali compiled files.
1844// Since they are not compiled by javac, we use different extension for them.
1845// The .jar extension for them would cause subtle failures in the test infra,
1846// which finds and opens all jar files and expects them to be valid zip files.
1847
1848genrule {
1849    name: "art-gtest-jars-VerifierDeps",
1850    defaults: ["art-gtest-jars-smali-defaults"],
1851    srcs: ["VerifierDeps/**/*.smali"],
1852    out: ["art-gtest-jars-VerifierDeps.dex"],
1853}
1854
1855genrule {
1856    name: "art-gtest-jars-VerifierDepsMulti",
1857    defaults: ["art-gtest-jars-smali-defaults"],
1858    srcs: ["VerifierDepsMulti/**/*.smali"],
1859    out: ["art-gtest-jars-VerifierDepsMulti.dex"],
1860}
1861
1862genrule {
1863    name: "art-gtest-jars-VerifySoftFailDuringClinit",
1864    defaults: ["art-gtest-jars-smali-defaults"],
1865    srcs: ["VerifySoftFailDuringClinit/**/*.smali"],
1866    out: ["art-gtest-jars-VerifySoftFailDuringClinit.dex"],
1867}
1868
1869genrule {
1870    name: "art-gtest-jars-ArrayClassWithUnresolvedComponent",
1871    defaults: ["art-gtest-jars-smali-defaults"],
1872    srcs: ["ArrayClassWithUnresolvedComponent/*.smali"],
1873    out: ["art-gtest-jars-ArrayClassWithUnresolvedComponent.dex"],
1874}
1875
1876genrule {
1877    name: "art-gtest-jars-SuperWithAccessChecks",
1878    defaults: ["art-gtest-jars-smali-defaults"],
1879    srcs: ["SuperWithAccessChecks/*.smali"],
1880    out: ["art-gtest-jars-SuperWithAccessChecks.dex"],
1881}
1882
1883genrule {
1884    name: "art-gtest-jars-LinkageTest",
1885    defaults: ["art-gtest-jars-smali-defaults"],
1886    srcs: ["LinkageTest/*.smali"],
1887    out: ["art-gtest-jars-LinkageTest.dex"],
1888}
1889
1890genrule {
1891    name: "art-gtest-jars-Dex2oatVdexPublicSdkDex",
1892    defaults: ["art-gtest-jars-smali-defaults"],
1893    srcs: ["Dex2oatVdexPublicSdkDex/*.smali"],
1894    out: ["art-gtest-jars-Dex2oatVdexPublicSdkDex.dex"],
1895}
1896
1897build = [
1898    "Android.run-test.bp",
1899]
1900