1 /******************************************************************************
2 * Copyright (c) 2000-2016 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
9 * Adrien Kirjak – initial implementation
12 ** @purpose 1:13, Port with type anytype can send and receive messages of any basic or structured type: 'verdicttype' type.
13 ** @verdict pass accept, ttcn3verdict:pass
14 ***************************************************/
16 // #reqname /Requirements/13 Declaring messages/Any type can be declared as type of message in a message port type
19 module Sem_13_toplevel_declaring_msg_various_types_014{
20 type record CompositeType{
29 type enumerated MyEnum{
33 type integer MyArray[3];
49 universal charstring ucs,
61 type port MyPort message{
70 inout universal charstring;
76 } with {extension "internal"}
78 type component Sender{
83 type component Receiver{
88 function make_union() return MyUnion
95 const MsgType1 c_values := {
106 set1 := {int1:=1, str1:="the"},
107 union1 := {int := 1},
112 function f_sender() runs on Sender
116 src.send(c_values.v);
118 [] src.receive(c_values.v) { setverdict(pass); }
120 setverdict(fail, "Unexpected data, expected verdicttype ", c_values.v);
124 setverdict(fail, "No response from echo service");
130 function f_receiver() runs on Receiver
132 timer t_timer := 30.0;
136 [] dst.receive(c_values.v) { setverdict(pass); dst.send(c_values.v); }
138 [] dst.receive { setverdict(fail, "Unexpected messagem expected verdicttype", c_values.v); stop; }
139 [] t_timer.timeout { setverdict(fail, "No more messages"); stop; }
143 testcase TC_Sem_13_toplevel_declaring_msg_various_types_014() runs on MTC system MTC
145 var Sender c_sender := Sender.create;
146 var Receiver c_receiver := Receiver.create;
147 connect(c_sender:src, c_receiver:dst);
148 c_sender.start(f_sender());
149 c_receiver.start(f_receiver());
154 execute(TC_Sem_13_toplevel_declaring_msg_various_types_014())