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