Sem_060210_ReuseofComponentTypes_002.ttcn 1.84 KB
Newer Older
kovacsa's avatar
kovacsa committed
/*****************************************************************
 ** @author   STF 487
 ** @version  0.0.1
 ** @purpose  1:6.2.10, Ensure that extending a component with several other component works properly
 ** @verdict  pass accept, ttcn3verdict:pass
 *****************************************************************/

/* The following requirements are tested:
 * When defining component types by extending more than one parent type,
 * there shall be no name clash between the definitions of the different parent types,
 * i.e. there shall not be a port, variable, constant or timer identifier that is declared
 * in any two of the parent types (directly or by means of extension). 
 */

module Sem_060210_ReuseofComponentTypes_002 {
 
 //MyCompA has a port pt_myPortA
 type component MyCompA {
       port loopbackPort pt_myPortA;
    }
    
 //MyComp has a port pt_myPortB
 type component MyCompB {
       port loopbackPort pt_myPortB;
    }
    
//Component GeneralComp has a timer and inherit two ports from MyCompA and MyCompB   
 type component GeneralComp extends MyCompA, MyCompB {
        timer t;
    }
    
    type port loopbackPort message {
        inout integer;
        inout float;
    }
  

    testcase TC_Sem_060210_ReuseofComponentTypes_002() runs on GeneralComp {
   
  //Send an integer from pt_myPortA:
     pt_myPortA.send(2);    
    alt {
     [] pt_myPortA.receive(2) {
        setverdict(pass);
     }
     [] pt_myPortA.receive {
        setverdict(fail);
     }
    }
        
  //Send an integer from pt_myPortB:
     pt_myPortB.send(1.0);    
    alt {
     [] pt_myPortB.receive(1.0) {
        setverdict(pass);
     }
     [] pt_myPortB.receive {
        setverdict(fail);
     }
    }

  }

    control{
        execute(TC_Sem_060210_ReuseofComponentTypes_002());
    }
}