From 43c284fea78725de6376ab167e970e51a2cce028 Mon Sep 17 00:00:00 2001 From: "CDN (Diego) Damasceno" Date: Mon, 3 Aug 2026 19:47:42 +0200 Subject: [PATCH 1/8] adding step_id to `setup_file`(name) --- .../matala/generator/fast/FromConcreteToFast.xtend | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index 0e930782..7bcc6798 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -744,6 +744,7 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe var era = (act.fieldAccess as ExpressionRecordAccess) var stepId = getStepId(era) + var varId = getStepId(era) // get sut-var name and type var stepInst = new Step @@ -770,7 +771,7 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe new_rstep.type = field.recordField.type.type.name new_rstep.recordExp = lhs.value // path for json input_file in "filePath / field name + step ID" - new_rstep.inputFile = new_rstep.inputFile + new_rstep.id + '_' + + new_rstep.inputFile = new_rstep.inputFile + varId + '_' + new_rstep.id + '_' + //TODO stepId + '.json' // point lhs value to input_file var format = '''"#valueof(global.params['testcase_data'] + '%s')"''' @@ -799,13 +800,18 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe } private def String getStepId(ExpressionRecordAccess expr) { - var varLabel = expr.field.name - var ioLabel = (expr.record as ExpressionRecordAccess).field.name + //var ioLabel = (expr.record as ExpressionRecordAccess).field.name var stepLabel = ((expr.record as ExpressionRecordAccess).record as ExpressionVariable).variable.name return stepLabel -// return ioLabel + '_' + stepLabel } + private def String getVarId(ExpressionRecordAccess expr) { + var varLabel = expr.field.name + return varLabel + } + + + private def Step createStep(TestSpecificationInstance tsi, TestDefinition model, RunStep s) { var stepInst = new Step stepInst.runStep = s From 9a683941f77052cd0ae0fb579b0cd9db075bbb9a Mon Sep 17 00:00:00 2001 From: "CDN (Diego) Damasceno" Date: Mon, 3 Aug 2026 19:48:14 +0200 Subject: [PATCH 2/8] get varId ... --- .../src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index 7bcc6798..c897b252 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -744,7 +744,7 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe var era = (act.fieldAccess as ExpressionRecordAccess) var stepId = getStepId(era) - var varId = getStepId(era) + var varId = getVarId(era) // get sut-var name and type var stepInst = new Step From d52af511b66172d220a512ad4be0cc48c5f5e87b Mon Sep 17 00:00:00 2001 From: "CDN (Diego) Damasceno" Date: Mon, 3 Aug 2026 20:19:51 +0200 Subject: [PATCH 3/8] indatasuts action is not-a-null --- .../nl/asml/matala/generator/fast/FromConcreteToFast.xtend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index c897b252..b38bf5b7 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -753,8 +753,8 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe stepInst.type = era.field.type.type.name // 4.6) Check if this action is a printable assignment (aka not-a-null assignment) - if (isPrintableAssignment(act)) { - for (field : (act.exp as ExpressionRecord).fields) { + for (field : (act.exp as ExpressionRecord).fields) { + if (isPrintableAssignment(field)) { var lhs = new KeyValue // get sut-var field name and assigned value lhs.key = field.recordField.name From 9272e3cd15b447d1b7f0ba94ccf3f730fa7ba3e2 Mon Sep 17 00:00:00 2001 From: "CDN (Diego) Damasceno" Date: Mon, 3 Aug 2026 20:36:39 +0200 Subject: [PATCH 4/8] access action act then act.field then check act.field --- .../generator/fast/FromConcreteToFast.xtend | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index b38bf5b7..07e1ba0e 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -753,33 +753,35 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe stepInst.type = era.field.type.type.name // 4.6) Check if this action is a printable assignment (aka not-a-null assignment) - for (field : (act.exp as ExpressionRecord).fields) { - if (isPrintableAssignment(field)) { - var lhs = new KeyValue - // get sut-var field name and assigned value - lhs.key = field.recordField.name - lhs.value = ExpressionsParser::generateExpression(field.exp, '''''').toString - - // should it become a file on its own? - var String match = findMatchingRecordName('.' + lhs.key, setup_file_names) - if (match instanceof String) { - // Create new step instance - var new_rstep = new Step - // field name (key), type, and value - new_rstep.id = lhs.key - new_rstep.variableName = lhs.key - new_rstep.type = field.recordField.type.type.name - new_rstep.recordExp = lhs.value - // path for json input_file in "filePath / field name + step ID" - new_rstep.inputFile = new_rstep.inputFile + varId + '_' + new_rstep.id + '_' + //TODO - stepId + '.json' - // point lhs value to input_file - var format = '''"#valueof(global.params['testcase_data'] + '%s')"''' - lhs.value = String.format(format, new_rstep.inputFile) - // Add to list of step reference of step - stepInst.stepRefs.add(new_rstep) + if (isPrintableAssignment(act)) { + for (field : (act.exp as ExpressionRecord).fields) { + if (isPrintableAssignment((field as Action))) { + var lhs = new KeyValue + // get sut-var field name and assigned value + lhs.key = field.recordField.name + lhs.value = ExpressionsParser::generateExpression(field.exp, '''''').toString + + // should it become a file on its own? + var String match = findMatchingRecordName('.' + lhs.key, setup_file_names) + if (match instanceof String) { + // Create new step instance + var new_rstep = new Step + // field name (key), type, and value + new_rstep.id = lhs.key + new_rstep.variableName = lhs.key + new_rstep.type = field.recordField.type.type.name + new_rstep.recordExp = lhs.value + // path for json input_file in "filePath / field name + step ID" + new_rstep.inputFile = new_rstep.inputFile + varId + '_' + new_rstep.id + '_' + //TODO + stepId + '.json' + // point lhs value to input_file + var format = '''"#valueof(global.params['testcase_data'] + '%s')"''' + lhs.value = String.format(format, new_rstep.inputFile) + // Add to list of step reference of step + stepInst.stepRefs.add(new_rstep) + } + stepInst.parameters.add(lhs) } - stepInst.parameters.add(lhs) } } tsi.indatasuts.add(stepInst) From 01020672f9c1ee97b8c78fb11cfe95953db1fd32 Mon Sep 17 00:00:00 2001 From: "CDN (Diego) Damasceno" Date: Mon, 3 Aug 2026 20:55:22 +0200 Subject: [PATCH 5/8] removed field casting --- .../src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index 07e1ba0e..25e8b49e 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -755,7 +755,7 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe // 4.6) Check if this action is a printable assignment (aka not-a-null assignment) if (isPrintableAssignment(act)) { for (field : (act.exp as ExpressionRecord).fields) { - if (isPrintableAssignment((field as Action))) { + if (isPrintableAssignment(field)) { var lhs = new KeyValue // get sut-var field name and assigned value lhs.key = field.recordField.name From 623059af219f21e3ed2edb9956aad819c6491081 Mon Sep 17 00:00:00 2001 From: Diego Damasceno Date: Tue, 4 Aug 2026 09:22:08 +0200 Subject: [PATCH 6/8] created `boolean isPrintableAssignment(Field)` --- .../matala/generator/fast/FromConcreteToFast.xtend | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index 25e8b49e..e6aa3560 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -25,6 +25,7 @@ import nl.asml.matala.generator.docgen.DocGen import nl.esi.xtext.actions.actions.Action import nl.esi.xtext.actions.actions.AssignmentAction import nl.esi.xtext.actions.actions.RecordFieldAssignmentAction +import nl.esi.xtext.expressions.expression.Field import nl.esi.xtext.expressions.expression.Expression import nl.esi.xtext.expressions.expression.ExpressionNullLiteral import nl.esi.xtext.expressions.expression.ExpressionRecord @@ -143,7 +144,14 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe } return false } - + + def boolean isPrintableAssignment(Field field) { + return switch (field) { + AssignmentAction: !(field.exp instanceof ExpressionNullLiteral) + RecordFieldAssignmentAction: !(field.exp instanceof ExpressionNullLiteral) + default: false + } + } def boolean isPrintableAssignment(Action act) { return switch (act) { From 36f5166b7b88d0b852a44ca6d542812df8c0c112 Mon Sep 17 00:00:00 2001 From: Diego Damasceno Date: Tue, 4 Aug 2026 10:01:34 +0200 Subject: [PATCH 7/8] Checking if field.exp != null --- .../nl/asml/matala/generator/fast/FromConcreteToFast.xtend | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index e6aa3560..4fe6f738 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -146,11 +146,7 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe } def boolean isPrintableAssignment(Field field) { - return switch (field) { - AssignmentAction: !(field.exp instanceof ExpressionNullLiteral) - RecordFieldAssignmentAction: !(field.exp instanceof ExpressionNullLiteral) - default: false - } + return !(field.exp instanceof ExpressionNullLiteral) } def boolean isPrintableAssignment(Action act) { From fc3b809fb1640dce3cdde87c02108b7812b6651f Mon Sep 17 00:00:00 2001 From: Diego Damasceno Date: Tue, 4 Aug 2026 10:48:48 +0200 Subject: [PATCH 8/8] removing unused function --- .../generator/fast/FromConcreteToFast.xtend | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend index 4fe6f738..c7461e15 100644 --- a/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend +++ b/bundles/nl.asml.matala.generator.fast/src/nl/asml/matala/generator/fast/FromConcreteToFast.xtend @@ -816,8 +816,6 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe return varLabel } - - private def Step createStep(TestSpecificationInstance tsi, TestDefinition model, RunStep s) { var stepInst = new Step stepInst.runStep = s @@ -879,42 +877,4 @@ class FromConcreteToFast extends AbstractGenerator implements IStandardProjectGe return stepInst } - private def Step createDataSuts(TestSpecificationInstance tsi, RecordFieldAssignmentAction act) { - var stepInst = new Step - var era = (act.fieldAccess as ExpressionRecordAccess) - // 4.2) Step ID - stepInst.id = era.field.name - stepInst.variableName = era.field.name - // 4.3) Step type (defined via UI text box, e.g., SUT.OperationName) - stepInst.type = era.field.type.type.name - - // 4.6) Check if this action is a printable assignment (aka not-a-null assignment) - if (isPrintableAssignment(act)) { - for (field : (act.exp as ExpressionRecord).fields) { - var lhs = new KeyValue - lhs.key = field.recordField.name - lhs.value = ExpressionsParser::generateExpression(field.exp, '''''').toString - // 4.9) check if record field assignment should be in its own json file - var String match = findMatchingRecordName('.' + lhs.key, record_def_file_names) - if (match instanceof String) { - // Create new step instance and fill all details there - var new_rstep = new Step - new_rstep.id = lhs.key - new_rstep.variableName = lhs.key - new_rstep.recordExp = lhs.value - new_rstep.type = field.recordField.type.type.name - new_rstep.inputFile = tsi.filePath - new_rstep.parameters.add(lhs) // Added DB 29.05.2025 - // Add to list of step reference of step - stepInst.stepRefs.add(new_rstep) - } else { - // 4.9.2) record field assignment has it own json - stepInst.parameters.add(lhs) - } - } - } - - return stepInst - } - }