Donnerstag, 28. Januar 2010

Hudson and CodeScanner

Being a great fan of Continuous Integration and the Hudson server, I'm using it to build the Organizer Package of the Symbian codebase on a regular basis to get reproducable builds as well as a good overview of the number of warnings, differences between compilers and a lot more.

To get even more info out of it and get some kind of a deeper overview on the status of the package right after a build without any manual interaction, I developed a plugin to be able to use the Codescanner tool within hudson.

CodeScanner is a static source code analysis tool for Symbian programs written in C++. Static analysis tools delve deep into code, exploring line by line for the sources of defects. CodeScanner is specifically for use with Symbian code. As well as identifying C++ coding convention deviations, CodeScanner identifies incorrect descriptor usage, cleanup stack errors, UID clashes, and other subtle problems that are hard to track down.

There are several exciting features available in the plugin:

  • Build summary showing the new and fixed warnings of a build
  • Several trend reports showing the number of warnings per build
  • Overview of the found warnings per module, package, category, or type
  • Detail reports of the found warnings optionally filtered by severity (or new and fixed)
    • Short messages is read from the report file
  • Colored HTML display of the corresponding source file and warning lines:
    • Direct link to the warning line
    • Highlighting of single lines as well as line ranges
    • Highlighting of multiple line ranges per warning (different color for primary range)
    • Tool tip describing the warning message
  • Failure threshold to mark a build as unstable
  • Configurable project health support

For more information, installation instructions and how to use the plugin, have a look at the wiki page: CodeScanner Plugin

A huge thank you to Ulrich Hafner, author of several similar static analysis hudson plugins. The codescanner plugin uses his analysis-core classes as a base, this is were most of the magic happens. Using his work, this plugin was easy and fast to write.


  1. Hi,

    was playing around with the codescanner plugin (v 0.10) and for some reason it won't parse the output file even though it gets generated in the given directory:

    [CODESCANNER] Using precreated result file from:
    [CODESCANNER] c:/hudson/workspace/signalling_demo_master\output.txt
    [CODESCANNER] IOException!

    Path problem? (slash vs backslash) Or some other known issue?

    Other than that, thanks for providing a nice plugin!

  2. I have read this post. collection of post is a nice one ..that am doing website designing company chennai india and website development company chennai india. That I will inform about your post to my friends and all the best for your future posts..

  3. a lot of interesting features of the Hudson server, but not a few people who abuse the wiki facility there.