Sitemap | Contact

Company Evaluations Purchase Support What´s new

Testwell CTC++ / Symbian Code Testing

Information in this document corresponds to CTC++/Windows v7.0 and CTC++ for Symbian Target Devices add-on (CTC4STD) v5.0
[Remark: As of January 2013 Testwell has announced end-of-life on this CTC++ add-on package!]


CTC++ supports Symbian OS C/C++ code test coverage measuring and dynamic analysis in the following contexts:
  • On the EPOC emulator (Symbian OS, v9.1 and later) on Windows:
    • With Nokia Codewarrior C/C++ Compiler for Windows/x86 (mwccsym2)
    • Builds with CTC++ can be done
      • In command-line mode (abld, sbs and Qt toolchains)
      • Call for latest status of Carbide.c++ IDE integration
    • On the target device, user-mode code (Symbian OS, v9.1 and later, EKA2 kernel):
      • Development is done on Windows host
      • The code under test at the target is normal user-mode code (EXEs and DLLs)
      • The supported cross-compilers are
        • RVCT 2.2, 3.1, 4.0 (armcc)
        • GCCE  (arm-none-symbianelf-g++) when abld toolchain
      • Builds with CTC++ can be done
        • In command-line mode (abld, sbs and Qt toolchains)
        • Call for latest status of Carbide.c++ IDE integration

    The EPOC emulator support is included already in the basic CTC++/Windows delivery package.

    The Symbian target device support is a separate sales package, called "CTC++ for Symbian Target Devices add-on" (CTC4STD).  For using it the basic CTC++/Windows is also needed.

    The usage of these variants is quite "out of the box" and very easy. They are described below:

    CTC++ Usage on Symbian EPOC Emulator on Windows

    Nokia Codewarrior C/C++ Compiler for Windows/x86 (mwccsym2) is supported. The used SDK needs to be compliant to the used compiler.

    Usage in command-line mode

    If you normally build your code for the emulator for example as follows:
    abld build winscw udeb
    sbs -c winscw_udeb
    you simply change the building command to the following form:
    ctcwrap -i m abld build winscw udeb
    ctcwrap -i m sbs -c winscw_udeb
    Here the 'abld' command has been prepended with  'ctcwrap options_to_ctc'. And that's all!  The project's source files are instrumented with the selected instrumentation options and an instrumented target is built. The tests are run normally on the emulator. The coverage reports are obtained using the ctcpost and ctc2html utilities at the command line.
    sbs and Qt based tool chains can also be used when instrumenting the code for the emulator.


    CTC++ for Symbian Target Devices add-on

    Previously, since November 2003 when we first released this package, it supported the  Symbian OS  level up to v8 (EKA1 kernel). Our support for that level has been discontinued. In April 2007 we released an upgrade to this add-on package supporting Symbian OS v9 onwards (EKA2 kernel). The text below talks of the Symbian OS v9 level version of this add-on package.

    Some characteristics of this CTC++ add-on are:
    • Usage (running the instrumented programs) is possible in normal "street phones" (having Symbian OS v9.x or later)
    • The code under test is user-mode code
    • No modifications to your original source files or project definition files (.mmp) are needed for the sake of using with CTC++
    • Your instrumented programs and the CTC++ program components can be installed to the device's primary memory or to its additional memory (memory card)
    • If it is possible for you to make "ROM-builds", the instrumented code and the CTC++ programs can reside also in ROM
    • The CTC++ overhead to the execution speed and memory consumption is very reasonable

    Again, the usage is very simple. If you normally build as follows (examples of abld and sbs toolchains):

    abld build armv5 urel
    sbs -c armv5_urel

    you just change the building command to the following form:

    ctcwrap -i m abld build armv5 urel
    ctcwrap -i m sbs -c armv5_urel

    In Qt tool chain you build your project normally by first running qmake utility on the projects's .pro file, and then running make on the generated makefile. Getting the code instrumented is just putting ctcwrap command in front of the make command, for example as follows:
    ctcwrap -i m make release-armv5
    According to the makefile rules (the compile/link commands that the original abld, sbs or Qt makefiles emit) the source files are instrumented and compiled with the armcc compiler and the instrumented target program (normally an .exe or a .dll) is linked.

    This CTC++ add-on package contains three ready-compiled CTC++ components: a CTC++ run-time support layer on the target (a .dll) and two auxiliary programs (one for graphical menu usage, the other for text shell command-line usage) by which the coverage data is managed on the target device.

    The user's instrumented program components and the CTC++ program components are worked up to installation packages (SIS files), all signed with the user's own developer keys (DevCerts), and installed onto the phone.

    Test runs on the phone are done in a normal manner. Several (instrumented and other) test programs can be run in sequence or in parallel, as the test plan may need. All the time the coverage data of the instrumented programs is collected to the memory of the device. At some point of time the CTC++ control program is started and with a few keystrokes the coverage data is written from the main memory to a file on the device. Also the RDebug channel can be used. The coverage data file is moved to Windows where it is imported to a CTC++  datafile. The reports (text and HTML) are then obtained on Windows with the normal CTC++ tool chain using the ctcpost and ctc2html utilities.

    All CTC++ features can be used on the target. The primary use may be measuring code coverage, but function execution timing and  call tracing features can be  used, too.

    To frontpage