xref: /aosp_15_r20/art/test/003-omnibus-opcodes/src/MethodCall.java (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker /*
2*795d594fSAndroid Build Coastguard Worker  * Copyright (C) 2008 The Android Open Source Project
3*795d594fSAndroid Build Coastguard Worker  *
4*795d594fSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*795d594fSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*795d594fSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*795d594fSAndroid Build Coastguard Worker  *
8*795d594fSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*795d594fSAndroid Build Coastguard Worker  *
10*795d594fSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*795d594fSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*795d594fSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*795d594fSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*795d594fSAndroid Build Coastguard Worker  * limitations under the License.
15*795d594fSAndroid Build Coastguard Worker  */
16*795d594fSAndroid Build Coastguard Worker 
17*795d594fSAndroid Build Coastguard Worker /**
18*795d594fSAndroid Build Coastguard Worker  * Try different kinds of method calls.
19*795d594fSAndroid Build Coastguard Worker  */
20*795d594fSAndroid Build Coastguard Worker public class MethodCall extends MethodCallBase {
MethodCall()21*795d594fSAndroid Build Coastguard Worker     MethodCall() {
22*795d594fSAndroid Build Coastguard Worker         super();
23*795d594fSAndroid Build Coastguard Worker         System.out.println("  MethodCall ctor");
24*795d594fSAndroid Build Coastguard Worker     }
25*795d594fSAndroid Build Coastguard Worker 
26*795d594fSAndroid Build Coastguard Worker     /* overridden method */
tryThing()27*795d594fSAndroid Build Coastguard Worker     int tryThing() {
28*795d594fSAndroid Build Coastguard Worker         int val = super.tryThing();
29*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(val == 7);
30*795d594fSAndroid Build Coastguard Worker         return val;
31*795d594fSAndroid Build Coastguard Worker     }
32*795d594fSAndroid Build Coastguard Worker 
33*795d594fSAndroid Build Coastguard Worker     /* do-nothing private instance method */
directly()34*795d594fSAndroid Build Coastguard Worker     private void directly() {}
35*795d594fSAndroid Build Coastguard Worker 
36*795d594fSAndroid Build Coastguard Worker     /*
37*795d594fSAndroid Build Coastguard Worker      * Function with many arguments.
38*795d594fSAndroid Build Coastguard Worker      */
manyArgs(int a0, long a1, int a2, long a3, int a4, long a5, int a6, int a7, double a8, float a9, double a10, short a11, int a12, char a13, int a14, int a15, byte a16, boolean a17, int a18, int a19, long a20, long a21, int a22, int a23, int a24, int a25, int a26, String[][] a27, String[] a28, String a29)39*795d594fSAndroid Build Coastguard Worker     static void manyArgs(int a0, long a1, int a2, long a3, int a4, long a5,
40*795d594fSAndroid Build Coastguard Worker         int a6, int a7, double a8, float a9, double a10, short a11, int a12,
41*795d594fSAndroid Build Coastguard Worker         char a13, int a14, int a15, byte a16, boolean a17, int a18, int a19,
42*795d594fSAndroid Build Coastguard Worker         long a20, long a21, int a22, int a23, int a24, int a25, int a26,
43*795d594fSAndroid Build Coastguard Worker         String[][] a27, String[] a28, String a29)
44*795d594fSAndroid Build Coastguard Worker     {
45*795d594fSAndroid Build Coastguard Worker         System.out.println("MethodCalls.manyArgs");
46*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(a0 == 0);
47*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(a9 > 8.99 && a9 < 9.01);
48*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(a16 == -16);
49*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(a25 == 25);
50*795d594fSAndroid Build Coastguard Worker         Main.assertTrue(a29.equals("twenty nine"));
51*795d594fSAndroid Build Coastguard Worker     }
52*795d594fSAndroid Build Coastguard Worker 
run()53*795d594fSAndroid Build Coastguard Worker     public static void run() {
54*795d594fSAndroid Build Coastguard Worker         MethodCall inst = new MethodCall();
55*795d594fSAndroid Build Coastguard Worker 
56*795d594fSAndroid Build Coastguard Worker         MethodCallBase base = inst;
57*795d594fSAndroid Build Coastguard Worker         base.tryThing();
58*795d594fSAndroid Build Coastguard Worker         inst.tryThing();
59*795d594fSAndroid Build Coastguard Worker 
60*795d594fSAndroid Build Coastguard Worker         inst = null;
61*795d594fSAndroid Build Coastguard Worker         try {
62*795d594fSAndroid Build Coastguard Worker             inst.directly();
63*795d594fSAndroid Build Coastguard Worker             Main.assertTrue(false);
64*795d594fSAndroid Build Coastguard Worker         } catch (NullPointerException npe) {
65*795d594fSAndroid Build Coastguard Worker             // good
66*795d594fSAndroid Build Coastguard Worker         }
67*795d594fSAndroid Build Coastguard Worker 
68*795d594fSAndroid Build Coastguard Worker         manyArgs(0, 1L, 2, 3L, 4, 5L, 6, 7, 8.0, 9.0f, 10.0, (short)11, 12,
69*795d594fSAndroid Build Coastguard Worker             (char)13, 14, 15, (byte)-16, true, 18, 19, 20L, 21L, 22, 23, 24,
70*795d594fSAndroid Build Coastguard Worker             25, 26, null, null, "twenty nine");
71*795d594fSAndroid Build Coastguard Worker     }
72*795d594fSAndroid Build Coastguard Worker }
73*795d594fSAndroid Build Coastguard Worker 
74*795d594fSAndroid Build Coastguard Worker class MethodCallBase {
MethodCallBase()75*795d594fSAndroid Build Coastguard Worker     MethodCallBase() {
76*795d594fSAndroid Build Coastguard Worker         System.out.println("  MethodCallBase ctor");
77*795d594fSAndroid Build Coastguard Worker     }
78*795d594fSAndroid Build Coastguard Worker 
tryThing()79*795d594fSAndroid Build Coastguard Worker     int tryThing() {
80*795d594fSAndroid Build Coastguard Worker         return 7;
81*795d594fSAndroid Build Coastguard Worker     }
82*795d594fSAndroid Build Coastguard Worker }
83