This table shows the names that are generated that might collide with names in instrumented source code. Do not use these names. If there are problems with the names choosen here, please emailme and I'll see what I can do to keep them from colliding. I've created these names to follow standard naming conventions for java source code so that if the code is run through a tool, like jtest, that checks these things the instrumented code doesn't generate unneeded errors. All generated variables and methods will be prepended with jps_. Some are listed in the following table. I've also been writing down skeletons of my instrumented code in MethodSkeletons. This should help explain what's going on.
name | description |
---|---|
jps__<packageName>_<className>_check<methodName>PreConditions | Name of method used to check preconditions on a method |
jps__<packageName>_<className>_check<methodName>PostConditions | Name of method used to check postconditions on a method |
jps__<packageName>_<className>_checkInvariant | Name of method used to check invariants on a class |
jps__retval<className> | Variable used to store the return value of a method so that it may be used when checking postconditions and still be returned from the method |
JPS_<packageName>_<className>_AssertDummy<count> | Name of class generated to check preconditions on constructors. count is incremented for each constructor in a class |
jps_dummy<count> | Name of extra parameters created to uniquify generated constructors. count is incremented for each parameter added to a particular constructor |
JPS__<packageName>_<className>_AssertClass | Name of class generated to check conditions on interfaces |
This table shows the properties that are used by the instrumented code and their meanings. That is these properties are checked when the instrumented code is run, NOT when the code is instrumented by JonsAssert.
Note: These properties must be set on the commandline.
property | description |
---|---|
ENFORCE_ASSERT_CONDITION | If "FALSE", then ignore inline assert checks. Default value is "TRUE". |
ENFORCE_INVARIANT_CONDITION | If "FALSE", then ignore invariant checks. Default value is "TRUE". |
ENFORCE_POST_CONDITION | If "FALSE", then ignore post condition checks. Default value is "TRUE". |
ENFORCE_PRE_CONDITION | If "FALSE", then ignore pre condition checks. Default value is "TRUE". |
ENFORCE_INHERITED_CONDITIONS | If "FALSE", then the instrumented code will not walk the inheritance heirarchy looking for pre/post/invariant conditions when checking the conditions for a class. Default value is "TRUE". This is useful for speeding up the instrumented code while sacrificing a completly accurate run. One way to use this is to set this to FALSE when doing every day development and leave it at TRUE when running in nightly test runs. |
ASSERT_BEHAVIOR | If "CONTINUE", print out a stack trace and continue. If "EXCEPTION", throw an {@link net.mtu.eggplant.dbc.AssertionViolation} If "EXIT" or unset, print a stack trace and call System.exit(1). Default value is "EXIT" |