Sunday, September 13, 2009

Installing CDash

The cmake guys have the CDash tool for producing test reports. It is difficult to find comprehensive information about the details of installing CDash (on the same lines, it is difficult to find information about using CMake).Here I am dealing with CDash 1.4.2. I did the following:

Warning: Read Conclusion at the end of this post now.


* download Apache and PHP  as described at http://public.kitware.com/Wiki/CDash:Installation. Make sure you enable the PHP modules as listed on the Kitware link.
* configure PHP and Apache as described at "Configuring PHP" and
"Running PHP 5 as an Apache Module" respectively on this page: http://www.thesitewizard.com/php/install-php-5-apache-windows.shtml
* Download CDash and copy to apache htdocs directory (remove the CDash version number if any)
*Create cdash/config.local.php as on the Kitware link.
* Now I tried to open http://localhost/CDash/login.php in my web browser. This returned "Fatal error: Allowed memory size of 134217728 bytes exhausted" at line 180 of config.local.php. Reading this file revealed that the file recursively included itself. So I commented out the lines as follows:

//$localConfig = dirname(__FILE__).'/config.local.php';
//if ( file_exists($localConfig) )
//  {
//  include($localConfig);
//  }

After this change, the url opened file. The only remaining thing now is to set up the database.
* I installed MySQL as at Kitware link. During installation I set an administrator account called 'root'. I use this account to login into MySQL. Then I run:

mysql> create database cdash;
mysql> create user 'cdash'@'localhost' identified by 'passwd';
mysql> grant all privileges on cdash.* to 'cdash'@'localhost' with grant option;

I make the corresponding changes in cdash/config.local.php to set the:

// Hostname of the database server
$CDASH_DB_HOST = 'localhost';
// Login for database access
$CDASH_DB_LOGIN = 'cdash';
// Password for database access
$CDASH_DB_PASS = 'passwd';
// Name of the database
$CDASH_DB_NAME = 'cdash';
// Database type (empty means mysql)
$CDASH_DB_TYPE = 'mysql';

There were errors even now, as I tried to register a new user. Then I tried to open http://localhost/CDash/install.php -- this indicated:

Database Type:mysql
Database Hostname:mysql
Database Login:cdash
Database Name:cdash

Admin Email: __________
Admin Password: ______

This is different from what I wanted -- I wanted the Database hostname to be "localhost". I could not figure out how CDash set it to mysql (I think this is a bug; which does not augur well for CDash. Probably it has a lot of bugs). Anyway, I proceeded with creating an Admin by filling Email and Password. This worked.

There is still some problem with opening http://localhost/CDash/index.php. This just shows some php script -- so the PHP script is probably malformed.

Conclusion: I think it would be too much effort to work with CDash as even installation is so tedious. I'll move to using Hudson for now, which from my limited previous experience was rather user-friendly.

No comments: