1474484 change committed to support the not calling of safeRelease() on Variant constant objects.
This commit is contained in:
@@ -2,10 +2,99 @@ package com.jacob.com;
|
||||
|
||||
/**
|
||||
* runs through some of the get and set methods on Variant
|
||||
*
|
||||
* -Djava.library.path=d:/jacob/release -Dcom.jacob.debug=false
|
||||
*/
|
||||
class VariantTest {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Testing Started");
|
||||
VariantTest testJig = new VariantTest();
|
||||
testJig.testPutsAndGets();
|
||||
testJig.testSafeReleaseBoolean();
|
||||
testJig.testSafeReleaseConstant();
|
||||
testJig.testSafeReleaseString();
|
||||
|
||||
System.out.println("Testing Complete");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* dummy constructor
|
||||
*
|
||||
*/
|
||||
public VariantTest(){
|
||||
|
||||
}
|
||||
|
||||
private void testSafeReleaseBoolean(){
|
||||
Variant v = new Variant(true);
|
||||
System.out.println("Newly created Variant ("+ v.getBoolean()+") "+
|
||||
"trying to create access violation but it doesn't seem to be easy");
|
||||
v.safeRelease();
|
||||
if (v.getBoolean() != true){
|
||||
System.out.println("Variant value ("+v.getBoolean()+") "
|
||||
+"has been broken by SafeRelease()");
|
||||
} else {
|
||||
System.out.println("Variant value ("+v.getBoolean()+") "
|
||||
+"has survived SafeRelease()");
|
||||
}
|
||||
for ( int i = 0 ; i < 20000; i ++){
|
||||
new Variant ("xxx"+i);
|
||||
new Variant(i);
|
||||
new Variant ("yyy"+i);
|
||||
}
|
||||
ComThread.Release();
|
||||
if (v.getBoolean() != true){
|
||||
System.out.println("Variant value ("+v.getBoolean()+") "
|
||||
+"has been broken by ComThread.Release()");
|
||||
} else {
|
||||
System.out.println("Variant value ("+v.getBoolean()+") "
|
||||
+"has been survived by ComThread.Release()");
|
||||
}
|
||||
}
|
||||
|
||||
private void testSafeReleaseConstant(){
|
||||
System.out.println("Using Static constant Variant - should never throw access violation");
|
||||
Variant.VT_TRUE.safeRelease();
|
||||
if (Variant.VT_TRUE.getBoolean() != true){
|
||||
System.out.println("VT_TRUE has been broken by SafeRelease()");
|
||||
} else {
|
||||
System.out.println("VT_TRUE survived SafeRelease()");
|
||||
}
|
||||
for ( int i = 0 ; i < 20000; i ++){
|
||||
new Variant ("xxx"+i);
|
||||
new Variant(i);
|
||||
new Variant ("yyy"+i);
|
||||
}
|
||||
ComThread.Release();
|
||||
if (Variant.VT_TRUE.getBoolean() != true){
|
||||
System.out.println("VT_TRUE has been broken by ComThread.Release()");
|
||||
} else {
|
||||
System.out.println("VT_TRUE survived ComThread.Release()");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void testSafeReleaseString(){
|
||||
String mTestString = "Guitar Hero";
|
||||
Variant v = new Variant(mTestString);
|
||||
System.out.println("Newly created Variant ("+ v.getString()+") "+
|
||||
"trying to create access violation but it doesn't seem to be easy");
|
||||
v.safeRelease();
|
||||
if (v.getString() == null || !v.getString().equals(mTestString)){
|
||||
System.out.println("Variant value ("+v.getString()+") "
|
||||
+"has been broken by SafeRelease()");
|
||||
} else {
|
||||
System.out.println("Variant value ("+v.getString()+") "
|
||||
+"has survived SafeRelease()");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* tests put and get methods looking for obvious defects
|
||||
*
|
||||
*/
|
||||
private void testPutsAndGets(){
|
||||
Variant v = new Variant();
|
||||
v.putInt(10);
|
||||
if (v.toInt() != 10){
|
||||
@@ -59,7 +148,6 @@ class VariantTest {
|
||||
System.out.println("putNothing is supposed to cause isNull() to return true");
|
||||
}
|
||||
|
||||
System.out.println("Testing Complete");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user