Download presentation
Presentation is loading. Please wait.
1
Build and Test system for FairRoot
M. Al-Turany, R. Karabowicz and F. Uhlig GSI, Darmstadt, Germany The simulation and analysis framework FairRoot, developed for the experiments at the new accelerator center FAIR, uses the open source tool CMake as bases for their build and test system. The open source tool CDash is used to setup a website as central entry point to access all the gathered information about the status of the system. CMake is an open-source, cross-platform C/C++ build manager, available for a great variety of platforms (Linux, MacOS, SunOS, HPUX, Irix, Windows,...), that lets you specify build parameters in text files. These text files are then used by CMake to generate files for native build tools such as UNIX-style makefiles or project files for IDE's like Eclipse, KDevelop, XCode and Visual Studio. This enables the developer to work with the development environment he is used to and not to use the tool which was chosen by someone else which increases the productivity. CMake provides a "simple" macro language which is powerful enough to setup the build environment even for complex projects, but CMake supports also complex custom commands whose results can be used in the input files. In FairRoot this functionality is used to run the Root C Interpreter (Cint) which create source files compiled later during the build process. CMake includes also a complete and automatic dependency generation for C, C++ and Fortran. 1 1 2 CDash is an open source, web-based software testing server. CDash aggregates, analyzes and displays the results of software testing processes submitted from clients located anywhere. FairRoot uses CDash to check the state of our software system, and to continually improve the quality of our code. CDash was developed to design, manage and maintain large-scale software systems. 2 Testing FairRoot fully supports many platforms (different Linux flavors, Mac OS and support for Open Solaris on the way) with an increasing size and complexity of the project. Beside that the project depends also on many external software packages. It is quite evident that we have to identify problems when they occur, so One of our important goals is to know the status of the project as much detailed as possible at any time. For this task we use CTest (part of CMake) together with the dashboard CDash. Due to the perfect integration of CTest in CMake the setup of the tests in the build process is easy. The tests in our case are running Root macros which starts a simulation, reconstruction or analysis. The complete test chain is more complex. It starts with an update of the local working directory from the SVN repository. After this step the configuration creates the makefiles necessary on the actual platform. Finally after the project was build out of the sources, the tests are done and all the results are send to the central web-server. On the web-server the gathered data is available for display. This push scheme allow users to setup their own client if they have a new "untested" platform without any work for the administrators of the web-server. The test cycle can be started manually if developers want to test some new features they have implemented in their private version, or they can be started automatically. A nightly test run on all supported platforms each night and a continuous test runs whenever there was a commit to our SVN repository. SVN maintains source code revision automatic test Typical developer commit code Continuous test Dashboard notification in case of problems Check results
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.