Test a complete failure of the JVM
Say you want to test that your application behaves correctly on restart even after the application crashes. One approach is to trigger a crash in test code and check that data is in a correctable state on restart.
Unsafe unsafe = getUnsafe(); // use reflection unsafe.setMemory(0, 1, (byte) 0);This triggers a SIGSEGV
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00000032b967ae09, pid=17870, tid=1082034496 # # JRE version: 7.0_01-b08 # Java VM: Java HotSpot(TM) 64-Bit Server VM (21.1-b02 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libc.so.6+0x7ae09] memset+0x9 #If your tests still pass, you can be reasonably confident it is recoverable even on a complete failure of the JVM.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)