Skip to content

Commit 7ea39af

Browse files
Added missed path in table-driven scenarios fix. (#2807)
Signed-off-by: jensakejohansson <jens.johansson@systemverification.com>
1 parent bdb08f5 commit 7ea39af

1 file changed

Lines changed: 24 additions & 14 deletions

File tree

execution/specExecutor.go

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -104,19 +104,7 @@ func (e *specExecutor) execute(executeBefore, execute, executeAfter bool) *resul
104104
logger.Fatalf(true, "Failed to resolve Specifications : %s", err.Error())
105105
}
106106
e.specResult.AddScenarioResults(results)
107-
scnMap := make(map[int]bool)
108-
for _, s := range tableDriven {
109-
if _, ok := scnMap[s.Span.Start]; !ok {
110-
scnMap[s.Span.Start] = true
111-
}
112-
r, err := e.executeScenario(s)
113-
if err != nil {
114-
logger.Fatalf(true, "Failed to resolve Specifications : %s", err.Error())
115-
}
116-
e.specResult.AddTableDrivenScenarioResult(r, gauge.ConvertToProtoTable(s.DataTable.Table),
117-
s.ScenarioDataTableRowIndex, s.SpecDataTableRowIndex, s.SpecDataTableRow.IsInitialized())
118-
}
119-
e.specResult.ScenarioCount += len(scnMap)
107+
e.executeScenarioTableDrivenScenarios(tableDriven)
120108
} else {
121109
err := e.executeSpec()
122110
if err != nil {
@@ -152,18 +140,40 @@ func (e *specExecutor) executeSpec() error {
152140
nonTableRelatedScenarios, tableRelatedScenarios := parser.FilterTableRelatedScenarios(e.specification.Scenarios, func(s *gauge.Scenario) bool {
153141
return s.SpecDataTableRow.IsInitialized()
154142
})
155-
res, err := e.executeScenarios(nonTableRelatedScenarios)
143+
144+
others, scenarioTableDriven := parser.FilterTableRelatedScenarios(nonTableRelatedScenarios, func(s *gauge.Scenario) bool {
145+
return s.ScenarioDataTableRow.IsInitialized()
146+
})
147+
148+
res, err := e.executeScenarios(others)
156149
if err != nil {
157150
return err
158151
}
159152
e.specResult.AddScenarioResults(res)
153+
e.executeScenarioTableDrivenScenarios(scenarioTableDriven)
160154
err = e.executeTableRelatedScenarios(tableRelatedScenarios)
161155
if err != nil {
162156
return err
163157
}
164158
return nil
165159
}
166160

161+
func (e *specExecutor) executeScenarioTableDrivenScenarios(scenarios []*gauge.Scenario) {
162+
scnMap := make(map[int]bool)
163+
for _, s := range scenarios {
164+
if _, ok := scnMap[s.Span.Start]; !ok {
165+
scnMap[s.Span.Start] = true
166+
}
167+
r, err := e.executeScenario(s)
168+
if err != nil {
169+
logger.Fatalf(true, "Failed to resolve Specifications : %s", err.Error())
170+
}
171+
e.specResult.AddTableDrivenScenarioResult(r, gauge.ConvertToProtoTable(s.DataTable.Table),
172+
s.ScenarioDataTableRowIndex, s.SpecDataTableRowIndex, s.SpecDataTableRow.IsInitialized())
173+
}
174+
e.specResult.ScenarioCount += len(scnMap)
175+
}
176+
167177
func (e *specExecutor) initSpecDataStore() *gauge_messages.ProtoExecutionResult {
168178
initSpecDataStoreMessage := &gauge_messages.Message{MessageType: gauge_messages.Message_SpecDataStoreInit,
169179
SpecDataStoreInitRequest: &gauge_messages.SpecDataStoreInitRequest{Stream: int32(e.stream)}}

0 commit comments

Comments
 (0)