14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @requires vm.compMode != "Xcomp"
27 * @summary Verifies behaviour of Unsafe.allocateMemory
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:MallocMaxTestWords=100m AllocateMemory
32 */
33
34 import jdk.test.lib.unsafe.UnsafeHelper;
35 import jdk.internal.misc.Unsafe;
36 import static jdk.test.lib.Asserts.*;
37
38 public class AllocateMemory {
39 public static void main(String args[]) throws Exception {
40 Unsafe unsafe = UnsafeHelper.getUnsafe();
41
42 // Allocate a byte, write to the location and read back the value
43 long address = unsafe.allocateMemory(1);
44 assertNotEquals(address, 0L);
45
46 unsafe.putByte(address, Byte.MAX_VALUE);
47 assertEquals(Byte.MAX_VALUE, unsafe.getByte(address));
48 unsafe.freeMemory(address);
49
50 // Call to allocateMemory() with a negative value should result in an IllegalArgumentException
51 try {
52 address = unsafe.allocateMemory(-1);
53 throw new RuntimeException("Did not get expected IllegalArgumentException");
54 } catch (IllegalArgumentException e) {
55 // Expected
56 assertNotEquals(address, 0L);
57 }
58
59 // allocateMemory() should throw an OutOfMemoryError when the underlying malloc fails,
60 // we test this by limiting the malloc using -XX:MallocMaxTestWords
|
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @requires vm.compMode != "Xcomp"
27 * @summary Verifies behaviour of Unsafe.allocateMemory
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:MallocMaxTestWords=100m AllocateMemory
32 */
33
34 import jdk.internal.misc.Unsafe;
35 import static jdk.test.lib.Asserts.*;
36
37 public class AllocateMemory {
38 public static void main(String args[]) throws Exception {
39 Unsafe unsafe = Unsafe.getUnsafe();
40
41 // Allocate a byte, write to the location and read back the value
42 long address = unsafe.allocateMemory(1);
43 assertNotEquals(address, 0L);
44
45 unsafe.putByte(address, Byte.MAX_VALUE);
46 assertEquals(Byte.MAX_VALUE, unsafe.getByte(address));
47 unsafe.freeMemory(address);
48
49 // Call to allocateMemory() with a negative value should result in an IllegalArgumentException
50 try {
51 address = unsafe.allocateMemory(-1);
52 throw new RuntimeException("Did not get expected IllegalArgumentException");
53 } catch (IllegalArgumentException e) {
54 // Expected
55 assertNotEquals(address, 0L);
56 }
57
58 // allocateMemory() should throw an OutOfMemoryError when the underlying malloc fails,
59 // we test this by limiting the malloc using -XX:MallocMaxTestWords
|