GithubHelp home page GithubHelp logo

imclab / stereopipelinetest Goto Github PK

View Code? Open in Web Editor NEW

This project forked from neogeographytoolkit/stereopipelinetest

0.0 1.0 0.0 869 KB

A comprehensive, distributed, and fully automated test suite for the Ames Stereo Pipeline (ASP)

stereopipelinetest's Introduction

StereoPipelineTest is a comprehensive, distributed, and fully
automated test suite for the Ames Stereo Pipeline (ASP). It attempts
to cover most, if not all, of the ways in which ASP can be used, and
the test suite should be updated regularly as more functionality is
added to ASP.

Usage: bin/run_tests.pl settings.conf

After the tests finish, a report is written to 'report.txt', and the
report is also emailed to the user.

A sample settings file is provided, named 'pfe.conf'. The settings
file has:

1. The tests to run (wildcard expressions are accepted).
2. The machines to distribute the runs across (they must be accessible
   via ssh and share disk storage).
3. How many processes to use on each machine (each process in turn uses 
   multiple threads).
4. If to do strict validation (that is, not allow, vs. allow, a small
   discrepancy between current and reference runs, more below).
5. Environmental variables, such as the path to the ASP executables.

Each test needs to be in its own directory. A test is executed by
running the script 'run.sh' in that directory, which should create an
output directory named 'run'. A 'gold' directory must be present,
which has the reference run. At the conclusion of the run, the result in
the 'run' directory is compared to the reference in 'gold'. The test
will fail if the produced result is different or absent.

If a new test is added, the name of the test directory must be listed
in the settings file or match the wildcard pattern already present
there. Each test must have a 'run.sh' file, and a validation script,
named 'validate.sh'. The 'validate.sh' script must return exit status
0 on successful validation, and non-zero otherwise.

When tests fail, which is inevitable when something changes, and the
new results are deemed acceptable, the 'gold' reference directory
needs to be updated by copying the output from the 'run' directory. 

This test suite runs on multiple machines and architectures. The most
comprehensive tests are done on pfe (Pleiades supercomputer head
nodes). Results on other machines may differ from the results on the
pfe machines. It is then possible to specify that a tolerance for the
maximum allowed discrepancy be accepted, by setting strictValidation =
0 in the configuration file for the desired machine. Those tolerances
can be put there as well, one per line, in the format: "testName
tolerance". Such a list is auto-generated by running the command:

bin/print_allowed_error.pl report.txt

where 'report.txt' is the latest run on the current machine. On pfe
machines no tolerances should be used, as we'd like to know when
results on those machines change even by tiniest bit.

stereopipelinetest's People

Contributors

oleg-alexandrov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.