Skip to content
LibIot_TestInterface.ttcn 3.39 KiB
Newer Older
Bostjan Pintar's avatar
Bostjan Pintar committed
/*
 *	@author 	STF 370
 *  @version    $Id: LibIot_TestInterface.ttcn 16 2009-06-16 15:06:42Z pintar $
 *	@desc		This module provides the types and components used by the test 
 *				system component for Interoperability tests.
 */

module LibIot_TestInterface {

	import from LibUpperTester {
		type EquipmentOperationReq, EquipmentOperationRsp;
	}

	import from LibIot_TypesAndValues all;

	import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;}

	import from LibCommon_Sync all;
	import from LibSip_SIPTypesAndValues all; 
	import from AtsImsIot_TypesAndValues all;
	
	
	group abstractTestComponents {
		/**
		* @desc
		*     used to coordinate the behavior of other components. It is in charge
		*     of controlling the overall execution, manangement of testing phases,
		*     test verdicts collection and synchronization. Used as MTC.
		*/
		type component TestCoordinator extends OracleServer {
			var ComponentIdList vc_compIds;
			port AdapterConfigPort acPort;
		}
    	
		/**
		* @desc
		*     collecting information to manage E2E and conformance verdicts.
		*     Can be used as MTC.
		*/				
		type component OracleServer extends ServerSyncComp {
			port VerdictPort vPort;
			var VerdictType vc_e3e_verdict := {none, "init"};
			var VerdictType vc_conf_verdict := {none, "init"};
		}
		
		type component OracleClient extends SelfSyncComp {
			port VerdictPort vPort;
		}
    	
		/**
		* @desc
		*     This component type is used to monitor interfaces.
		*     The library provides on the adapter configuration port.
		* @remark
		*     As part of the ATS test system module this component type must be
		*     extended to include the ATS specific data port!
		*/
		type component InterfaceMonitor extends OracleClient {
			timer tc_wait := PX_MAX_MSG_WAIT;
			var charstring vc_interfaceName := "Undefined";
			var MonitorInterfaceInfo vc_Interface;
			port AdapterConfigPort acPort;
		}
    	
    	
    /**
	 * @desc
	 *     This component type is used to trigger, stimualte, configure etc any
	 *     equipment related to the test, i.e., EUTs or other, or the
	 *     interconnecting network. To be used as PTC.
	 */
	type component EquipmentUser extends OracleClient{
		port EquipmentAccessPort eaPort;
		timer T_Equipment;
	}
    	
		/**
		* @desc This component type is used to trigger, stimulate, configure etc 
		*       any equipment related to the test, i.e., EUTs or other, or 
		*       the interconnecting network. To be used as PTC.
		*/
		type component IotEquipmentUser extends EquipmentUser {
		}
		
//	TODO commented out due to problems with tools not accepting 'extends' from several components
	/**
		* @desc This component type is used to trigger, stimulate, configure etc 
		*       any equipment related to the test, i.e., EUTs or other, or 
		*       the interconnecting network. To be used as PTC.
		*/
//		type component IotEquipmentUser extends EquipmentUser, OracleClient {
//		}
		
	}// end group abstractTestComponents
	
	group portDefinitions {
		
		type port EquipmentAccessPort message {
			out EquipmentOperationReq;
			in EquipmentOperationRsp;
		}
		type port VerdictPort message {
			inout IotVerdict;
		}
		
		type port AdapterConfigPort message {
			out GeneralConfigurationReq; 
			out SetFilterReq; 
			out StartTrafficCaptureReq; 
			out StopTrafficCaptureReq; 
			in  GeneralConfigurationRsp;	
			in  SetFilterRsp;	
			in  StartTrafficCaptureRsp;	
			in  StopTrafficCaptureRsp;	
		}	
	}// end group portDefinitions
}