Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / compileonly / namedActualParameters / TnamedActualParameters.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2015 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8 module TnamedActualParameters
9 {
10 type component C1 { }
11
12 type component C2
13 {
14 timer T_e := 2.718281828459045;
15 }
16
17 function foo(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
18 {
19 setverdict(pass);
20 }
21
22 testcase foo_tc() runs on C1
23 {
24 foo(13, 3.1415926535897932384626433, "Hello", true, 'BAADF00D'H);
25 foo(42, 2.718281828459045, "Yikes"); // ok, par4-5 defaulted
26 foo(par1 := 3, par2 := 0.0, par3 := "Nomen est omen", par4 := true, par5 := 'BABEFACE'H); // all named parameters
27 foo(par1 := 3, par2 := 6.02214199E23, par3 := "A"); // par1-3 named, par4-5 defaulted
28 }
29
30 altstep foo_altstep(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H) runs on C2
31 {
32 [] T_e.timeout { setverdict(pass); }
33 }
34
35 testcase foo_altstep_tc() runs on C2
36 {
37 T_e.start;
38 alt {
39 [] foo_altstep(13, 2.718281828459045535897932384626433, "Hello", true, 'BAADF00D'H);
40 [] foo_altstep(42, 2.718281828459045, "Yikes"); // ok, par4-5 defaulted
41 [] foo_altstep(par1 := 3, par2 := 0.0, par3 := "Nomen est omen", par4 := true, par5 := 'BABEFACE'H); // all named parameters
42 [] foo_altstep(par1 := 3, par2 := 6.02214199E23, par3 := "A"); // par1-3 named, par4-5 defaulted
43 }
44 }
45
46 function omit_default(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
47 {
48 setverdict(pass);
49 }
50
51 testcase omit_default_tc() runs on C1
52 {
53 // OK: omit all unnamed parameters
54 omit_default(par1 := 4, par2 := 6.66, par3 := "string");
55 }
56
57 altstep omit_default_altstep(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
58 {
59 [] any timer.timeout { setverdict(pass); }
60 }
61
62 testcase omit_default_altstep_tc() runs on C2
63 {
64 T_e.start;
65 alt {
66 // OK: omit all unnamed parameters
67 [] omit_default_altstep(par1 := 4, par2 := 6.66, par3 := "string");
68 }
69 }
70
71 function omit_explicit(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
72 {
73 setverdict(pass);
74 }
75
76 testcase omit_explicit_tc() runs on C1
77 {
78 // OK: par1-3 omitted from the unnamed part but set in the named part
79 omit_explicit(par1 := 13, par2 := 127.001, par3 := "Home, sweet home", par4:=false, par5:='00000000'H);
80 }
81
82 altstep omit_explicit_altstep(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
83 {
84 [] any timer.timeout { setverdict(pass); }
85 }
86
87 testcase omit_explicit_altstep_tc() runs on C2
88 {
89 T_e.start;
90 alt {
91 // OK: par1-3 omitted from the unnamed part but set in the named part
92 [] omit_explicit_altstep( par1 := 13, par2 := 127.001, par3 := "Home, sweet home", par4:=false, par5:='00000000'H);
93 }
94 }
95
96 function omit_omit(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
97 {
98 setverdict(pass);
99 }
100
101 testcase omit_omit_tc() runs on C1
102 {
103 // OK: par1-3 from named, par4-5 from defaults
104 omit_omit(par1 := 4, par2 := 4.0, par3 := "four");
105 }
106
107 altstep omit_omit_altstep(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
108 {
109 [] any timer.timeout { setverdict(pass); }
110 }
111
112 testcase omit_omit_altstep_tc() runs on C2
113 {
114 T_e.start;
115 alt {
116 // OK: par1-3 from named, par4-5 from defaults
117 [] omit_omit_altstep(par1 := 4, par2 := 4.0, par3 := "four");
118 }
119 }
120
121 function tcparam(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
122 {
123 setverdict(pass);
124 }
125
126 testcase tcparam_tc(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H) runs on C1
127 {
128 tcparam(par1, par2, par3, par4, par5);
129 }
130
131 altstep tcparam_altstep(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H)
132 {
133 [] any timer.timeout { setverdict(pass); }
134 }
135
136 testcase tcparam_altstep_tc(in integer par1, in float par2, in charstring par3, in boolean par4 := false, in hexstring par5 := 'DECAFBAD'H) runs on C2
137 {
138 T_e.start;
139 alt {
140 [] tcparam_altstep(par1, par2, par3, par4, par5);
141 }
142 }
143
144 // For HK33280.
145 altstep HK33280_as(in integer par1) { [] any timer.timeout { setverdict(pass) } }
146 function HK33280(in integer par1) { }
147 testcase HK33280_tc(in integer par1, in integer par2) runs on C2
148 {
149 T_e.start
150 alt { [] HK33280_as(par1 := par1 + par1 + par1) }
151 HK33280(par1 := 1 + 2 * par1 + par1)
152 }
153
154 control
155 {
156 execute(tcparam_tc(par1 := 42, par2 := 0.0, par3 := "zero", par4 := true, par5 := '11111111'H)); // named
157 execute(tcparam_altstep_tc(par1 := 42, par2 := 0.0, par3 := "zero", par4 := true, par5 := '11111111'H)); // named
158 execute(HK33280_tc(par1 := 1 + 2 + 3, par2 := 1 + 2 + 3 + 4)); // named
159 }
160 }
This page took 0.066288 seconds and 5 git commands to generate.