24
Nightly Releases and Testing Alexander Undrus Atlas SW week, May 24 2004

Nightly Releases and Testing

  • Upload
    joshua

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

Nightly Releases and Testing. Alexander Undrus. Atlas SW week, May 24 2004. Outline. Status of Nightly Builds New NICOS version 0.3 Testing in Nightly Builds. Status of Nightlies. Three nightlies: opt, dbg, “8.0.x” 2x2GHz machines: 6 hrs gain: Make is faster by factor 1.5 – 2.0 - PowerPoint PPT Presentation

Citation preview

Page 1: Nightly Releases and Testing

Nightly Releases and Testing

Alexander Undrus

Atlas SW week, May 24 2004

Page 2: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 2

Outline Status of Nightly Builds New NICOS version 0.3 Testing in Nightly Builds

Page 3: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 3

Status of Nightlies Three nightlies: opt, dbg, “8.0.x” 2x2GHz machines: 6 hrs gain:

Make is faster by factor 1.5 – 2.0 Builds are finished by ~ noon (CERN time)

More efforts for acceleration Parallel checkout: saves 1 hour but

connection problems with CVS server Multithreaded builds: new tests with CMT

v1r16 start soon Incremental builds (Simon George)

Page 4: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 4

Plan for better robustness of Nightlies

Builds on local disk followed by copy to AFS Better stability, decreasing AFS load

Planned setting: Release is checked out to local disk Opt & dbg builds start simultaneously Interlock mechanism for building NOVA Copy to AFS (script copy_release available)

Waiting Database team for implementation of NOVA interlocks

Page 5: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 5

Purpose of NICOS NIghtly COntrol System Provide flexible nightly build system for

coordination of distributed development Test new software submissions Send immediate feedback to developers Facilitate multi-person, multi-platform

development of code Portable System (perl based)

Page 6: Nightly Releases and Testing

NICOS Organization

NICOS Controller

NICOS Job

Error Analysis

Testing

Project Make

ProjectSetup

Code Checkout

PackagesDatabase

PackagesDatabase

Configur. CacheConfigur. Cache

NICOS Webmaster

Version Admin.

Atlas SW week, Dec.03 - Alex Undrus - NICOS

7

Page 7: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 7

History of NICOS Fall 2001: start of ATLAS nightly builds with set

of shell scripts Jan 2003: start of development of NICOS, perl

based nightly control system Feb 2003: version 0_1 of NICOS is released and

applied for POOL nightly builds (LCG project) July 2003: NICOS is accepted as LCG nightly

build tool, used in POOL and SEAL builds Nov 2004: NICOS version 0_2 applied for ATLAS

builds

Page 8: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 8

NICOS version 0.3 Improved pages design:

Tag list emphasizes new packages and versions Three sorting options for list of packages Added category of QA tests (to previously used

integrated and unit tests) Test results on separate web page, while page

with build results contain test summary Added “warning” level for minor problems Builds “on demand” (use NICOS in users

work environment), tested by S. George

Page 9: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 9

NICOS version 0.3 (cont.) Build results available immediately

after make loop Integration with QMTest, Python

based testing tool, supported by LCG

Page 10: Nightly Releases and Testing

NICOS Project

Web Page

Atlas SW week, Dec.03 - Alex Undrus - NICOS

12

new

Page 11: Nightly Releases and Testing

NICOS Tag List

Atlas SW week, Dec. 2003 - Alex Undrus - NICOS

13

NEW

NEW

Page 12: Nightly Releases and Testing

NICOS Build Result

s

Atlas SW week, Dec.03 - Alex Undrus - NICOS 14

NEW

NEW

Page 13: Nightly Releases and Testing

NICOS Test

Results

CHEP’03 - Alexander Undrus - NICOS system 15

NEW

Page 14: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 14

Nightly Testing Principles Automation Smoke tests Support different granularity levels

QA tests Unit (structural) tests Integrated (behavioral) tests

Use of test tools (CppUNIT, QMTest) Convenience for developers Fast feedback to users

Page 15: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 15

QMTEST Open-source, cross-platform testing tool Python based, extensions possible Tests are described in xml format Organizes tests hierarchically (in suites) Provides a graphical interface for

creating and running tests Also can be used from command line

Page 16: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 16

QMTEST & NICOS integration

Integration is provided by Python script (qmtest_config): Searches for test scripts

NICOS test database Release tree (in directories test)

Determines test suites NICOS test database Pattern “TEST_SUITE” in script body Tries to guess

Creates XML descriptions for QMTest

Page 17: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 17

QMTEST & NICOS integration (cont.)

QMTest runs tests, determines results (regression is possible), handles log info

Results are reflected on NICOS pages and also can be browsed with QMTest graphical interface

Test can be rerun from QMTest graphical interface

Page 18: Nightly Releases and Testing

NICOS & QMTEST integration

NICOS Job

TestDatabaseTestDatabase

NICOS Webmaster

Atlas SW week, Dec.03 - Alex Undrus - NICOS

7

qmtest_config.py QMTEST

XML test descriptions

XML test descriptions

Page 19: Nightly Releases and Testing

QMTEST page

CHEP’03 - Alexander Undrus - NICOS system 15

Page 20: Nightly Releases and Testing

QMTEST suite

CHEP’03 - Alexander Undrus - NICOS system 15

Page 21: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 21

CppUnit Tool for unit testing of C++ code/classes allows to run tests automatically and gives a

report about successes and failures For developers that write software and test

simultaneously ATLAS TestPolicy provides access to LCG

installation of CppUnit and integrates it in CMT environment (since January 2004).

Details: http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/nightlies/nicoswww/cppunit_testing.html

Page 22: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 22

Status of NICOS 0.3 Trial 8.1.0 builds on lxbuild005 local disk:

Since ~ May 10 atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/

nightlies/testww Only one significant problem revealed: QMTest

does not work with PyXML used by ATLAS Temporary solution: exclusion of PyXML from PATHs

Test in real nightlies is scheduled on the next weekend

Update of manual to be completed by June 1

Page 23: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 23

To Do list for NICOS Improve convenience features for

“builds on demand” Create scripts for administrative

tasks for stable releases (rebuilds, tests, documentation)

Page 24: Nightly Releases and Testing

Atlas SW week, May 24, 04 – Alex Undrus – Nightly Builds 24

Further Information ATLAS nightly builds web page

atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/nightlies/atlaswww/nightly_builds.html

NICOS web page www.usatlas.bnl.gov/computing/software/nicos/index.html

QMTest integration page http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/nightlies/nicoswww/qmtest_atlas.html