WARNING: This web is not used anymore. Please use PDBService.CoralServerCompilation instead!

How to compile the Persistency Server and run the tests


  • The /afs/cern.ch is mounted
  • You can access the Persistency dependencies from the AFS

We use bash shell commands. There are tcsh shell scripts as well (whenever we source a script), with the same name than the bash ones have, but with .csh extension.

The settings below were tried on lxplus.

CMT setup

The compilation requires the CMT tools. The settings I have been using:

export AFS=/afs
export SITEROOT=$AFS/cern.ch
export CMTROOT=$SITEROOT/sw/contrib/CMT/v1r20p20070720
export CMTCONFIG=slc4_amd64_gcc34 
source $CMTROOT/mgr/setup.sh
export CMTPROJECTPATH=$SITEROOT/sw/lcg/app/releases

The CMTCONFIG variable refers to the platform. The supported platforms for Persistency server are: slc4_ia32_gcc34, slc4_ia32_gcc34_dbg,  slc4_amd64_gcc34, slc4_amd64_gcc34_dbg,  osx104_ia32_gcc401, osx104_ia32_gcc401_dbg

CVS settings

General instructions are here.

export CVSROOT=:kserver:molnarzs@coral.cvs.cern.ch:/cvs/coral

(replace molnarzs with your username)

cvs co coral


Persistency compilation:

cd _ProjectRoot_/coral/config/cmt
cmt config
source setup.sh
cmt br cmt config
cmt br cmt make all_groups

The standard Persistency compilation above does not compile the CoralServer sources. You need to do it explicitly, after having compiled CORAL.:

cd _ProjectRoot_/coral/CoralServer/cmt
cmt config
source setup.sh
cmt make all_groups

Now all the Persistency tests and server binaries should be in your path, and you can start the unit tests. For the moment, the server does not go into daemon mode, so you need a separate terminal to run the server. The unit tests use the same databases that the Persistency tests use.

  1. Check if you can access the databases: run the test_Integration_Basic Persistency test. If it passes, then you have right access to the test databases.
  2. Run CoralServer from a terminal. It will listen to port 8080, so ensure that the port is available. You cannot configure it from the command line yet.
  3. Run test_unit_CoralServer_TestSuite. The textual output explains clearly if a test passed or failed, in the latter case it informs you where and why it failed.

The unit tests above use hardcoded Persistency messages. The server does not know if the received messages arrived from the proxy, the Persistency client or from the unit tests, it is completely transparent. So, if the tests pass in unit test - CoralServer configuration, they should also pass when you insert a proxy between the test suite and the server.


Server/client ports: CoralServer/src/MockEnvironment.cpp (the port value is used by both the tests and the server)

Persistency authentication path: set the CORAL_AUTH_PATH environment variable, before running the server. Its default value: /afs/cern.ch/sw/lcg/app/pool/db

Persistency database lookup path: set the CORAL_DBLOOKUP_PATH environment variable, before running the server. Its default value: /afs/cern.ch/sw/lcg/app/pool/db

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2010-06-11 - PeterJones
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    PSSGroup All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback