Class SetListCallback
- java.lang.Object
-
- de.gebit.integrity.runner.callbacks.TestRunnerCallback
-
- de.gebit.integrity.runner.callbacks.AbstractTestRunnerCallback
-
- de.gebit.integrity.runner.callbacks.remoting.SetListCallback
-
public class SetListCallback extends AbstractTestRunnerCallback
Callback for creation and update of theSetList
- a crucial part of Integritys' remoting system.- Author:
- Rene Schneider - initial API and implementation
-
-
Field Summary
Fields Modifier and Type Field Description protected com.google.inject.Provider<ConversionContext>
conversionContextProvider
The conversion context provider.protected static java.lang.String
ENABLE_SETLIST_TRACE_OUTPUT
System property to enable writing setlist trace output.protected AggregatingFixtureLogger
fixtureLogger
The fixture logger.protected boolean
isTracingEnabled
Whether setlist tracing is enabled.-
Fields inherited from class de.gebit.integrity.runner.callbacks.AbstractTestRunnerCallback
valueConverter, variableManager
-
Fields inherited from class de.gebit.integrity.runner.callbacks.TestRunnerCallback
dryRun, forkInExecution, server
-
-
Constructor Summary
Constructors Constructor Description SetListCallback(SetList aSetList, IntegrityRemotingServer aRemotingServer)
Creates a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addExtendedResultDataToEntry(SetListEntry anEntry, FixtureExecutionResult aResult)
Adds the extended result data in theFixtureExecutionResult
object to the providedSetListEntry
.protected void
addFixtureLogDataToEntry(SetListEntry anEntry)
Adds the fixture log data in theFixtureExecutionResult
object to the providedSetListEntry
.protected void
addLinkToEntry(SetListEntry anEntry, org.eclipse.emf.ecore.EObject anObject)
Adds a link (to suite and line number) to the givenSetListEntry
.protected SetListEntry[]
addMethodAndParamsToTestOrCall(MethodReference aMethod, org.eclipse.emf.common.util.EList<Parameter> aParamList, SetListEntry anEntry, SuiteStatementWithResult aStatement)
Adds information about the fixture method being called and the parameters given to it to a test or call entry.protected ConversionContext
createConversionContext()
Determines the way unresolvable variables are to be handled.int
getInvocationCountCalls()
int
getInvocationCountSuites()
int
getInvocationCountTableTestRows()
int
getInvocationCountTableTests()
int
getInvocationCountTests()
protected static java.lang.String
nanoTimeToString(long aNanosecondValue)
Converts a nanosecond time value into a string according to theEXECUTION_TIME_FORMAT
.void
onAbortExecution(java.lang.String anAbortExecutionMessage, java.lang.String anAbortExecutionStackTrace)
Called when test execution is aborted prematurely due to anAbortExecutionException
- either thrown locally or by a fork.protected java.util.List<SetListEntry>
onAnyKindOfSubTestFinish(MethodReference aMethod, SuiteStatementWithResult aStatement, SetListEntry aTestEntry, TestSubResult aSubResult, java.util.Map<java.lang.String,java.lang.Object> aParameterMap)
This method is used to perform the actual sub-test result parsing, both for normal tests and tabletests (with the latter having more than one subtest).void
onCallFinish(Call aCall, CallResult aResult)
Called right after a call was executed.void
onCallStart(Call aCall)
Called before a call is being executed.void
onConstantDefinition(ConstantEntity aDefinition, SuiteDefinition aSuite, java.lang.Object aValue, boolean aParameterizedFlag)
Called when a constant is being defined.void
onExecutionFinish(TestModel aModel, SuiteSummaryResult aResult)
Called after all execution has been finished.void
onExecutionStart(TestModel aModel, VariantDefinition aVariant)
Called when the execution starts, that is, before the first (root) suite is entered.void
onMessageFromFork(TestRunnerCallbackMethods aMethod, java.io.Serializable... someObjects)
Called when a fork has sent a message to the masters' callback.void
onReturnVariableAssignment(SuiteReturn aReturn, VariableEntity aSource, VariableEntity aTarget, Suite aSuite, java.lang.Object aValue)
Called when a return variable value from a suite is assigned to the respective local variable in the calling suite.void
onSetupFinish(SuiteDefinition aSetupSuite, SuiteResult aResult)
Called when a setup suite has been executed.void
onSetupSkipped(SuiteDefinition aSetupSuite, SuiteSkipReason aReason)
Called when a setup suite is being skipped.void
onSetupStart(SuiteDefinition aSetupSuite)
Called when a setup suite is being called.void
onSuiteFinish(Suite aSuite, SuiteSummaryResult aResult)
Called after a suite has finished execution.void
onSuiteSkipped(Suite aSuite, SuiteSkipReason aReason)
Called when a suite call is being skipped.void
onSuiteStart(Suite aSuite)
Called when a suite call is being followed.void
onTableTestFinish(TableTest aTableTest, TestResult aResult)
Called after a tabletest was fully executed (all rows have been executed).void
onTableTestRowFinish(TableTest aTableTest, TableTestRow aRow, TestSubResult aSubResult)
Called after a table test row has been executed.void
onTableTestRowStart(TableTest aTableTest, TableTestRow aRow)
Called when a single row of a table test is about to be executed.void
onTableTestStart(TableTest aTableTest)
Called when a table test is about to be executed.void
onTearDownFinish(SuiteDefinition aTearDownSuite, SuiteResult aResult)
Called after a teardown suite was executed.void
onTearDownSkipped(SuiteDefinition aTearDownSuite, SuiteSkipReason aReason)
Called when a teardown suite is being skipped.void
onTearDownStart(SuiteDefinition aTearDownSuite)
Called before a teardown suite is being executed.void
onTestFinish(Test aTest, TestResult aResult)
Called after a test was executed.void
onTestStart(Test aTest)
Called right before a test is being executed.void
onTimeSetFinish(TimeSet aTimeSet, TimeSetResult aResult)
Called when the test time was set.void
onTimeSetStart(TimeSet aTimeSet, SuiteDefinition aSuite, java.util.List<ForkDefinition> someForks)
Called when the test time will be set.void
onVariableAssignment(VariableAssignment anAssignment, VariableEntity aVariableEntity, SuiteDefinition aSuite, java.lang.Object aValue)
Called when a variable is being assigned.void
onVariableDefinition(VariableEntity aDefinition, SuiteDefinition aSuite, java.lang.Object anInitialValue)
Called when a variable is being defined.void
onVisibleComment(java.lang.String aCommentText, boolean anIsTitle, VisibleComment aCommentElement)
Called when a visible comment is encountered during execution.void
onVisibleDivider(java.lang.String aDividerText, VisibleDivider aDividerElement)
Called when a visible divider is encountered during execution.protected void
sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry... someUpdatedEntries)
Sends a setlist entry update to all clients of the remoting server.protected void
sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry[] someEntries, SetListEntry... someSingleEntries)
Sends a setlist entry update to all clients of the remoting server.protected void
sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry aSingleEntry, SetListEntry[] someMoreEntries)
Sends a setlist entry update to all clients of the remoting server.protected static java.lang.String
stackTraceToString(java.lang.Throwable anException)
Utility method to convert a stack trace to a string to be included in a setlist entry.-
Methods inherited from class de.gebit.integrity.runner.callbacks.AbstractTestRunnerCallback
containsNestedObject, containsNestedObject, convertResultValueToFormattedStringGuarded, convertResultValueToStringGuarded, valueToString
-
Methods inherited from class de.gebit.integrity.runner.callbacks.TestRunnerCallback
getForkInExecution, isDryRun, isFork, onCallbackProcessingEnd, onCallbackProcessingStart, receiveFromFork, sendToMaster, setDryRun, setForkInExecution, setRemotingServer
-
-
-
-
Field Detail
-
ENABLE_SETLIST_TRACE_OUTPUT
protected static final java.lang.String ENABLE_SETLIST_TRACE_OUTPUT
System property to enable writing setlist trace output.- See Also:
- Constant Field Values
-
isTracingEnabled
protected boolean isTracingEnabled
Whether setlist tracing is enabled.
-
conversionContextProvider
@Inject protected com.google.inject.Provider<ConversionContext> conversionContextProvider
The conversion context provider.
-
fixtureLogger
@Inject protected AggregatingFixtureLogger fixtureLogger
The fixture logger.
-
-
Constructor Detail
-
SetListCallback
public SetListCallback(SetList aSetList, IntegrityRemotingServer aRemotingServer)
Creates a new instance.- Parameters:
aSetList
- the setlist to updateaRemotingServer
- the remoting server to use
-
-
Method Detail
-
onExecutionStart
public void onExecutionStart(TestModel aModel, VariantDefinition aVariant)
Description copied from class:TestRunnerCallback
Called when the execution starts, that is, before the first (root) suite is entered. This is always the first call of an execution phase.- Specified by:
onExecutionStart
in classTestRunnerCallback
- Parameters:
aModel
- the test model that will be executed
-
onSuiteStart
public void onSuiteStart(Suite aSuite)
Description copied from class:TestRunnerCallback
Called when a suite call is being followed.- Specified by:
onSuiteStart
in classTestRunnerCallback
- Parameters:
aSuite
- the suite call that will be entered
-
onSetupStart
public void onSetupStart(SuiteDefinition aSetupSuite)
Description copied from class:TestRunnerCallback
Called when a setup suite is being called.- Specified by:
onSetupStart
in classTestRunnerCallback
- Parameters:
aSetupSuite
- the setup suite being entered
-
onSetupFinish
public void onSetupFinish(SuiteDefinition aSetupSuite, SuiteResult aResult)
Description copied from class:TestRunnerCallback
Called when a setup suite has been executed.- Specified by:
onSetupFinish
in classTestRunnerCallback
- Parameters:
aSetupSuite
- the setup suite that was executedaResult
- the result of the execution
-
onTestStart
public void onTestStart(Test aTest)
Description copied from class:TestRunnerCallback
Called right before a test is being executed.- Specified by:
onTestStart
in classTestRunnerCallback
- Parameters:
aTest
- the test
-
onTableTestStart
public void onTableTestStart(TableTest aTableTest)
Description copied from class:TestRunnerCallback
Called when a table test is about to be executed.- Specified by:
onTableTestStart
in classTestRunnerCallback
- Parameters:
aTableTest
- the table test
-
onTableTestRowStart
public void onTableTestRowStart(TableTest aTableTest, TableTestRow aRow)
Description copied from class:TestRunnerCallback
Called when a single row of a table test is about to be executed.- Specified by:
onTableTestRowStart
in classTestRunnerCallback
- Parameters:
aTableTest
- the table test that contains the rowaRow
- the row
-
onTableTestRowFinish
public void onTableTestRowFinish(TableTest aTableTest, TableTestRow aRow, TestSubResult aSubResult)
Description copied from class:TestRunnerCallback
Called after a table test row has been executed.- Specified by:
onTableTestRowFinish
in classTestRunnerCallback
- Parameters:
aTableTest
- the table test that contains the rowaRow
- the row that was executedaSubResult
- the result of the execution
-
onTableTestFinish
public void onTableTestFinish(TableTest aTableTest, TestResult aResult)
Description copied from class:TestRunnerCallback
Called after a tabletest was fully executed (all rows have been executed).- Specified by:
onTableTestFinish
in classTestRunnerCallback
- Parameters:
aTableTest
- the table testaResult
- the result of the test execution
-
onTestFinish
public void onTestFinish(Test aTest, TestResult aResult)
Description copied from class:TestRunnerCallback
Called after a test was executed.- Specified by:
onTestFinish
in classTestRunnerCallback
- Parameters:
aTest
- the test that was executedaResult
- the result of the execution
-
onAnyKindOfSubTestFinish
protected java.util.List<SetListEntry> onAnyKindOfSubTestFinish(MethodReference aMethod, SuiteStatementWithResult aStatement, SetListEntry aTestEntry, TestSubResult aSubResult, java.util.Map<java.lang.String,java.lang.Object> aParameterMap)
This method is used to perform the actual sub-test result parsing, both for normal tests and tabletests (with the latter having more than one subtest).- Parameters:
aMethod
- the fixture methodaStatement
- the statement currently being executedaTestEntry
- the setlist entry for the testaSubResult
- the sub-result to analyzeaParameterMap
- the parameters given to the test method- Returns:
- a list of newly generated setlist entries (with the first being the result entry itself)
-
onCallStart
public void onCallStart(Call aCall)
Description copied from class:TestRunnerCallback
Called before a call is being executed.- Specified by:
onCallStart
in classTestRunnerCallback
- Parameters:
aCall
- the call
-
onCallFinish
public void onCallFinish(Call aCall, CallResult aResult)
Description copied from class:TestRunnerCallback
Called right after a call was executed.- Specified by:
onCallFinish
in classTestRunnerCallback
- Parameters:
aCall
- the callaResult
- the result of the execution
-
onTearDownStart
public void onTearDownStart(SuiteDefinition aTearDownSuite)
Description copied from class:TestRunnerCallback
Called before a teardown suite is being executed.- Specified by:
onTearDownStart
in classTestRunnerCallback
- Parameters:
aTearDownSuite
- the suite to be executed
-
onTearDownFinish
public void onTearDownFinish(SuiteDefinition aTearDownSuite, SuiteResult aResult)
Description copied from class:TestRunnerCallback
Called after a teardown suite was executed.- Specified by:
onTearDownFinish
in classTestRunnerCallback
- Parameters:
aTearDownSuite
- the suite that was executedaResult
- the result of the execution
-
onSuiteFinish
public void onSuiteFinish(Suite aSuite, SuiteSummaryResult aResult)
Description copied from class:TestRunnerCallback
Called after a suite has finished execution. This might return aSuiteResult
instance if the suite was executed locally, or aSuiteSummaryResult
with just the summary count information if the suite ran on a fork, in which case the detailed information is not available.- Specified by:
onSuiteFinish
in classTestRunnerCallback
- Parameters:
aSuite
- the suite that was executedaResult
- the result of the execution
-
onExecutionFinish
public void onExecutionFinish(TestModel aModel, SuiteSummaryResult aResult)
Description copied from class:TestRunnerCallback
Called after all execution has been finished. This is always the last call of an execution phase.- Specified by:
onExecutionFinish
in classTestRunnerCallback
-
onVisibleComment
public void onVisibleComment(java.lang.String aCommentText, boolean anIsTitle, VisibleComment aCommentElement)
Description copied from class:TestRunnerCallback
Called when a visible comment is encountered during execution.- Specified by:
onVisibleComment
in classTestRunnerCallback
- Parameters:
aCommentText
- the text inside the commentaCommentElement
- the raw comment element
-
onVisibleDivider
public void onVisibleDivider(java.lang.String aDividerText, VisibleDivider aDividerElement)
Description copied from class:TestRunnerCallback
Called when a visible divider is encountered during execution.- Specified by:
onVisibleDivider
in classTestRunnerCallback
- Parameters:
aDividerText
- the divider text (basically a String of '-' chars with minimum length of 3 chars)aDividerElement
- the raw divider element
-
onVariableDefinition
public void onVariableDefinition(VariableEntity aDefinition, SuiteDefinition aSuite, java.lang.Object anInitialValue)
Description copied from class:TestRunnerCallback
Called when a variable is being defined.- Specified by:
onVariableDefinition
in classTestRunnerCallback
- Parameters:
aDefinition
- the variableaSuite
- the suite in which the variable is scoped (may be null if the variable is global)anInitialValue
- the initial value (may be null if no initial value is given)
-
onConstantDefinition
public void onConstantDefinition(ConstantEntity aDefinition, SuiteDefinition aSuite, java.lang.Object aValue, boolean aParameterizedFlag)
Description copied from class:TestRunnerCallback
Called when a constant is being defined.- Specified by:
onConstantDefinition
in classTestRunnerCallback
- Parameters:
aDefinition
- the constantaSuite
- the suite in which the constant is scoped (may be null if the constant is global)aValue
- the value (may be null if no value was given)aParameterizedFlag
- true if the constant was parameterized (value defined not in script, but from outside the test runner via parameter)
-
onVariableAssignment
public void onVariableAssignment(VariableAssignment anAssignment, VariableEntity aVariableEntity, SuiteDefinition aSuite, java.lang.Object aValue)
Description copied from class:TestRunnerCallback
Called when a variable is being assigned.- Specified by:
onVariableAssignment
in classTestRunnerCallback
- Parameters:
anAssignment
- the assignmentaVariableEntity
- the variable that the value is to be assignedaSuite
- the suite in which the variable is scoped (may be null if the variable is global)aValue
- the value
-
onAbortExecution
public void onAbortExecution(java.lang.String anAbortExecutionMessage, java.lang.String anAbortExecutionStackTrace)
Description copied from class:TestRunnerCallback
Called when test execution is aborted prematurely due to anAbortExecutionException
- either thrown locally or by a fork. The original exception can't be provided since it cannot be received from a fork by remoting. Instead, the data from the exception is provided in both cases.- Specified by:
onAbortExecution
in classTestRunnerCallback
- Parameters:
anAbortExecutionMessage
- the message from the exceptionanAbortExecutionStackTrace
- the stack trace of the exception
-
onReturnVariableAssignment
public void onReturnVariableAssignment(SuiteReturn aReturn, VariableEntity aSource, VariableEntity aTarget, Suite aSuite, java.lang.Object aValue)
Description copied from class:TestRunnerCallback
Called when a return variable value from a suite is assigned to the respective local variable in the calling suite.- Specified by:
onReturnVariableAssignment
in classTestRunnerCallback
- Parameters:
aReturn
- the return variable objectaSource
- the source variable entityaTarget
- the target variable entityaSuite
- the suite invocation for which the assignment is doneaValue
- the value to be assigned
-
onTimeSetStart
public void onTimeSetStart(TimeSet aTimeSet, SuiteDefinition aSuite, java.util.List<ForkDefinition> someForks)
Description copied from class:TestRunnerCallback
Called when the test time will be set.- Specified by:
onTimeSetStart
in classTestRunnerCallback
- Parameters:
aTimeSet
- the time to be setaSuite
- the suite in which the time was setsomeForks
- the forks on which the time was set (the null element in the list means the master process)
-
onTimeSetFinish
public void onTimeSetFinish(TimeSet aTimeSet, TimeSetResult aResult)
Description copied from class:TestRunnerCallback
Called when the test time was set.- Specified by:
onTimeSetFinish
in classTestRunnerCallback
- Parameters:
aTimeSet
- the time to be setaResult
- the result of the operation
-
createConversionContext
protected ConversionContext createConversionContext()
Determines the way unresolvable variables are to be handled.- Returns:
-
addMethodAndParamsToTestOrCall
protected SetListEntry[] addMethodAndParamsToTestOrCall(MethodReference aMethod, org.eclipse.emf.common.util.EList<Parameter> aParamList, SetListEntry anEntry, SuiteStatementWithResult aStatement)
Adds information about the fixture method being called and the parameters given to it to a test or call entry.- Parameters:
aMethod
- the fixture methodaParamList
- the parametersanEntry
- the entry to add the information toaStatement
- the statement currently in execution- Returns:
- the setlist entries created for the parameters
-
sendUpdateToClients
protected void sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry... someUpdatedEntries)
Sends a setlist entry update to all clients of the remoting server.- Parameters:
anEntryInExecution
- the entry that is currently in execution (may be null if that information shouldn't be included)someUpdatedEntries
- the actual updated entries
-
sendUpdateToClients
protected void sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry aSingleEntry, SetListEntry[] someMoreEntries)
Sends a setlist entry update to all clients of the remoting server. This is a convenience method and behaves much likesendUpdateToClients(Integer, SetListEntry...)
.- Parameters:
anEntryInExecution
- the entry that is currently in execution (may be null if that information shouldn't be included)aSingleEntry
- one single updated entrysomeMoreEntries
- more updated entries
-
sendUpdateToClients
protected void sendUpdateToClients(java.lang.Integer anEntryInExecution, SetListEntry[] someEntries, SetListEntry... someSingleEntries)
Sends a setlist entry update to all clients of the remoting server. This is a convenience method and behaves much likesendUpdateToClients(Integer, SetListEntry...)
.- Parameters:
anEntryInExecution
- the entry that is currently in execution (may be null if that information shouldn't be included)someEntries
- some updated entries as an arraysomeSingleEntries
- more updated entries
-
stackTraceToString
protected static java.lang.String stackTraceToString(java.lang.Throwable anException)
Utility method to convert a stack trace to a string to be included in a setlist entry.- Parameters:
anException
- the exception from which to take the stack trace- Returns:
- the formatted trace string
-
nanoTimeToString
protected static java.lang.String nanoTimeToString(long aNanosecondValue)
Converts a nanosecond time value into a string according to theEXECUTION_TIME_FORMAT
.- Parameters:
aNanosecondValue
- the time value- Returns:
- the formatted string
-
onMessageFromFork
public void onMessageFromFork(TestRunnerCallbackMethods aMethod, java.io.Serializable... someObjects)
Description copied from class:TestRunnerCallback
Called when a fork has sent a message to the masters' callback. In order to merge results determined by forks seamlessly into the masters' results, callbacks do automatically have a simple messaging system at their disposal. When a fork callback usesTestRunnerCallback.sendToMaster(TestRunnerCallbackMethods, Serializable...)
, this method is called on the masters' respective callback in order to deliver the objects given.- Specified by:
onMessageFromFork
in classTestRunnerCallback
- Parameters:
aMethod
- the method that was called on the forks' callback (doesn't have to be used, evaluating this parameter is the job of the masters' callback and can thus be omitted if it ain't necessary)someObjects
- the objects sent by the forks' callback
-
addLinkToEntry
protected void addLinkToEntry(SetListEntry anEntry, org.eclipse.emf.ecore.EObject anObject)
Adds a link (to suite and line number) to the givenSetListEntry
.- Parameters:
anEntry
- the entry to add the link toanObject
- the object to link to
-
addExtendedResultDataToEntry
protected void addExtendedResultDataToEntry(SetListEntry anEntry, FixtureExecutionResult aResult)
Adds the extended result data in theFixtureExecutionResult
object to the providedSetListEntry
. If there's no extended results, this method does nothing.- Parameters:
anEntry
- the entry to attach results toaResult
- the result to explore
-
addFixtureLogDataToEntry
protected void addFixtureLogDataToEntry(SetListEntry anEntry)
Adds the fixture log data in theFixtureExecutionResult
object to the providedSetListEntry
. If there's no fixture log output, this method does nothing.- Parameters:
anEntry
- the entry to attach log data to
-
onSuiteSkipped
public void onSuiteSkipped(Suite aSuite, SuiteSkipReason aReason)
Description copied from class:TestRunnerCallback
Called when a suite call is being skipped.- Specified by:
onSuiteSkipped
in classTestRunnerCallback
- Parameters:
aSuite
- the suite being skippedaReason
- the reason for the skipping
-
onSetupSkipped
public void onSetupSkipped(SuiteDefinition aSetupSuite, SuiteSkipReason aReason)
Description copied from class:TestRunnerCallback
Called when a setup suite is being skipped.- Specified by:
onSetupSkipped
in classTestRunnerCallback
- Parameters:
aSetupSuite
- the suite being skippedaReason
- the reason for the skipping
-
onTearDownSkipped
public void onTearDownSkipped(SuiteDefinition aTearDownSuite, SuiteSkipReason aReason)
Description copied from class:TestRunnerCallback
Called when a teardown suite is being skipped.- Specified by:
onTearDownSkipped
in classTestRunnerCallback
- Parameters:
aTearDownSuite
- the suite being skippedaReason
- the reason for the skipping
-
getInvocationCountCalls
public int getInvocationCountCalls()
-
getInvocationCountSuites
public int getInvocationCountSuites()
-
getInvocationCountTableTestRows
public int getInvocationCountTableTestRows()
-
getInvocationCountTableTests
public int getInvocationCountTableTests()
-
getInvocationCountTests
public int getInvocationCountTests()
-
-