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