@@ -316,11 +315,20 @@ function AlarmCollector ( cuVariables, customInitialize ) { var stateIndex = this.TestStateEnum.LookupState.Get( stateHolder.State ); var nextState = this.TestStateEnum.LookupIndex.Get( stateIndex + 1 ); if ( isDefined( nextState ) ) { - stateHolder.State = nextState; + stateHolder.NextState = nextState; } } } + this.FinalizeNextTestState = function ( conditionId ) { + var key = conditionId.toString(); + var stateHolder = this.TestIdStateMap.Get( key ); + if ( isDefined( stateHolder.NextState ) ) { + stateHolder.State = stateHolder.NextState + stateHolder.NextState = null; + } + } + /** * Helper function to make skipping a test case easier * @param {string} testName - Test Case Name @@ -583,7 +591,7 @@ function AlarmCollector ( cuVariables, customInitialize ) { this.ForEachTest( PreLoopAction, events ); for ( var eventIndex = 0; eventIndex < events.length; eventIndex++ ) { var eventFields = events[ eventIndex ].EventFieldList.EventFields; - + var conditionId = this.GetConditionId( eventFields ); var eventType = eventFields[ this.EventTypeIndex ].toNodeId(); @@ -612,6 +620,8 @@ function AlarmCollector ( cuVariables, customInitialize ) { } } } + // Update the state if a test case was completed + this.FinalizeNextTestState(conditionId); } this.ForEachTest( PostLoopAction ); this.AlarmTester.RemoveEntry( events );