Testing Pointers against Pointer Structure Elements

Component Testing for C

To test pointers against structure elements which are also pointers, specify for each pointer the variable it is pointing to.

For example, consider the following code:

typedef struct st_Test

{

      int a;

      int b;

      struct st_Test *Ptr1;

}st_Toto;

int FunctionTest (st_Toto *p_toto)

{

      int res=0;

if (p_toto != 0)

{

      if(p_toto->Ptr1 == 0)

      {

              res = 1;

  }

}

else

{

      res = 2;

}

      return(res);

}

 

To test the pointer p_toto, write the following test script:

SERVICE TestFunction

SERVICE_TYPE extern

-- Tested service parameter declarations

      #st_toto *p_toto;

-- By function returned type declaration

      #int ret_TestFunction;

      ENVIRONMENT ENV_TestFunction

      VAR ret_TestFunction,  init = 0,  ev = init

      END ENVIRONMENT -- ENV_TestFunction

      USE ENV_TestFunction

      TEST 1

      FAMILY nominal

              ELEMENT

        

          STR *p_toto,  init = { a => 0, b => 0, Ptr1 => NIL }, ev= init

          STR *p_toto->Ptr1, init = {a=>2,b=>32, Ptr1=>NIL}, ev= init

          VAR ret_TestFunction,  init = 0, ev = init

          #ret_TestFunction = TestFunction(p_toto);

              END ELEMENT

      END TEST -- TEST 1

FIN SERVICE -- TestFunction