ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0006238 | Part 01: TTCN-3 Core Language | Editorial | public | 01-08-2012 09:41 | 10-08-2012 09:52

Reporter | Tomas Urban |
Assigned To | Ina Schieferdecker |
Priority | normal | Severity | text | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v4.4.1 (published 2012-04) |
Target Version | v4.5.1 (published 2013-04) | Fixed in Version | v4.5.1 (published 2013-04) |
Clause Reference(s) | 20.4
Source (company - Author) | Elvior

Summary | 0006238: Interleave example

Description

Two sections of the interleave example are not correctly transformed:
1.
[] PCO1.receive(MySig3) {
PCO2.receive(MySig4);
PCO2.send(MySig5);
PCO2.send(MySig6);
PCO2.receive(MySig7)
}
shall be
[] PCO1.receive(MySig3)
{
alt {
[]PCO2.receive(MySig4) {
PCO2.send(MySig5);
PCO2.send(MySig6);
PCO2.receive(MySig7)
}
}
2.
[] PCO2.receive(MySig7) {
PCO1.receive(MySig1);
PCO1.send(MySig2);
PCO1.receive(MySig3);
}
shall be
[] PCO2.receive(MySig7) {
alt {
[] PCO1.receive(MySig1) {
PCO1.send(MySig2);
PCO1.receive(MySig3);
}
}
Both version are identical in case of nominal test case execution, but they produce different results if a default is activated when executing PCO2.receive(MySig4) or PCO2.receive(MySig1).

Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |
Attached Files | CR6238-JG-120809.doc (71,168) 09-08-2012 10:24 http://oldforge.etsi.org/mantis/file_download.php?file_id=2710&type=bug

Issue History
Date Modified | Username | Field | Change
01-08-2012 09:41 | Tomas Urban | New Issue |
01-08-2012 09:41 | Tomas Urban | Clause Reference(s) | => 20.4
01-08-2012 09:41 | Tomas Urban | Source (company - Author) | => Elvior
07-08-2012 17:40 | Gyorgy Rethy | Status | new => assigned
07-08-2012 17:40 | Gyorgy Rethy | Assigned To | => Gyorgy Rethy
07-08-2012 17:56 | Gyorgy Rethy | Note Added: 0010987 |
07-08-2012 17:58 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Tomas Urban
08-08-2012 09:44 | Gyorgy Rethy | Assigned To | Tomas Urban => Jens Grabowski
09-08-2012 10:24 | Jens Grabowski | File Added: CR6238-JG-120809.doc |
09-08-2012 10:25 | Jens Grabowski | Note Added: 0010998 |
09-08-2012 10:27 | Jens Grabowski | Assigned To | Jens Grabowski => Ina Schieferdecker
10-08-2012 09:52 | Ina Schieferdecker | Note Added: 0011018 |
10-08-2012 09:52 | Ina Schieferdecker | Status | assigned => closed
10-08-2012 09:52 | Ina Schieferdecker | Resolution | open => fixed
10-08-2012 09:52 | Ina Schieferdecker | Fixed in Version | => Edition 4.5.1
10-08-2012 09:52 | Ina Schieferdecker | Target Version | => Edition 4.5.1

Notes

(0010987)
Gyorgy Rethy
07-08-2012 17:56

Let look at the first case:
1.
alt {
[] PCO1.receive(MySig3) {
PCO2.receive(MySig4);
PCO2.send(MySig5);
PCO2.send(MySig6);
PCO2.receive(MySig7)
}
as a standalone receive is a shorthand for an alt with a single receiveing branch, the above is the same as:
alt {
[] PCO1.receive(MySig3) {
alt { [] PCO2.receive(MySig4){} };
PCO2.send(MySig5);
PCO2.send(MySig6);
alt { [] PCO2.receive(MySig7){} }
}
your proposal is:
alt {
[] PCO1.receive(MySig3)
{
alt {
[]PCO2.receive(MySig4) {
PCO2.send(MySig5);
PCO2.send(MySig6);
PCO2.receive(MySig7)\
//this receive can also be extended to an alt with a single branch
}
}
i.e. all activated defaults in both cases will be invoked for both the PCO2.receive(MySig4) and the PCO2.receive(MySig7) statements (separately, of course). Thus, I cannot see how the behaviours of the current example and the proposed changed example differ.

(0010998)
Jens Grabowski
09-08-2012 10:25

After STF discussion implemented as proposed by reporter. Resolution is in the attached file. Assigned to Ina for implementation.

(0011018)
Ina Schieferdecker
10-08-2012 09:52

as proposed