For cycle variable incrementation missing from cross-compiled Java code
Summary
I wrote a TTCN-3 for cycle including a while cycle. The former doesn't exit.
Steps and/or TTCN-3 code to reproduce
type component dummy{}
testcase empty4() runs on dummy{ //blocks
action("ZEROLEV 0");
for(var integer i := 1;i<10;i := i+1){
action("ZEROLEV 1 ", i);
var integer j :=10
action("ZEROLEV 2");
while(true){
action("ZEROLEV 2,5");
break;
}
}
action("ZEROLEV 12");
setverdict(pass);
}
What is the current bug behavior?
The variable of the for cycle is not incremented and hence, the cycle never exits, the log file shows that integer i is never incremented.
What is the expected correct behavior?
The for cycle should exit after 10 iterations.
Relevant logs and/or screenshots
2022/Feb/07 13:13:42.817000 EXECUTOR - TTCN-3 Main Test Component started on HUL21014. Version: 8.1.0.
2022/Feb/07 13:13:42.820000 EXECUTOR - Connected to MC.
2022/Feb/07 13:13:42.821000 EXECUTOR - Executing test case empty4 in module my.
2022/Feb/07 13:13:42.826000 TESTCASE - Test case empty4 started.
2022/Feb/07 13:13:42.832000 PARALLEL - Initializing variables, timers and ports of component type my.dummy inside testcase empty4.
2022/Feb/07 13:13:42.839000 PARALLEL - Component type my.dummy was initialized.
2022/Feb/07 13:13:42.840000 ACTION - Action: ZEROLEV 0
2022/Feb/07 13:13:42.841000 ACTION - Action: ZEROLEV 1 1
2022/Feb/07 13:13:42.841000 ACTION - Action: ZEROLEV 2
2022/Feb/07 13:13:42.841000 ACTION - Action: ZEROLEV 2,5
2022/Feb/07 13:13:42.842000 ACTION - Action: ZEROLEV 1 1
2022/Feb/07 13:13:42.843000 ACTION - Action: ZEROLEV 2
2022/Feb/07 13:13:42.844000 ACTION - Action: ZEROLEV 2,5
2022/Feb/07 13:13:42.845000 ACTION - Action: ZEROLEV 1 1
2022/Feb/07 13:13:42.845000 ACTION - Action: ZEROLEV 2
2022/Feb/07 13:13:42.845000 ACTION - Action: ZEROLEV 2,5
2022/Feb/07 13:13:42.846000 ACTION - Action: ZEROLEV 1 1
2022/Feb/07 13:13:42.846000 ACTION - Action: ZEROLEV 2
2022/Feb/07 13:13:42.846000 ACTION - Action: ZEROLEV 2,5
2022/Feb/07 13:13:42.846000 ACTION - Action: ZEROLEV 1 1
etc.
Possible fixes
Maybe the problem is that the inner cycle includes a return. This refers to the inner cycle though, not the outer one. Maybe if there is a return statement in the cycle, the cycle variable is not incremented for efficacy, but in this case it leads to incorrect behavior.
Titan version
8.1.0
Platform details (OS type and version)
Wind10, Cygwin64
/cc @aknappqwt