1
Scope
2 References
3 Definitions and abbreviations
3.1 Definitions
3.2 Abbreviations
4
Introduction
4.0 General
4.1 The core language and presentation
formats
4.2 Unanimity of the specification
4.3 Conformance
5
Basic language elements
5.0 General
5.1 Ordering of language elements
5.2 Parameterization
5.3 Scope rules
5.4 Identifiers and keywords
6
Types and values
6.0 General
6.1 Basic types and values
6.2 Sub-typing of basic types
6.3 Structured types and values
6.4 The Anytype
6.5 Arrays
6.6 Recursive types
6.7 Type compatibility
7
Modules
7.0 General
7.1 Naming of modules
7.2 Module parameters
7.3 Module definitions part
7.4 Module control part
7.5 Importing from modules
8
Test configurations
8.0 General
8.1 Port communication model
8.2 Restrictions on connections
8.3 Abstract test system interface
8.4 Defining communication port types
8.5 Defining Component types
8.6 Addressing entities inside the SUT
8.7 Component references
8.8 Defining the test system interface
9
Declaring constants
10 Declaring variables
11 Declaring timers
11.0 General
11.1 Timers as parameters
12 Declaring messages
13 Declaring procedure signatures
13.0 General
13.1 Signatures for blocking and
non-blocking communication
13.2 Parameters of procedure signatures
13.3 Value returning remote procedures
13.4 Specifying exceptions
14 Declaring templates
14.0 General
14.1 Declaring message templates
14.2 Declaring signature templates
14.3 Template matching mechanisms
14.4 Parameterization of templates
14.5 Passing templates as parameters
14.6 Modified templates
14.7 Changing template fields
14.8 Match operation
14.9 Valueof operation
15 Operators
15.0 General
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 and altsteps
16.1 Functions
16.2 Altsteps
16.3 Functions and altsteps for
different component types
17 Test cases
17.0 General
17.1 Parameterization of test cases
18 Overview of program statements and
operations
19 Basic program statements
19.0 General
19.1 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.0 General
20.1 Alternative behaviour
20.2 The Repeat statement
20.3 Interleaved behaviour
20.4 The Return statement
21 Default handling
21.0 General
21.1 The default mechanism
21.2 Default references
21.3 The Activate operation
21.4 The Deactivate operation
22 Configuration operations
22.0 General
22.1 The Create operation
22.2 The Connect and Map operations
22.3 The Disconnect and Unmap
operations
22.4 The MTC, System and Self
operations
22.5 The Start test component operation
22.6 The Stop test component operation
22.7 The Running operation
22.8 The Done operation
22.9 Using component arrays
22.10 Summary of the use of any and all with
components
23 Communication operations
23.0 General
23.1 General format of communication
operations
23.2 Message-based communication
23.3 Procedure-based communication
23.4 The Check operation
23.5 Controlling communication ports
23.6 Use of Any and All with ports
24 Timer operations
24.0 General
24.1 The Start timer operation
24.2 The Stop timer operation
24.3 The Read timer operation
24.4 The Running timer operation
24.5 The Timeout operation
24.6 Summary of use of Any and All with
timers
25 Test verdict operations
25.0 General
25.1 Test case verdict
25.2 Verdict values and overwriting
rules
26 External actions
27 Module control part
27.0 General
27.1 Execution of test cases
27.2 Termination of test cases
27.3 Controlling execution of test
cases
27.4 Test case selection
27.5 Use of timers in control
28 Specifying attributes
28.0 General
28.1 Display attributes
28.2 Encoding of values
28.3 Extension attributes
28.4 Scope of attributes
28.5 Overwriting rules for attributes
28.6 Changing attributes of imported
language elements
Annex A – BNF and
static semantics
A.1 TTCN-3 BNF
Annex B – Matching
incoming values
B.1 Template matching mechanisms
Annex C – Pre-defined
TTCN-3 functions
C.1 Integer to character
C.2 Character to integer
C.3 Integer to universal character
C.4 Universal character to integer
C.5 Bitstring to integer
C.6 Hexstring to integer
C.7 Octetstring to integer
C.8 Charstring to integer
C.9 Integer to bitstring
C.10 Integer to hexstring
C.11 Integer to octetstring
C.12 Integer to charstring
C.13 Length of string type
C.14 Number of elements in a structured
type
C.15 The IsPresent function
C.16 The IsChosen function
C.17 The Regexp function
C.18 Bitstring to
charstring
C.19 Hexstring to
charstring
C.20 Octetstring
to character string
C.21 Character string to octetstring
C.22 Bitstring to
hexstring
C.23 Hexstring to
octetstring
C.24 Bitstring to
octetstring
C.25 Hexstring to
bitstring
C.26 Octetstring
to hexstring
C.27 Octetstring
to bitstring
C.28 Integer to float
C.29 Float to
integer
C.30 The random
number generator function
C.31 The Substring function
Annex D – Using other
data types with TTCN-3
D.1 Using ASN.1 with TTCN-3
Annex E (informative)
– Library of useful types
E.1 Limitations
E.2 Useful
TTCN-3 types
Annex F (informative)
– Bibliography
Annex G (informative)
– On the use of regular expressions and matching mechanisms in TTCN-3
G.1 Is a character following the
symbol "" a metacharacter?
G.2 Does "*" match the
shortest or the longest possible character sequence?
G.3 Do the metacharacters
"?" and "*" match line terminators?
G.4 What is the behaviour of unescaped
but "illegal" metacharacters? Does "ab]" match
a-b-right-square-bracket?
G.5 If foo := "ab", does
pattern "{foo}#(2)" match abb or abab?
G.6 How is "^" handled when
it is not the first character of a group?
G.7 Are metacharacters allowed within
a set preceded by a ""?
G.8 Can sets be nested?
G.9 Can a reference expression be used
inside a set?
G.10 How are "?" and
"*" used in TTCN-3 regular expressions?