Opened 7 years ago

Closed 7 years ago

#56 closed defect (fixed)

Superfluous warning for over-specific runs on clauses

Reported by: phdmakk Owned by:
Priority: major Milestone: v2.0.0 Series
Component: T3Q Version: 2.0
Keywords: Cc:

Description

The issue is related to incorrect termination criteria when searching for references to component definition recursively. It can terminate prematurely if the last called function does not have a runs on clause and is the same on several levels. In the example below, if the order of f_FX and f_F0 is changed it will be fine, but not as it is.

module Issue1 {
	type component C1 {
		var integer vc_V1;
	}

	function f_F0() runs on C1 {
		vc_V1 := 1;
	}

	function f_F1() runs on C1 {
		f_F0();
		f_FX();
	}

	function f_F2() runs on C1 {
		f_F1();
		f_FX();
	}

	function f_F3() runs on C1 {
		f_F2();
	}
	
	function f_FX() {
	}
}

Original report:

We have a bug report on a possible issue regarding T3Qv2 (latest working version, T3Q v2.0.0b18) on rule "checkNoOverSpecificRunsOnClauses"

Comparing the execution on module EUTRA_CommonFunctions_MBMS run with both T3Q and T3Qv2, there is no error message on T3Q but on T3Qv2 there is an error message that we think that should not be happening:

Validation output of C:\Users\arroyona\Documents\STF160\Trunk\ttcn\Common\EUTRA\EUTRA_CommonFunctions_MBMS.ttcn

C:\Users\arroyona\Documents\STF160\Trunk\ttcn\Common\EUTRA\EUTRA_CommonFunctions_MBMS.ttcn: 218: WARNING: Code Style: Definition for "f_EUTRA_CellInfo_GetMBMS_NotRepCoeff" contains an over specific runs on clause! (6.13, checkNoOverSpecificRunsOnClauses)

Where the function raising the error message is as follows:

/*

  • @desc Get the notification Repetition Coeff of the cell
  • @param p_CellId
  • @return integer
  • @status APPROVED (LTE_AR10R11)

*/

function f_EUTRA_CellInfo_GetMBMS_NotRepCoeff(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return integer

{

var SystemInformationBlockType13_r9 v_Sib13 := f_EUTRA_CellInfo_GetSib13(p_CellId);

var MBMS_NotificationRepCoeff_Type v_MCCH_NotRepCoeff := v_Sib13.notificationConfig_r9.notificationRepetitionCoeff_r9;

var integer v_RepCoeff;

select (v_MCCH_NotRepCoeff) {

case (n2) {

v_RepCoeff:= 2;

}

case (n4) {

v_RepCoeff := 4;

}

case else {

FatalError? (FILE, LINE, "invalid value for Notification Co-eff");

}

}

return v_RepCoeff;

}

The runs on message is necessary here as the call to function @EUTRA_CommonFunctions_MBMS.f_EUTRA_CellInfo_GetSib13' runs over component type@…_PTC'

This can be checked using the source code of our last delivery of 17wk10, on ATS LTE_AR10R11IWD17wk10:

http://www.3gpp.org/ftp/tsg_ran/WG5Test_ex-T1/TTCN/Deliveries/TTCN3/iwd-TTCN3-B2016-06D17wk10.zip

or directly testing following file of the ATS with T3qv2:

.\iwd-TTCN3-B2016-06D17wk10\LTE_AR10R11IWD17wk10\LTE_AR10R11IWD_17wk10\Common\EUTRA\EUTRA_CommonFunctions_MBMS.ttcn

Please let us know your thoughts and in case you agree, we will wait for a fixed version of the tool.

Change History (1)

comment:1 Changed 7 years ago by phdmakk

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.