Testing data flow

During the deployment and/or testing procedure, multiple and independent components are used to execute each step. Usually they are confused, as they seem to be a single monolithic software. This document intend to make clear the difference between this components.

Keep in mind that the coupling between these components is quite low, and they all can be used separately. Specially, take this into account when reporting problems and bugs.

SAKET

SAKET stands for Swiss Army Knife for ETICS Testing, and it is a Python program that interacts directly only with ETICS and the user. It doesn't know, and doesn't need to know, how the build and deployment are going to be executed. It only cares about the output generated.

There are mainly two different parts in SAKET:

The agent

This part takes the specified configuration file and submit the corresponding tasks to ETICS, waiting until they finish. Then it parses the output files and generates the summarized reports that are dumped to the web area and submitted by mail.

  • Input: The configuration file
  • Output: The summarized report
  • Interacts with: ETICS, mainly trough properties.

For the build step, it expects a build-status.xml file in the ETICS tar.gz output. For the test step, it expects a deployment and a test log, both in XML format. Both Yaimgen and the test wrapper generate this format, but it can be anything else as long as respect this constraint.

The web interface

Since version 1.3.0 the web interface is completely static, the index being regenerated each time a new execution is finished. Both the index and reports are generated in XML format, applying XSLT stylesheets to get the HTML output.

Yaimgen

Yaimgen is a collection of bash scripts that installs and configures the specified components. If needed, will execute an external script for the tests. It can be executed manually or by another script (or ETICS client).

  • Input: A list of arguments.
  • Output: A deployment log - often XML - and optionally the test log coming from the test phase.
  • Interacts with:
    • Yaim (provided by the installed component)
    • The test script

This component provides XSLT and CSS stylesheets to view the reports as HTML.

YAIM

Configures the installed gLite components. See YAIM.

Test wrapper

The test wrapper is a Python script that executes a bunch of test using some metadata in the headers to prepare the environment. It also initializes the VOMS proxy if needed.

  • Input: A list of arguments.
  • Output: A XML report.
  • Interacts with: The test set.

It is called by Yaimgen in the automated environment (nightlies), but it can be executed manually.

Test set

The characteristics of the tests sets are described in the test writing guidelines page. As you can see there, they can be executed by the test wrapper, or by themselves, as long as the environment is properly set (see the configuration file).

Diagram

imgdfca6083c947ac827e261e62ec99903e.png
Simplified diagram. Left: build. Right: test.

You can see also a more detailed diagram.

-- AlejandroAlvarez - 06-Jan-2011

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2012-07-04 - OliverKeeble
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EGEE All webs login

This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Ask a support question or Send feedback