Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. All the other test suites/scripts for lustre are placed under lustre/tests/ directory. Place LUTF as well under lustre/tests.
  2. Mention LUTF as a subdirectory to be build in lustre/tests/Makefile.am
  3. *  Create an autoMakefile.am under lustre/tests/ and also under lustre/tests/lutf/ .
  4. Create a Makefile.am under lustre/tests/lutf/ to generate the required object binary files and swig files. (This step might further require to modify configure.ac under lustre tree parent directory to add python path and other things).
  5. Run "make distclean" to clean up any residual build artifacts
  6. cd to lustre tree parent directory and run "sh autogen.sh"
  7. Run "./configure"
  8. Run "make"

...

For LUTF-Autotest integration, the first step in this process is to build LUTF along with lustre just like other test-suites are build. The previous step "Build along Lustre tree using GNU tools" discussed fulfills this purpose. 

 

Infrastructure

Automatic Deployment

TBD: How does the AT deploy the LUTF, collect results, show results in Maloo

With LUTF-Autotest integration, an infrastructure is created that makes AT to deploy LUTF on the test nodes, collect results of the tests run and then pass the test results to Maloo to be displayed there.

Master Script

  1. A Master script is used by Autotest to deploy LUTF on all the Agent nodes and Master node 

Collect Results

  1. A YAML format is decided for the results of the entire test-run and a result YAML file is generated per that format.
  2. The YAML file will need to point to where the results for each test result file is.

 Display Results in Maloo

  1. A separate section is to be created in Maloo to display LUTF test results.

 

C Backend

This allows for the setup of TCP connection (TCP sockets) to connect the Master and Agent nodes (lutf.c).  LUTF can be run on a node in either Master mode or an Agent mode. 

...

how should we execute a collection of tests. You can discuss how it's currently done, and if it can be imporved.

 

...

 

      1. Deploy LUTF on all the Agent nodes and Master node.
      2. Provides a telnet server and client for Master<->Agent communication.
      3. Provides a mechanism to query IP addresses and the network interfaces (NIs) on the Agents. This information can further be fetched by the test scripts on demand using an API.
      4. Facilitates running individual python tests scripts on the Agents and collecting results.
      5. Facilitates running the auto-test script which is a test-suite of all the test scripts related to one particular feature.
      6. Facilitate synchronization between the tests running on different Agents by providing an API that uses notification mechanism. An example scenario of how it would be implemented is - as a test script runs to it completion on an Agent, it would notify the Master about its status by calling this API and then Master can redirect this event to any script waiting on it.
    1. Infrastructure Level 2:
      With its implementation, the functions which are used by multiple test scripts are defined in a base test infrastructure file (lnet_test_infra_utils.py) which is then imported in each test script. This ease out the process of writing new test scripts and avoids code redundancy.