/* Copyright (c) 2007 Timothy Wall, All Rights Reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package com.sun.jna;
import junit.framework.TestCase;
// TODO: add more platforms
public class VMCrashProtectionTest extends TestCase {
protected void setUp() {
Native.setProtected(true);
}
protected void tearDown() {
Native.setProtected(false);
}
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);
}
}