/* Copyright (c) 2007 Timothy Wall, All Rights Reserved
*
* The contents of this file is dual-licensed under 2
* alternative Open Source/Free licenses: LGPL 2.1 or later and
* Apache License 2.0. (starting with JNA version 4.0.0).
*
* You can freely decide which license you want to apply to
* the project.
*
* You may obtain a copy of the LGPL License at:
*
* http://www.gnu.org/licenses/licenses.html
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "LGPL2.1".
*
* You may obtain a copy of the Apache License at:
*
* http://www.apache.org/licenses/
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "AL2.0".
*/
package com.sun.jna;
import junit.framework.TestCase;
public class VMCrashProtectionTest extends TestCase {
private boolean savedProtected = Boolean.getBoolean("jna.protected");
protected void setUp() {
Native.setProtected(true);
}
protected void tearDown() {
Native.setProtected(savedProtected);
}
public void testAccessViolation() {
if (!Native.isProtected())
return;
Memory m = new Memory(Pointer.SIZE);
if (Pointer.SIZE == 4)
m.setInt(0, 1);
else
m.setLong(0, 1);
Pointer p = m.getPointer(0);
try {
p.setInt(0, 0);
fail("Exception should be thrown");
}
catch(Throwable e) {
}
}
public static void main(String[] args) {
junit.textui.TestRunner.run(VMCrashProtectionTest.class);
}
}