package javax.safetycritical.test;
import javax.safetycritical.StorageParameters;
import javax.scj.util.Const;
import org.jmlspecs.utils.JmlAssertionError;
import test.BasicJMLTest;
import unitTest.TestCase;
import unitTest.TestResult;
import unitTest.TestSuite;
public class TckTestStorageParameters extends BasicJMLTest {
public static void main(String[] args) {
Const.setDefaultErrorReporter();
TestSuite suite = new TestSuite();
TestResult result = new TestResult();
int numberOfCases = TestStorageParameters.testCount;
TestCase test = new TestStorageParameters(result, numberOfCases);
suite.addTest(test);
suite.run(result);
result.print(test.getClass().getName(), numberOfCases);
if (result.JMLerrorCount() + result.errorCount() == 0)
{
args = null;
}
}
@Override
public String getJMLAnnotationCommand() {
return "java -jar WORKSPACE/OpenJMLTest/lib/openjml.jar -cp ICECAPSDK/bin/ -d ICECAPSDK/bin/ -noInternalSpecs -rac -racCheckAssumptions -racJavaChecks -nullableByDefault -showNotImplemented -specspath ./specs ICECAPSDK/src/javax/safetycritical/StorageParameters.java";
}
}
class TestStorageParameters extends TestCase
{
static final int testCount = 23;
TestStorageParameters(TestResult result,int testCount)
{
super (result, testCount);
}
public void test (int i)
{
switch (i) {
// public StorageParameters(long totalBackingStore, long [] sizes,
// int messageLength, int stackTraceLength,
// long maxMemoryArea, long maxImmortal, long maxMissionMemory)
case 1:
new StorageParameters (1L, new long[] {}, 0, 0, 0, 0, 0);
break;
case 2:
new StorageParameters (1L, new long[] {1L}, 0, 0, 0, 0, 0);
break;
case 3:
new StorageParameters (1L, null, 0, 0, 0, 0, 0);
break;
case 4:
try { new StorageParameters (0, new long[] {1L}, 0, 0, 0, 0, 0);
assert false; }
catch (JmlAssertionError e){}; break;
case 5:
new StorageParameters (1L, new long[]{ 0, 2L }, 0, 0, 0, 0, 0);
break;
case 6:
try { new StorageParameters (0, new long[] {1L}, 0, 0, 0, 0, 0);
assert false; }
catch (JmlAssertionError e){}; break;
case 7:
try { new StorageParameters (1L, new long[]{ -2L }, 0, 0, 0, 0, 0);
assert false;}
catch (JmlAssertionError e){}; break;
case 8:
try { new StorageParameters (1L, new long[]{ 1L }, -1, 0, 0, 0, 0);
assert false;}
catch (JmlAssertionError e){}; break;
case 9:
try { new StorageParameters (1L, new long[]{ 1L }, 0, -1, 0, 0, 0);
assert false;}
catch (JmlAssertionError e){}; break;
case 10:
new StorageParameters (1L, new long[]{ 1L }, 1, 1, 1L, 1L, 1L);
break;
case 11:
new StorageParameters (1L, new long[]{ 1L }, 1, 1, StorageParameters.NO_MAX, StorageParameters.NO_MAX, 0);
break;
case 12:
try { new StorageParameters (1L, new long[]{ 1L }, 1, 1, 0, 0, -1L);
assert false;}
catch (JmlAssertionError e){}; break;
case 13:
try { new StorageParameters (1L, new long[]{ 1L }, 1, 1, -2L, 0, 0);
assert false;}
catch (IllegalArgumentException e){ };
break;
case 14:
try { new StorageParameters (1L, new long[]{ 1L }, 1, 1, 0, -2L, 0);
assert false;}
catch (IllegalArgumentException e){}; break;
// public StorageParameters(long totalBackingStore, long [] sizes,
// long maxMemoryArea, long maxImmortal, long maxMissionMemory)
case 15:
new StorageParameters (1L, null, 0, 0, 0);
break;
case 16:
try{new StorageParameters (0, null, 0, 0, 0); assert false;}
catch (JmlAssertionError e){}; break;
case 17:
try{new StorageParameters (1L, new long[]{ -2L }, 0, 0, 0); assert false;}
catch (JmlAssertionError e){}; break;
case 18:
new StorageParameters (1L, new long[]{ 0, 1L }, 0, 0, 0);
break;
case 19:
new StorageParameters (1L, new long[]{ 1L }, 1L, 1L, 1L);
break;
case 20:
new StorageParameters (1L, new long[]{ 1L }, StorageParameters.NO_MAX, StorageParameters.NO_MAX, 0);
break;
case 21:
try{new StorageParameters (1L, new long[]{ 1L }, 0, 0, -1L); assert false;}
catch (JmlAssertionError e){}; break;
case 22:
try{new StorageParameters (1L, new long[]{ 1L }, -2L, 0, 0); assert false;}
catch (IllegalArgumentException e){}; break;
case 23:
try{new StorageParameters (1L, new long[]{ 1L }, 0, -2L, 0); assert false;}
catch (IllegalArgumentException e){}; break;
default: break;
}
}
}