Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/test/functional/Jsr292/src/com/ibm/j9/jsr292/InsertArgumentsTests.java
6007 views
1
/*******************************************************************************
2
* Copyright (c) 2001, 2018 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made available under
5
* the terms of the Eclipse Public License 2.0 which accompanies this
6
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
7
* or the Apache License, Version 2.0 which accompanies this distribution and
8
* is available at https://www.apache.org/licenses/LICENSE-2.0.
9
*
10
* This Source Code may also be made available under the following
11
* Secondary Licenses when the conditions for such availability set
12
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
13
* General Public License, version 2 with the GNU Classpath
14
* Exception [1] and GNU General Public License, version 2 with the
15
* OpenJDK Assembly Exception [2].
16
*
17
* [1] https://www.gnu.org/software/classpath/license.html
18
* [2] http://openjdk.java.net/legal/assembly-exception.html
19
*
20
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
21
*******************************************************************************/
22
package com.ibm.j9.jsr292;
23
24
import org.testng.annotations.Test;
25
import org.testng.AssertJUnit;
26
import static java.lang.invoke.MethodHandles.*;
27
import java.lang.invoke.MethodHandle;
28
29
public class InsertArgumentsTests {
30
31
public static MethodHandle handle = identity(Object[].class);
32
33
@Test(groups = { "level.extended" })
34
public static void test_insert_no_values() throws Throwable{
35
MethodHandle mh = insertArguments(handle, 0);
36
AssertJUnit.assertTrue("inserting no args should be a no op", mh == handle);
37
Object[] value = (Object[]) mh.invokeExact(new Object[0]);
38
AssertJUnit.assertNotNull(value);
39
}
40
41
@Test(groups = { "level.extended" })
42
public static void test_insert_location_IAE() {
43
boolean IAE = false;
44
try {
45
insertArguments(handle, 5 /* invalid index */);
46
} catch (IllegalArgumentException e) {
47
IAE = true;
48
}
49
AssertJUnit.assertTrue(IAE);
50
}
51
52
@Test(groups = { "level.extended" })
53
public static void test_insert_values_NPE() {
54
boolean NPE = false;
55
try {
56
/* Ensure NPE for null values occurs before IAE for invalid index to match RI */
57
insertArguments(handle, 5 /* invalid index */, (Object[])null);
58
} catch (NullPointerException e) {
59
NPE = true;
60
}
61
AssertJUnit.assertTrue(NPE);
62
}
63
64
@Test(groups = { "level.extended" })
65
public static void test_insert_handle_NPE() {
66
boolean NPE = false;
67
try {
68
/* Ensure NPE for null handle occurs before IAE for invalid index to match RI */
69
insertArguments(null, 5 /* invalid index */, (Object[])null);
70
} catch (NullPointerException e) {
71
NPE = true;
72
}
73
AssertJUnit.assertTrue(NPE);
74
}
75
}
76
77