Functions Using const Parameters
Component Testing for C
Functions using const parameters sometimes produce compilation errors when stubbed withHCL® OneTest™ Embedded.
This is because the preprocessor generates variables that are used for testing calls to the STUBs. These variables have the same type as the parameter to the function being stubbed: const int. These const variables cannot be modified, causing the compilation errors.
To work around this problem, you can to indicate that type modifiers for a STUB parameter should be used in the function definition, but not in the declaration of the variables used to control the STUBs.
To do this, add an @ character as a prefix to the the type modifier. If your function takes a const pointer, then you don't need the @ prefix:
This technique can be used with any type modifier.
Example
Consider the following function:
extern int ConstParam(const int param);
To stub the function, you would normally write the following lines in the .ptu test script. These will produce compilation error messages:
DEFINE STUB Example
#int ConstParam(const int _in param);
END DEFINE
Instead, use the following syntax to define the stub:
DEFINE STUB Example
#int ConstParam(@const int _in param);
END DEFINE
If your function takes a const pointer:
DEFINE STUB Example
#int ConstParam(const int _in *param);
END DEFINE