Topic
2 replies Latest Post - ‏2012-12-10T14:40:22Z by chr_btc-es
RichaM
RichaM
70 Posts
ACCEPTED ANSWER

Pinned topic Test Conductor(code coverage) issue in assertion mode

‏2012-12-10T09:13:30Z |
Hi

I am attaching a MSVC9 project. This project has a Default Package with a single class. I created 2 test architectures and trying to do code coverage,

1, In TPkg_class_0 , it is using default package as a library , and when i add a test case and try building it ,it gives linking error:

TCon_class_0.obj : error LNK2019: unresolved external symbol "void __cdecl class_01_osc_goals_evaluate(int)" (?class_01_osc_goals_evaluate@@YAXH@Z) referenced in function "public: void __thiscall TCon_class_0::dump_code_coverage(void)" (?dump_code_coverage@TCon_class_0@@QAEXXZ)
TPkg_class_0_Comp.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"' : return code '0x460'

2. In TPkg_class_0_1, class_0 is in scope of test project. Now i am able to build the project as well and also code coverage is computed.

However i want to use my package as a library. What change should i make so that i can do code coverage even when i am using library and not building SUT in scope of test project.

I am attaching my model as well.

Attachments

Updated on 2012-12-10T14:40:22Z at 2012-12-10T14:40:22Z by chr_btc-es
  • RichaM
    RichaM
    70 Posts
    ACCEPTED ANSWER

    Re: Test Conductor(code coverage) issue in assertion mode

    ‏2012-12-10T11:14:10Z  in response to RichaM
    I would like to add one more point to my query, when i am using SUT in a library, and CoverageKind : SUT_Flat or SUT_Hierarchical. tmp folder is not getting generated, Annotation does not start.

    However when I change coveragekind to TestContext_Flat or Hierarchical, in this case, annotation starts and tmp creates but for TestComponent class and TCON class and again not for SUT. So linking error is still there.

    Please help.
    • chr_btc-es
      chr_btc-es
      66 Posts
      ACCEPTED ANSWER

      Re: Test Conductor(code coverage) issue in assertion mode

      ‏2012-12-10T14:40:22Z  in response to RichaM
      Hi,

      to be able to compute code coverage, the source code must be instrumented (annotated) with additional code to collect the coverage data before the code is compiled. If you create a library for the SUT, the library does not contain the needed annotation. This causes the linker error because expected functions like TCon_class_0::dump_code_coverage do not exist in the library for the SUT.

      Computing code coverage for a SUT in a library is not supported out of the box.

      Regards, Christian.