org.jacoco.core.runtime
Class SystemPropertiesRuntime
java.lang.Object
org.jacoco.core.runtime.AbstractRuntime
org.jacoco.core.runtime.SystemPropertiesRuntime
- All Implemented Interfaces:
- IExecutionDataAccessorGenerator, IRuntime
public class SystemPropertiesRuntime
- extends AbstractRuntime
This IRuntime
implementation makes the execution data available
through a special entry of the type Map
in the
System.getProperties()
hash table. The advantage is, that the
instrumented classes do not get dependencies to other classes than the JRE
library itself.
This runtime may cause problems in environments with security restrictions,
in applications that replace the system properties or in applications that
fail if non-String values are placed in the system properties.
- Version:
- $Revision: $
- Author:
- Marc R. Hoffmann
Method Summary |
int |
generateDataAccessor(long classid,
String classname,
int probecount,
MethodVisitor mv)
This method generates the byte code required to obtain the coverage data
structure for the class with the given id. |
void |
shutdown()
Allows the coverage runtime to cleanup internals. |
void |
startup()
Starts the coverage runtime. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SystemPropertiesRuntime
public SystemPropertiesRuntime()
- Creates a new runtime.
generateDataAccessor
public int generateDataAccessor(long classid,
String classname,
int probecount,
MethodVisitor mv)
- Description copied from interface:
IExecutionDataAccessorGenerator
- This method generates the byte code required to obtain the coverage data
structure for the class with the given id. Typically the instrumentation
process will embed this code into a method that is called on class
initialization. This method can be called at any time even outside the
target VM.
The generated code must push a
boolean[]
instance to the
operand stack. Except this result object the generated code must not make
any assumptions about the structure of the embedding method or class. The
generated code must not use or allocate local variables.
- Parameters:
classid
- identifier of the classclassname
- VM class nameprobecount
- probe count for this classmv
- code output
- Returns:
- additional stack size required by the implementation, including
the instance pushed to the stack
startup
public void startup()
- Description copied from interface:
IRuntime
- Starts the coverage runtime. This method MUST be called before any class
instrumented for this runtime is loaded.
shutdown
public void shutdown()
- Description copied from interface:
IRuntime
- Allows the coverage runtime to cleanup internals. This class should be
called when classes instrumented for this runtime are not used any more.