diff options
Diffstat (limited to 'test/987-agent-bind/src')
-rw-r--r-- | test/987-agent-bind/src/Main.java | 21 | ||||
-rw-r--r-- | test/987-agent-bind/src/art/Main.java | 28 | ||||
-rw-r--r-- | test/987-agent-bind/src/art/Test987.java | 42 |
3 files changed, 91 insertions, 0 deletions
diff --git a/test/987-agent-bind/src/Main.java b/test/987-agent-bind/src/Main.java new file mode 100644 index 0000000000..9ce6242c62 --- /dev/null +++ b/test/987-agent-bind/src/Main.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +public class Main { + public static void main(String[] args) throws Exception { + art.Test987.run(); + } +} diff --git a/test/987-agent-bind/src/art/Main.java b/test/987-agent-bind/src/art/Main.java new file mode 100644 index 0000000000..8b01920638 --- /dev/null +++ b/test/987-agent-bind/src/art/Main.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package art; + +// Binder class so the agent's C code has something that can be bound and exposed to tests. +// In a package to separate cleanly and work around CTS reference issues (though this class +// should be replaced in the CTS version). +public class Main { + // Load the given class with the given classloader, and bind all native methods to corresponding + // C methods in the agent. Will abort if any of the steps fail. + public static native void bindAgentJNI(String className, ClassLoader classLoader); + // Same as above, giving the class directly. + public static native void bindAgentJNIForClass(Class<?> klass); +} diff --git a/test/987-agent-bind/src/art/Test987.java b/test/987-agent-bind/src/art/Test987.java new file mode 100644 index 0000000000..ae97ff25c3 --- /dev/null +++ b/test/987-agent-bind/src/art/Test987.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package art; + +public class Test987 { + // A class with a native method we can play with. + static class Transform { + private static native void sayHi(); + private static native void sayHi2(); + } + + public static void run() throws Exception { + doTest(); + } + + public static void doTest() throws Exception { + Transform.sayHi(); + Transform.sayHi2(); + } + // Functions called from native code. + public static void doSayHi() { + System.out.println("Hello"); + } + + public static void doSayHi2() { + System.out.println("Hello - 2"); + } +} |