1474484 change committed to support the not calling of safeRelease() on Variant constant objects.

This commit is contained in:
clay_shooter
2006-04-23 20:35:26 +00:00
parent 5b807839cd
commit 0db059858a
3 changed files with 210 additions and 36 deletions

View File

@@ -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");
}
}