CTC++ for Symbian Targets

[Français][Deutsch]

Testwell CTC++ / Symbian Code Testing


General

CTC++ supports Symbian OS C/C++ code test coverage measuring and dynamic analysis at the following contexts:
  • On the EPOC emulator (Symbian OS, under and over v9.1) on Windows:
  • With Microsoft Visual C++ 6.0 compiler
    • Usage in command-line mode (abld)
    • Usage via Visual Studio 6.0 IDE
    With Metrowerks CodeWarrior 2.8/3.0/3.1 compiler
    • Usage in command-line mode (abld)
    • Usage via CodeWarrior IDE
  • On the target device, user-mode code (Symbian OS v9.x/EKA2 kernel):
  • Development is done at Windows host
  • RVCT 2.2 (armcc) is used as the cross-compiler
  • Builds for the Symbian target device are done in command-line mode
The EPOC emulator support is included in normal CTC++/Windows delivery package. The Symbian target device support is a separate sales package, called "CTC++ Support for Symbian Target Devices add-on".  For using, it the normal CTC++/Windows is also needed.

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

CTC++ Usage on Symbian EPOC Emulator on Windows

Currently two compilers are supported, Visual C++ 6.0 and CodeWarrior 2.8/3.0/3.1. With both of them the CTC++ usage is supported in command-line mode and via the compiler's IDE. The used SDK needs to be compliant to the used compiler.

Usage with Visual C++ 6.0 command-line mode

If you would normally build your code for the emulator as follows:
abld build wins udeb
you simple change the building command to the following form:
ctc-abld-wins -i m -- build wins udeb
Here 'abld' has been changed to 'ctc-abld-wins options_to_ctc --'. And that's all!  The project's C++ 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 in command line.

Usage via Visual Studio 6.0 IDE

When you have your Symbian code as a project in Visual Studio 6.0 IDE, you can use straight away the  CTC++/Visual Studio 6.0 integration for building the project target as instrumented (here overwriting the original non-instrumented target). You run the test normally on the emulator. The coverage reports can be obtained via the CTC++/Visual Studio integration or in command-line mode using the ctcpost and ctc2html utilities.

Usage with CodeWarrior command-line mode

If you would normally build your code for the emulator as follows:
abld build winscw udeb
you simple change the building command to the following form:
ctc-abld-winscw -i m -- build winscw udeb
Here 'abld' has been changed to 'ctc-abld-winscw options_to_ctc --'. And that's all!  The project's C++ 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 in command line.

Usage via CodeWarrior IDE

When you have your Symbian code as a project in CodeWarrior IDE, you can use "CTC++" menu commands at the IDE. See the picture below:

CTC++/CodeWarrior IDE integration

The usage is simple. Just select CTC++ > Set Mode On and then build the project, it will be built as instrumented. You run the tests normally on the emulator. The coverage reports can be obtained via the Show Coverage Report (TXT)/Show Coverage Report (HTML) command in the IDE or in command-line mode using the ctcpost and ctc2html utilities.

CTC++ for Symbian Target Devices add-on

Previously, since November 2003 when we first released this package, it supported the  Symbian OS  level upto v8 (EKA1 kernel). Our support on that level has been discontinued. In April 2007 we released an upgrade on this add-on package, and it supports 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 is possible in normal "street phones" (having Symbian OS v9.x)
  • No modifications to your original source files are needed for the sake of using 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 would normally build as follows:
abld build armv5 urel
you just change the building command to the following form:
ctc-abld-armv5 -i m -- build armv5 urel
According to the makefile rules (implied by the original abld command) the source files are instrumented and compiled and the instrumented target program (normally an .exe or a .dll) is linked.

This CTC++ add-on package contains 3 ready-compiled CTC++ components: a CTC++ run-time support layer on the target (a .dll) and two auxiliary programs (one for S60 IDE usage, another 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. Many (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 device's memory. 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 RDebug channel can be used. The coverage 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.

last updated: 16.07.2007

© 2007 Testwell Oy
CTA++, CTC++, CMT++ and CMTJava are products of Testwell Oy, Tampere (Finland)
all other trademarks of this site are the property of their respective owners.