Opened 7 years ago
Closed 7 years ago
#57 closed defect (fixed)
Over specific runs on not triggered in obvious cases
Reported by: | phdmakk | Owned by: | phdmakk |
---|---|---|---|
Priority: | major | Milestone: | v2.0.0 Series |
Component: | T3Q | Version: | 2.0 |
Keywords: | Cc: |
Description
The check for over specific runs on clauses is not triggered in obvious cases
Considering the example below, calling a function that runs on a different component and references its elements will cause the check for over specific runs on to fail on the calling function.
module Issue1m { type component C1 { } type component C2 { var integer vc_I; } function f_F1 () runs on C1 { f_F2(); //This fixes the over-specific runs on even though it has nothing to do with it } function f_F2 () runs on C2 { vc_I := 1; } }
Change History (7)
comment:1 Changed 7 years ago by phdmakk
- Owner set to phdmakk
- Status changed from new to assigned
comment:2 Changed 7 years ago by phdmakk
- Resolution set to fixed
- Status changed from assigned to closed
comment:3 Changed 7 years ago by phdmakk
- Resolution fixed deleted
- Status changed from closed to reopened
comment:4 Changed 7 years ago by phdmakk
comment:5 Changed 7 years ago by phdmakk
There is still a deadlock during analysis for some reason. The following files do not seem to be analysed:
- LTE_A_R12/19/D2D_Communication_Testcases.ttcn
- LTE_A_R12/D2D_MTC/MTC_Main_LTE_D2D.ttcn
Both of them were reported to contain functions for which the over-specific runs on clause was failing to report issues.
comment:6 Changed 7 years ago by phdmakk
Turns out it got stuck if it was not an alt step or a function - templates for example. Added a branch to catch and discard others.
comment:7 Changed 7 years ago by phdmakk
- Resolution set to fixed
- Status changed from reopened to closed
The implementation did not differentiate between the called functions and so if one used any part of its own component definition it will under-report over-specific runs on clauses
The solution is to check if the component of the referenced function is the same as the component of the referencing function.