Package org.jacoco.core.runtime
Class RuntimeData
java.lang.Object
org.jacoco.core.runtime.RuntimeData
Container for runtime execution and meta data. All access to the runtime data
is thread safe.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private long
protected final ExecutionDataStore
store for execution data -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal void
collect
(IExecutionDataVisitor executionDataVisitor, ISessionInfoVisitor sessionInfoVisitor, boolean reset) Collects the current execution data and writes it to the givenIExecutionDataVisitor
object.boolean
In violation of the regular semantic ofObject.equals(Object)
this implementation is used as the interface to the execution data store.static void
generateAccessCall
(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv) Generates the code that calls aRuntimeData
instance through the JRE API methodObject.equals(Object)
.static void
generateArgumentArray
(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv) Generates code that creates the argument array for thegetProbes(Object[])
method.getExecutionData
(Long id, String name, int probecount) Returns the coverage data for the class with the given identifier.void
Retrieves the execution probe array for a given class.Get the current a session identifier for this runtime.final void
reset()
Resets all coverage information.void
setSessionId
(String id) Sets a session identifier for this runtime.
-
Field Details
-
store
store for execution data -
startTimeStamp
private long startTimeStamp -
sessionId
-
-
Constructor Details
-
RuntimeData
public RuntimeData()Creates a new runtime.
-
-
Method Details
-
setSessionId
Sets a session identifier for this runtime. The identifier is used when execution data is collected. If no identifier is explicitly set a identifier is generated from the host name and a random number. This method can be called at any time.- Parameters:
id
- new session identifier- See Also:
-
getSessionId
Get the current a session identifier for this runtime.- Returns:
- current session identifier
- See Also:
-
collect
public final void collect(IExecutionDataVisitor executionDataVisitor, ISessionInfoVisitor sessionInfoVisitor, boolean reset) Collects the current execution data and writes it to the givenIExecutionDataVisitor
object.- Parameters:
executionDataVisitor
- handler to write coverage data tosessionInfoVisitor
- handler to write session information toreset
- iftrue
the current coverage information is also cleared
-
reset
public final void reset()Resets all coverage information. -
getExecutionData
Returns the coverage data for the class with the given identifier. If there is no data available under the given id a new entry is created. This is a synchronized access to the underlying store.- Parameters:
id
- class identifiername
- VM name of the classprobecount
- probe data length- Returns:
- execution data
-
getProbes
Retrieves the execution probe array for a given class. The passedObject
array instance is used for parameters and the return value as follows. Call parameters: Return value:- args[0]: probe array (
boolean[]
)
- Parameters:
args
- parameter array of length 3
- args[0]: probe array (
-
equals
In violation of the regular semantic ofObject.equals(Object)
this implementation is used as the interface to the execution data store. -
generateArgumentArray
public static void generateArgumentArray(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv) Generates code that creates the argument array for thegetProbes(Object[])
method. The array instance is left on the operand stack. The generated code requires a stack size of 5.- Parameters:
classid
- class identifierclassname
- VM class nameprobecount
- probe count for this classmv
- visitor to emit generated code
-
generateAccessCall
public static void generateAccessCall(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv) Generates the code that calls aRuntimeData
instance through the JRE API methodObject.equals(Object)
. The code pops aObject
instance from the stack and pushes the probe array of typeboolean[]
on the operand stack. The generated code requires a stack size of 6.- Parameters:
classid
- class identifierclassname
- VM class nameprobecount
- probe count for this classmv
- visitor to emit generated code
-