Not all tests of the LHCb Software can (or should) be implemented as Unit tests in the software (via the QMTest framework). For this reason, another framework was implemented to run integration tests on a regular basis. This page describe how to run the tests and integrate them in the framework.

Test definition

The tests to be run this way should be defined in the PRConfig data package. This allows for the same tests to be run across multiple versions of an application (config has to be consistent, of course).

The data files have to be moved to EOS and defined in the TestFileDB as per https://twiki.cern.ch/twiki/bin/view/LHCb/TestFileDB

Running periodic tests

The configuration file for the periodic tests is called "test_schedule.xml" and is located in the same repository as for the nightly builds. To modify it, it is necessary to checkout the repository:

svn co svn+ssh://svn.cern.ch/reps/lhcb/LHCbNightlyConf/trunk
vi trunk/test_schedule.xml

A web frontend to edit the configuration may be put in place later, but it is not available for the moment. Here is a typical example fo configuration:

<?xml version="1.0" encoding="UTF-8"?>
<periodictests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TestSchedule.xsd">
    <schedule type="week" time="19:30">Mon,Tue,Wed,Thu,Fri</schedule>
    <test runner="lhcbpr" group="PRTEST-COLLISION12-1000" env="UsePRConfig"/>
      <schedule type="week" time="11:30">Mon,Tue,Wed,Thu,Fri</schedule>
      <test runner="qmtest" group="sam"/>

Each periodic test must have the following tags:

  • schedule: When the test should be run. The type is Weekly or monthly and a time should also be specified.
  • slot: Which nightly slot should be chosen. Globbing is possible to define a test to run on several slots in one go.
  • platform: Which platform to run on. Globbing is possible to define a test to run on several slots in one go (e.g. 86_64-slc6-*-opt for all compilers on platform slc6, with optimized code).
  • test runner: Either QMtest or lhcbpr
  • os_label: To restrict the Jenkins hosts on which the tests should be run (discuss with Ben or Marco)

Testing periodic tests

In the case of QMTests this can be done following the normal procedure for LHCb tests. For LHCbPR test, the nightly build environment must be used to easily run the tests in the appropriate configuration, like so:

git clone http://git.cern.ch/pub/LbNightlyTools
cd LbNightlyTools
export testenv='UsePRConfig|CallgrindHandler'
export testgroup=PRTEST-Callgrind-300evts
export testrunner=lhcbpr
export slot=lhcb-gaudi-head
export slot_build_id=492
export platform=x86_64-slc6-gcc48-opt
export project=Moore
export input_flavour=nightly
export flavour=periodic
export os_label=perf

Within Jenkins, the various Job parameters have to be passed via the environment, hence the need to define the environment variables.

-- BenjaminCouturier - 21 Aug 2014

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

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2022 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