�1����
Scope�
�2����
References�
�3���� Definitions and
abbreviations��������
������� 3.1���� Definitions�
������� 3.2���� Definitions from ITU-T Rec. X.290 and ISO/IEC 9646-1��
������� 3.3���� Definitions from ITU-T Rec. X.292
and ISO/IEC 9646-3��
����� ��3.4���� Abbreviations��������
�4����
Introduction������
������� 4.1���� The core language and presentation formats
�5���� Basic language
elements���
������� 5.1���� Definitions,
instances and declarations��������
������� 5.2���� Ordering of
language elements��������
������������� ����5.2.1���� Forward
references����������
������� 5.3���� Parameterization����
�����������������
5.3.1���� Parameter passing by reference and by value���������
�����������������
5.3.2���� Formal and actual parameter lists��
�����������������
5.3.3���� Empty formal parameter list�����������
�����������������
5.3.4���� Nested parameter lists������
������� 5.4���� Scope rules�����������
�����������������
5.4.1���� Scope and overloading of identifiers����������
�����������������
5.4.2���� Scope of formal parameters����������
������� 5.5���� Identifiers and
keywords����
�6���� Types and
values�
������� 6.1���� Basic types and
values�������
�����������������
6.1.1���� Basic string types and values���������
�����������������
6.1.2���� Accessing individual string elements�����������
������� 6.2���� User-defined
subtypes and values��
�����������������
6.2.1���� Lists of values�������
�����������������
6.2.2���� Ranges�����
�����������������
6.2.3���� String length restrictions����
������� 6.3���� Structured types and values
����������������� 6.3.1���� Record type and values�����
����������������� 6.3.2���� Set type and values�����������
����������������� 6.3.3���� Records and sets of single types����
�����������������
6.3.4���� Enumerated type and values����������
����������������� 6.3.5���� Unions������
������� 6.4���� Arrays����
������� 6.5���� Recursive types�����
������� 6.6���� Type
parameterization��������
������� 6.7���� Type
compatibility�
�����������������
6.7.1���� Type conversion���
�7���� Modules����
������� 7.1���� Naming of
modules
������� 7.2���� Parameterization
of modules�����������
�����������������
7.2.1���� Default values for module parameters��������
������� 7.3���� Module
definitions part������
�����������������
7.3.1���� Groups of definitions���������
������� 7.4���� Module control
part�����������
������� 7.5���� Importing from
modules�����
����������������� 7.5.1���� Rules on using Import�������
����������������� 7.5.2���� Importing single definitions
����������������� 7.5.3���� Importing all definitions of a module�����������
�����������������
7.5.4���� Importing groups��
����������������� 7.5.5���� Importing definitions of the same kind��������
�������������� ���7.5.6����
Recursive import of complex definitions�����
�����������������
7.5.7���� Handling name clashes on import���
�����������������
7.5.8���� Handling multiple references to the same definition�
�����������������
7.5.9���� Import and module parameters������
� ����������������7.5.10���� Import
definitions from non-TTCN modules��������
�8���� Test
configurations�����������
������� 8.1���� Port
communication model�
������� 8.2���� Abstract test
system interface���������
������� 8.3���� Defining
communication port types�
�����������������
8.3.1���� Mixed ports����������
������� 8.4���� Defining
component types��
����������������� 8.4.1���� Declaring local variables and timers in a
component�����������
�����������������
8.4.2���� Defining components with arrays of ports��
������� 8.5���� Addressing
entities inside the SUT��
������� 8.6���� Component
references�������
������� 8.7���� Defining the
test system interface����
�9���� Declaring
constants����������
10���� Declaring variables����������
11���� Declaring timers��
������ 11.1���� Timers as
parameters��������
12���� Declaring messages���������
������ 12.1���� Optional
message fields�����
13���� Declaring procedure signatures����
������ 13.1���� Omitting actual
parameters
������ 13.2���� Specifying
exceptions��������
14���� Declaring templates���������
������ 14.1���� Declaring
message templates���������
����������������� 14.1.1�� ��Templates for sending messages��
�����������������
14.1.2���� Templates for receiving messages
������ 14.2���� Declaring
signature templates��������
����������������� 14.2.1���� Templates for calling procedures�
�����������������
14.2.2���� Templates for accepting procedure calls��
������ 14.3���� Template
matching mechanisms�����
������ 14.4���� Parameterization of templates��������
�����������������
14.4.1���� Parameterization with matching attributes�
������ 14.5���� Passing templates as parameters����
������ 14.6���� Modified
templates�����������
�����������������
14.6.1���� Parameterization of modified templates����
�����������������
14.6.2���� In-line modified templates�����������
������ 14.7���� Changing
template fields����
������ 14.8���� Match Operation��
������ 14.9���� Valueof operation�
15�� ��Operators�
������ 15.1���� Arithmetic operators���������
������ 15.2���� String operators����
������ 15.3���� Relational
operators����������
������ 15.4���� Logical operators��
������ 15.5���� Bitwise
operators��
������ 15.6���� Shift operators������
������ 15.7���� Rotate operators���
16���� Functions��
������ 16.1���� Parameterization
of Functions��������
������ 16.2���� Invoking
functions�
������ 16.3���� Predefined
functions����������
17���� Test cases�
18���� Program statements and operations���������
19���� Basic program statements����
19.1 �����Expressions�����
19.1.1 �����Boolean expressions�����
19.2����� Assignments�����
19.3 �����The Log statement�����
19.4 �����The Label statement�����
19.5 �����The Goto statement�����
19.6����� The If-else statement�����
19.7 �����The For statement� ����
19.8 �����The While statement�����
19.9����� The Do-while statement�����
19.10 �����The Stop execution statement�����
20 �����Behavioural program statements�����
20.1 �����Sequential behaviour�����
20.2 �����Alternative behaviour�����
20.2.1 �����Execution of alternative behaviour�����
20.2.2 �����Selecting/deselecting an
alternative�����
20.2.3����� Else branch in
alternatives�����
20.2.4 �����Declaring named alternatives�����
20.2.5 �����Expanding alternatives with named
alternatives�����
20.2.6����� Parameterization of named
alternatives�����
20.2.7 �����The Label statement in
behaviour�����
20.2.8 �����The Goto statement in behaviour�����
20.3 �����Interleaved behaviour�����
20.4 �����Default behaviour�����
20.4.1����� The Activate and Deactivate
operations�����
20.5 �����The Return statement�����
21 �����Configuration operations�����
21.1 �����The Create operation�����
21.2 �����The Connect and Map operations�����
21.2.1 �����Consistent connections�����
21.3 �����The Disconnect and Unmap
operations�����
21.4 �����The MTC, System and Self
operations�����
21.5 �����The Start test component
operation�����
21.6 �����The Stop test component
operation�����
21.7 �����The Running operation�����
21.8 �����The Done operation�����
21.9 �����Using component arrays�����
21.10 �����Use of Any and All with
components�����
22 �����Communication operations�����
22.1 �����Sending operations�����
22.1.1 �����General format of the sending
operations�����
22.1.2 �����The Send operation�����
22.1.3 �����The Call operation�����
22.1.4����� The Reply operation�����
22.1.5 �����The Raise operation�����
22.2 �����Receiving operations�����
22.2.1 �����General format of the receiving
operations�����
22.2.2����� The Receive operation�����
22.2.3����� The Trigger operation�����
22.2.4����� The Getcall operation�����
22.2.5����� The Getreply operation�����
22.2.6����� The Catch operation�����
22.2.7����� The Check operation�����
22.3����� Controlling communication
ports�����
22.3.1����� The Clear port
operation�����
22.3.2 �����The Start port operation�����
22.3.3����� The Stop port operation�����
22.4 �����Use of any and all with ports�����
23 �����Timer operations�����
23.1 �����The Start timer operation�����
23.2��� ��The Stop timer operation�����
23.3����� The Read timer operation�����
23.4����� The Running timer
operation�����
23.5����� The Timeout event�����
23.6����� Use of any and all with
timers�����
24 �����Test verdict operations�����
24.1 �����Test case verdict�����
24.2 �����Verdict values and overwriting
rules�����
24.2.1����� Error verdict�����
25����� SUT operations�����
26 �����Module control part�����
26.1 �����Execution of test cases�����
26.2����� Termination of test cases�����
26.3 �����Controlling execution of test
cases�����
26.4 �����Test case selection�����
26.5����� Use of timers in control�����
27 �����Specifying attributes�����
27.1 �����Display attributes�����
27.2 �����Encoding attributes�����
27.2.1����� Invalid encodings� ����
27.3����� Extension attributes�����
27.4����� Scope of attributes�����
27.5 �����Overwriting rules for
attributes�����
27.6 �����Changing attributes of imported
language elements�����
Annex A - BNF
and static semantics�����
A.1����� TTCN-3 BNF�� ���
A.1.1����� Conventions for the syntax
description�����
A.1.2����� Statement terminator
symbols�����
A.1.3����� Identifiers�����
A.1.4����� Comments�����
A.1.5����� TTCN-3 terminals�����
A.1.6����� TTCN-3 syntax BNF
productions�����
Annex B - Operational
semantics�����
B.1����� Structure of this annex�����
B.2����� Replacement of shorthand
notations and macro calls�����
B.2.1����� Order of replacement
steps�����
B.2.2����� Adding stop and return
operations in behaviour descriptions�����
B.2.3 �����Replacement of global
constants and module parameters�����
B.2.4����� Embedding single receiving
operations into alt statements�����
B.2.5����� Macro expansion�����
B.2.6����� Replacement of the interleave
construct�����
B.2.7����� Expansion of defaults�����
B.2.8����� Replacement of trigger
operations�����
B.2.9����� Replacement of the keywords
'any' and 'all'�����
B.3����� Flow graph semantics of
TTCN-3�����
B.3.1����� Flow graphs�����
B.3.2����� Flow Graph Representation of
TTCN-3 behaviour�����
B.3.3����� State definitions for TTCN-3
modules�����
B.3.4����� Messages, procedure calls,
replies and exceptions�����
B.3.5����� Call records for functions
and test cases�����
B.3.6����� The evaluation procedure for
a TTCN-3 module�����
B.3.7� ����Flow graph segment definitions for TTCN-3 constructs�����
B.3.8����� Lists of operational semantic
components�����
Annex C -
Matching incoming values�����
C.1����� Template matching
mechanisms�����
C.1.1����� Matching specific values�����
C.1.2�� ���Matching mechanisms instead of values�����
C.1.3����� Matching mechanisms inside
values�����
C.1.4����� Matching attributes of
values�����
C.1.5����� Matching character
pattern�����
Annex D -
Pre-defined TTCN-3 functions�����
D.1����� Pre-defined TTCN-3
functions�����
D.1.1����� Integer to character�����
D.1.2����� Character to integer�����
D.1.3����� Integer to universal
character�����
D.1.4����� Universal character to
integer�����
D.1.5����� Bitstring to integer�����
D.1.6����� Hexstring to integer�����
D.1.7����� Octetstring to integer�����
D.1.8����� Charstring to integer�����
D.1.9����� Integer to bitstring�����
D.1.10����� Integer to hexstring�����
D.1.11����� Integer to octetstring�����
D.1.12����� Integer to charstring�����
D.1.13����� Length of string type�����
D.1.14����� Number of elements in a
structured type�����
D.1.15����� The IsPresent function�����
D.1.16����� The IsChosen function�����
Annex E -
Using other data types with TTCN-3�����
E.1����� Using ASN.1 with TTCN-3�����
E.1.1����� ASN.1 and TTCN-3 type
equivalents�����
E.1.2����� ASN.1 data types and
values�����
E.1.3����� Parameterization in
ASN.1�����
E.1.4����� Defining message types with
ASN.1�����
E.1.5����� Defining ASN.1 message
templates�����
E.1.6�� ���Encoding information�����