Generated names.

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

System properties

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"