Altstep parameterization problem
Summary
TITAN allows activated altstep to have out parameter, while the standard does not.
Steps and/or TTCN-3 code to reproduce
Create a module with the following content:
type port pt_intport message{
inout integer
}with{extension "internal"}
type component ct_twointports{
port pt_intport P;
var template integer tv := ?;
}
testcase tc_out_inout_parameters_for_templates_activated_altsteps_1() runs on ct_twointports{ //shall result in error
connect(self:P,self:P);
var default d := activate(as_out_inout_parameters_for_templates_activated_altsteps_1(tv));
P.send(2);
P.receive(1);
if(valueof(tv)==2){setverdict(pass);}
deactivate(d);
}
altstep as_out_inout_parameters_for_templates_activated_altsteps_1(out template integer p) runs on ct_twointports{
[] P.receive(2) {setverdict(pass);p:=2}
}
Then compile and execute.
What is the current bug behavior?
The test case runs and passes. This mean that the out parameter of the activated altstep gets an out value indeed.
What is the expected correct behavior?
According to clause 5.4.1.2 (b) this shall not work. This means that it should either result in a compilation error or a dynamic test case error. (Note: I don't see any reason why this is logical, but the standars states so.) Also, this should be the result for an inout parameter as well.
Relevant logs and/or screenshots
Possible fixes
Titan version
8.1.2
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt