Add a filegroup and a resource jar referenced from cts/hostsidetests/jvmti

Bug: 122332514
Test: treehugger
Change-Id: I2603d43c52fc32c4ce8ffccbcc1990eecac449d1
diff --git a/test/Android.bp b/test/Android.bp
index a5d63c2..5460b3a 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -437,7 +437,7 @@
     name: "libtistressds",
     defaults: [
         "art_debug_defaults",
-        "libtistress-static-defaults"
+        "libtistress-static-defaults",
     ],
     static_libs: ["libartbased"],
 }
@@ -544,3 +544,229 @@
     header_libs: ["libnativebridge-headers"],
     srcs: ["115-native-bridge/nativebridge.cc"],
 }
+
+filegroup {
+    name: "art_cts_jvmti_test_library",
+    srcs: [
+        // shim classes. We use one that exposes the common functionality.
+        "902-hello-transformation/src/art/Redefinition.java",
+        "903-hello-tagging/src/art/Main.java",
+        "989-method-trace-throw/src/art/Trace.java",
+        "993-breakpoints/src/art/Breakpoint.java",
+        "1902-suspend/src/art/Suspension.java",
+        "1911-get-local-var-table/src/art/Locals.java",
+        "1912-get-set-local-primitive/src/art/StackTrace.java",
+        "1923-frame-pop/src/art/FramePop.java",
+        "1927-exception-event/src/art/Exceptions.java",
+        "1930-monitor-info/src/art/Monitors.java",
+        "1934-jvmti-signal-thread/src/art/Threads.java",
+
+        // Actual test classes.
+        "901-hello-ti-agent/src/art/Test901.java",
+        "902-hello-transformation/src/art/Test902.java",
+        "903-hello-tagging/src/art/Test903.java",
+        "904-object-allocation/src/art/Test904.java",
+        "905-object-free/src/art/Test905.java",
+        "906-iterate-heap/src/art/Test906.java",
+        "907-get-loaded-classes/src/art/Test907.java",
+        "907-get-loaded-classes/src/art/Cerr.java",
+        "908-gc-start-finish/src/art/Test908.java",
+        "910-methods/src/art/Test910.java",
+        "911-get-stack-trace/src/art/Test911.java",
+        "911-get-stack-trace/src/art/AllTraces.java",
+        "911-get-stack-trace/src/art/ControlData.java",
+        "911-get-stack-trace/src/art/Frames.java",
+        "911-get-stack-trace/src/art/OtherThread.java",
+        "911-get-stack-trace/src/art/PrintThread.java",
+        "911-get-stack-trace/src/art/Recurse.java",
+        "911-get-stack-trace/src/art/SameThread.java",
+        "911-get-stack-trace/src/art/ThreadListTraces.java",
+        "912-classes/src-art/art/Test912.java",
+        "912-classes/src-art/art/DexData.java",
+        "913-heaps/src/art/Test913.java",
+        "914-hello-obsolescence/src/art/Test914.java",
+        "915-obsolete-2/src/art/Test915.java",
+        "917-fields-transformation/src/art/Test917.java",
+        "918-fields/src/art/Test918.java",
+        "919-obsolete-fields/src/art/Test919.java",
+        "920-objects/src/art/Test920.java",
+        "922-properties/src/art/Test922.java",
+        "923-monitors/src/art/Test923.java",
+        "924-threads/src/art/Test924.java",
+        "925-threadgroups/src/art/Test925.java",
+        "926-multi-obsolescence/src/art/Test926.java",
+        "927-timers/src/art/Test927.java",
+        "928-jni-table/src/art/Test928.java",
+        "930-hello-retransform/src/art/Test930.java",
+        "931-agent-thread/src/art/Test931.java",
+        "932-transform-saves/src/art/Test932.java",
+        "933-misc-events/src/art/Test933.java",
+        "940-recursive-obsolete/src/art/Test940.java",
+        "942-private-recursive/src/art/Test942.java",
+        "944-transform-classloaders/src/art/Test944.java",
+        "945-obsolete-native/src/art/Test945.java",
+        "947-reflect-method/src/art/Test947.java",
+        "951-threaded-obsolete/src/art/Test951.java",
+        "982-ok-no-retransform/src/art/Test982.java",
+        "983-source-transform-verify/src/art/Test983.java",
+        "984-obsolete-invoke/src/art/Test984.java",
+        "985-re-obsolete/src/art/Test985.java",
+        "986-native-method-bind/src/art/Test986.java",
+        "988-method-trace/src/art/Test988.java",
+        "988-method-trace/src/art/Test988Intrinsics.java",
+        "989-method-trace-throw/src/art/Test989.java",
+        "990-field-trace/src/art/Test990.java",
+        "991-field-trace-2/src/art/Test991.java",
+        "992-source-data/src/art/Test992.java",
+        "992-source-data/src/art/Target2.java",
+        "993-breakpoints/src/art/Test993.java",
+        "994-breakpoint-line/src/art/Test994.java",
+        "995-breakpoints-throw/src/art/Test995.java",
+        "996-breakpoint-obsolete/src/art/Test996.java",
+        "997-single-step/src/art/Test997.java",
+        "1900-track-alloc/src/art/Test1900.java",
+        "1901-get-bytecodes/src/art/Test1901.java",
+        "1902-suspend/src/art/Test1902.java",
+        "1903-suspend-self/src/art/Test1903.java",
+        "1904-double-suspend/src/art/Test1904.java",
+        "1906-suspend-list-me-first/src/art/Test1906.java",
+        "1907-suspend-list-self-twice/src/art/Test1907.java",
+        "1908-suspend-native-resume-self/src/art/Test1908.java",
+        "1909-per-agent-tls/src/art/Test1909.java",
+        "1910-transform-with-default/src/art/Test1910.java",
+        "1911-get-local-var-table/src/art/Test1911.java",
+        "1912-get-set-local-primitive/src/art/Test1912.java",
+        "1913-get-set-local-objects/src/art/Test1913.java",
+        "1914-get-local-instance/src/art/Test1914.java",
+        "1915-get-set-local-current-thread/src/art/Test1915.java",
+        "1916-get-set-current-frame/src/art/Test1916.java",
+        "1917-get-stack-frame/src/art/Test1917.java",
+        "1920-suspend-native-monitor/src/art/Test1920.java",
+        "1921-suspend-native-recursive-monitor/src/art/Test1921.java",
+        "1922-owned-monitors-info/src/art/Test1922.java",
+        "1923-frame-pop/src/art/Test1923.java",
+        "1924-frame-pop-toggle/src/art/Test1924.java",
+        "1925-self-frame-pop/src/art/Test1925.java",
+        "1926-missed-frame-pop/src/art/Test1926.java",
+        "1927-exception-event/src/art/Test1927.java",
+        "1928-exception-event-exception/src/art/Test1928.java",
+        "1930-monitor-info/src/art/Test1930.java",
+        "1931-monitor-events/src/art/Test1931.java",
+        "1932-monitor-events-misc/src/art/Test1932.java",
+        "1933-monitor-current-contended/src/art/Test1933.java",
+        "1934-jvmti-signal-thread/src/art/Test1934.java",
+        "1936-thread-end-events/src/art/Test1936.java",
+        "1937-transform-soft-fail/src/art/Test1937.java",
+        "1939-proxy-frames/src/art/Test1939.java",
+        "1941-dispose-stress/src/art/Test1941.java",
+        "1942-suspend-raw-monitor-exit/src/art/Test1942.java",
+        "1943-suspend-raw-monitor-wait/src/art/Test1943.java",
+        "1953-pop-frame/src/art/Test1953.java",
+        "1958-transform-try-jit/src/art/Test1958.java",
+    ],
+}
+
+// CTS test runner in cts/hostsidetests/jvmti looks for an expected test
+// result for the test NN in the file results.NN.expected.txt while in the
+// source tree each expected test result is in the NN-xxxx/expected.txt.
+// Copy+rename them them to a temporary directory and them zip them.
+java_genrule {
+    name: "expected_cts_outputs",
+    srcs: [
+        "901-hello-ti-agent/expected.txt",
+        "902-hello-transformation/expected.txt",
+        "903-hello-tagging/expected.txt",
+        "904-object-allocation/expected.txt",
+        "905-object-free/expected.txt",
+        "906-iterate-heap/expected.txt",
+        "907-get-loaded-classes/expected.txt",
+        "908-gc-start-finish/expected.txt",
+        "910-methods/expected.txt",
+        "911-get-stack-trace/expected.txt",
+        "912-classes/expected.txt",
+        "913-heaps/expected.txt",
+        "914-hello-obsolescence/expected.txt",
+        "915-obsolete-2/expected.txt",
+        "917-fields-transformation/expected.txt",
+        "918-fields/expected.txt",
+        "919-obsolete-fields/expected.txt",
+        "920-objects/expected.txt",
+        "922-properties/expected.txt",
+        "923-monitors/expected.txt",
+        "924-threads/expected.txt",
+        "925-threadgroups/expected.txt",
+        "926-multi-obsolescence/expected.txt",
+        "927-timers/expected.txt",
+        "928-jni-table/expected.txt",
+        "930-hello-retransform/expected.txt",
+        "931-agent-thread/expected.txt",
+        "932-transform-saves/expected.txt",
+        "933-misc-events/expected.txt",
+        "940-recursive-obsolete/expected.txt",
+        "942-private-recursive/expected.txt",
+        "944-transform-classloaders/expected.txt",
+        "945-obsolete-native/expected.txt",
+        "947-reflect-method/expected.txt",
+        "951-threaded-obsolete/expected.txt",
+        "982-ok-no-retransform/expected.txt",
+        "983-source-transform-verify/expected.txt",
+        "984-obsolete-invoke/expected.txt",
+        "985-re-obsolete/expected.txt",
+        "986-native-method-bind/expected.txt",
+        "988-method-trace/expected.txt",
+        "989-method-trace-throw/expected.txt",
+        "990-field-trace/expected.txt",
+        "991-field-trace-2/expected.txt",
+        "992-source-data/expected.txt",
+        "993-breakpoints/expected.txt",
+        "994-breakpoint-line/expected.txt",
+        "995-breakpoints-throw/expected.txt",
+        "996-breakpoint-obsolete/expected.txt",
+        "997-single-step/expected.txt",
+        "1900-track-alloc/expected.txt",
+        "1901-get-bytecodes/expected.txt",
+        "1902-suspend/expected.txt",
+        "1903-suspend-self/expected.txt",
+        "1904-double-suspend/expected.txt",
+        "1906-suspend-list-me-first/expected.txt",
+        "1907-suspend-list-self-twice/expected.txt",
+        "1908-suspend-native-resume-self/expected.txt",
+        "1909-per-agent-tls/expected.txt",
+        "1910-transform-with-default/expected.txt",
+        "1911-get-local-var-table/expected.txt",
+        "1912-get-set-local-primitive/expected.txt",
+        "1913-get-set-local-objects/expected.txt",
+        "1914-get-local-instance/expected.txt",
+        "1915-get-set-local-current-thread/expected.txt",
+        "1916-get-set-current-frame/expected.txt",
+        "1917-get-stack-frame/expected.txt",
+        "1920-suspend-native-monitor/expected.txt",
+        "1921-suspend-native-recursive-monitor/expected.txt",
+        "1922-owned-monitors-info/expected.txt",
+        "1923-frame-pop/expected.txt",
+        "1924-frame-pop-toggle/expected.txt",
+        "1925-self-frame-pop/expected.txt",
+        "1926-missed-frame-pop/expected.txt",
+        "1927-exception-event/expected.txt",
+        "1928-exception-event-exception/expected.txt",
+        "1930-monitor-info/expected.txt",
+        "1931-monitor-events/expected.txt",
+        "1932-monitor-events-misc/expected.txt",
+        "1933-monitor-current-contended/expected.txt",
+        "1934-jvmti-signal-thread/expected.txt",
+        "1936-thread-end-events/expected.txt",
+        "1937-transform-soft-fail/expected.txt",
+        "1939-proxy-frames/expected.txt",
+        "1941-dispose-stress/expected.txt",
+        "1942-suspend-raw-monitor-exit/expected.txt",
+        "1943-suspend-raw-monitor-wait/expected.txt",
+        "1953-pop-frame/expected.txt",
+        "1958-transform-try-jit/expected.txt",
+    ],
+    out: ["expected_cts_outputs.jar"],
+    tools: ["soong_zip"],
+    cmd: "rm -rf $(genDir)/res && mkdir -p $(genDir)/res && " +
+        "for f in $(in); do x=$${f#art/test/}; " +
+        "cp $$f $(genDir)/res/results.$${x%%-*}.expected.txt; done && " +
+        "$(location soong_zip) -o $(out) -C $(genDir)/res -D $(genDir)/res",
+}