Testing with ctest and cdash
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

Testing with CTest and CDash PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on
  • Presentation posted in: General

Testing with CTest and CDash. Julien Jomier Kitware Inc. Testing Overview. Developers. CVS/SVN. Web Browser. CTest. CDash. Testing Terminology. Sites. Builds. dash5.kitware. Linux-g++. Linux-gcc4. Linux-gcc3. iris.elmtech. Dashboard. Why Test Daily?.

Download Presentation

Testing with CTest and CDash

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Testing with ctest and cdash

Testing with CTest and CDash

Julien JomierKitware Inc.


Testing overview

Testing Overview

Developers

CVS/SVN

Web Browser

CTest

CDash


Testing terminology

Testing Terminology

Sites

Builds

dash5.kitware

Linux-g++

Linux-gcc4

Linux-gcc3

iris.elmtech

Dashboard


Why test daily

Why Test Daily?

  • Large code base too large for any single developer to understand

  • Developers distributed around the world

  • Identify problems as they occur

  • Insure that object API remains unchanged

  • Provide feedback to developers as they experiment with new implementations


If it s not tested it doesn t work

“If it’s not tested it doesn’t work”

  • Dasboards and Software Process

    • Roots in GE Six Sigma initiative

  • Cross platform testing

  • Nightly regression testing Memory (Purify/ValGrind) testing

  • Coverage testing

  • Style checking

  • Documentation evaluation


How to write a good test

How to write a good test?

  • Use empirical values (5/2=2.5)

  • Test most of the use cases (even the boring/most difficult ones)

  • Make your tests as efficient as possible

  • Have someone else write the test for your algorithm


Regression testing

Regression Testing

  • Compare generated image against standard “correct” image

    • pixel-by-pixel comparison

    • can use a threshold metric

    • adjusted for effects like dithering


Ctest

CTest

  • Testing client

  • Distributed with CMake

  • Submit test results to the dashboard

  • XML submission

  • Independent of CMake


Ctest with cmake

CTest with CMake

CMakeLists.txt

INCLUDE(CTest)

ENABLE_TESTING()

# Add a simple test

ADD_TEST(CDashTest1 CDashTest CDashTest)

ADD_EXECUTABLE(CDashTest main.cxx)

CTestConfig.txt

set(CTEST_PROJECT_NAME "MyProject")

set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")

set(CTEST_DROP_METHOD "http")

set(CTEST_DROP_SITE "localhost")

set(CTEST_DROP_LOCATION "/CDash/submit.php?project=MyProject")

set(CTEST_DROP_SITE_CDASH TRUE)


Testing submission

Testing Submission

Compiler/Tester

CDash

CTest

Backup XML File

HTTP PUT

Fill Database

XML Submission

XML Parsing

Update.xml

Configure.xml

Build.xml

Test.xml

Coverage.xml

DynamicAnalysis.xml

Send Email

Update RSS Feed


Cdash

CDash

  • New generation of Dart

  • Written in Php/Javascript

  • MySQL

  • Open Source

  • Run on top of a web server

  • XSL implementation

  • Web 2.0


Cdash features

CDash Features

  • Ajax requests

  • Graphs: build, test times

  • Builds group

  • User management

  • Email notifications

  • Timing defects


Coverage support

Coverage Support

  • Email Low Coverage

  • Bullseye support


Build notes

Build Notes

  • Share with other developers

  • Keep it simple


My cdash

My CDash

  • Personal Page

  • Subscribe to project

  • View sites

  • Email preferences


Project roles

Project Roles

  • Normal user

  • Site maintainer

  • Project administrator


Claiming sites

Claiming Sites

  • Site information

  • Automatic (CTest 2.6)

  • Information history

  • Manual editing

  • Personal view/email


Cdash misc

CDash Misc.

  • Automatic Geolocation from IP addresses

  • Support for iPhone


Installing cdash

Installing CDash

  • (L/W)AMP : Apache, MySQL, PHP- XAMPP, EasyPHP

  • Download CDash (www.cdash.org) in your Apache web directory

  • Edit config.php

  • Point Web Browser to CDash- Setup the database- Create first project


Style checking

Style Checking

  • KWStyle

  • C++ Style checker

  • Configuration via XML

  • HTML Generator (TBI in CDash)

  • Open Source

  • Written in C++


Contribute

Contribute

  • Website- http://www.cdash.org- http://public.kitware.com/KWStyle

  • Bug Tracker- http://www.cmake.org/Bug

  • Mailing List- http://public.kitware.com/cgi-bin/mailman/listinfo/cdash


Happy testing

Happy Testing!


  • Login