Skip to main content.

Putting all together:

Model File

A simple model file to show definition-use coverage. This file is saved as dusys.xml

Property

We save
cover duVar ({x}) restrict (ctl)
To the file PropDU.q

Observer

We save
observer duVar (varid X;) {
 node defined (varid, edgeid);
 node du (varid, edgeid, edgeid);

 rule start        to defined(X,E) with def(X,E);
 rule defined(X,E) to defined(X,E) with no def(X);
 rule defined(X,E) to du(X,E,E2)   with use(X,E2);

 accepting du;
}

To the file duVar.obs

Run

Now we can create the trace.

./CoVer.exe -t 0 -G -f duTraces.tr  dusys.xml PropDU.q 

In file duTraces.tr we find
===== Trace #1===================================
 du<varid offset=0, edgeid ctl.id1_to_id2, edgeid ctl.id2_to_id3> 
State:
( ctl.id1 )
x=0 
mincost: 0

Transitions:
  ctl.id1->ctl.id2 { 1, tau, x := 1 }

State:
( ctl.id2 )
x=1 
mincost: 0

Transitions:
  ctl.id2->ctl.id3 { 1, tau, x := x + 1 }

State:
( ctl.id3 )
x=2 
mincost: 0

===== Trace #2===================================
 du<varid offset=0, edgeid ctl.id1_to_id2, edgeid ctl.id2_to_id4> 
State:
( ctl.id1 )
x=0 
mincost: 0

Transitions:
  ctl.id1->ctl.id2 { 1, tau, x := 1 }

State:
( ctl.id2 )
x=1 
mincost: 0

Transitions:
  ctl.id2->ctl.id4 { 1, tau, x := x + 2 }

State:
( ctl.id4 )
x=3 
mincost: 0