Sem_0901_Communication_ports_002.ttcn 1.67 KB
Newer Older
/***************************************************
urbant's avatar
urbant committed
 ** @author   STF 451 (updated by STF 521)
 ** @version  0.0.2
 ** @purpose  1:9, Ensure that the the IUT receives the message sent by mycompA
 ** @verdict  pass accept, ttcn3verdict:pass
 ** @configuration  port:broadcast
 ***************************************************/

// Two component mycompA and B message exchange
module Sem_0901_Communication_ports_002{ 
  
urbant's avatar
urbant committed
	type port P message {
        inout integer
urbant's avatar
urbant committed
    type component Mysystem {
        timer t_rec,t_rec2;
        port P messagePort;
urbant's avatar
urbant committed
    function fsend() runs on Mysystem {
        messagePort.send(2);

        alt {
            [] messagePort.receive(3) {
                setverdict(pass);
            }
            [] messagePort.receive {
                setverdict(fail);
            }
        }
    }
    function frec() runs on Mysystem {
	    alt {
            []  messagePort.receive(2) {
                messagePort.send(3);
                setverdict( pass );
		    }
            [] messagePort.receive {
                setverdict( fail );
            }
        }
    }
urbant's avatar
urbant committed
    testcase TC_Sem_0901_Communication_ports_002() runs on Mysystem system Mysystem {
        var Mysystem MyCompA;
        var Mysystem MyCompB;
    
        MyCompA:=Mysystem.create;
        MyCompB:=Mysystem.create;
        connect(MyCompA:messagePort,MyCompB:messagePort);
	    
        MyCompB.start(frec());
        MyCompA.start(fsend());
    
        interleave {
            [] MyCompA.done {}
            [] MyCompB.done {}
        }
    }
urbant's avatar
urbant committed
    control {
        execute(TC_Sem_0901_Communication_ports_002(), 5.0);
    }