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