Changes between Version 1 and Version 2 of RegressionTest


Ignore:
Timestamp:
07/16/07 20:25:01 (17 years ago)
Author:
skbhate
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RegressionTest

    v1 v2  
    1 Regression Testing Guide.
     1= Regression Test v1.1 (beta) =
     2
     3== Introduction ==
     4Regression test package provides a '''''test framework for Community sediment transport model'''''. User can automate model runs as well as various tests on
     5model output. The package is written in '''''Perl'''''. It has been tested to run on Linux (2.6.15) and Windows under 'Cygwin'.
     6Supported version of '''''ROMS: 3.0.''''' (Successfully tested SVN version 843).
     7
     8== Getting the Software Package ==
     9The beta release(1.1) of the test package can be downloaded using the following link. 
     10== Configure ==
     11Go to the directory where you have checked out the beta version of the regression package. Type
     12{{{
     13$ ./configure <ROMS root path>
     14
     15ROMS root path: Complete directory path where ROMS source code has been installed.
     16}}}
     17
     18Configuration script checks for availability of various utilities (perl, ncotools, etc) and updates path and relevant information in various files.
     19You must run 'Configure' before proceeding further.
     20
     21== How to Run? ==
     22Go to the directory where you have checked out the beta version of the regression package. Type
     23{{{
     24$ ./bin/runRegression
     25}}}
     26If you see the output as shown below means there is future ahead. The default run is 'serial mode'. The MPI run is executed if ROMS 'build.sh' macro {{{'USE_MPI'}}}or {{{'USE_OPENMP'}}} is set to 'on'.
     27{{{
     28
     29 runRegression: Run various regression tests for ROMS-SED ocean model.
     30
     31 Usage: runRegression [options]
     32 Options:
     33
     34   -all                :   Run all applications set for regression test.
     35   -app <application>  :   Run only specific application for regression test.
     36   -d, -display        :   Display list of applications set for regression test.
     37   -h, -help           :   Display options.
     38   -noclean            :   Do not perform clean on existing compiled code.
     39
     40   -m, -mpi            :   Compile and run using MPI.
     41 MPI options. (should only be used along with '-m'/'-mpi').
     42
     43   -nodes <number>     :   Number of Nodes.
     44   -ppn  <number>      :   Processes Per Node.
     45
     46 Test options. (Should only be used along with '-all' or '-app').
     47
     48   -nck                :   Run 'ncks' test on model output.
     49   -ncd                :   Run 'ncdiff' test on model output.
     50
     51}}}
     52
     53== Understanding the Directory Structure ==
     54It is important to understand the directory structure before you proceed. It provides a quick overview of where, what and how the data and test results are located.
     55
     56 * '''/bin:''' Regression test executable.
     57 * '''/lib:''' Required modules and libraries. It contains the properties file [wiki:RegressionProps regression.props].
     58 * '''/log:''' Test run log 'regression.log'. It logs the build and run activities for the model.
     59 * '''/data:''' Data and files in support of running the tests.
     60 * '''/data/regression.tests:''' List of applications defined for regression test. New applications needs to be added to this file before running the test.  See example file below:
     61{{{
     62#List applications for regression test.
     63#Use '-coupled' with application name, to enable SWAN coupling.
     64
     65BENCHMARK
     66ESTUARY_TEST
     67GRAV_ADJ
     68LAKE_SIGNELL
     69MIXED_LAYER
     70SED_TEST
     71SED_TOY
     72SHOREFACE
     73TEST_CHAN
     74TEST_HEAD
     75UPWELLING
     76INLET_TEST -coupled
     77BEVANO -coupled
     78}}}
     79
     80 * '''/data/Master:''' Master {{{NetCDF}}} output data files for various model applications (e.g. {{{SED_TOY, SHOREFACE}}} etc.). These datasets are used in [http://nco.sourceforge.net/ NCO-tools] (e.g. ncdiff) tests. Here, the master file refers to a ''true'' data file against which a user would compare the model output. User must populate this directory with their master data files before proceeding to run any tests. 'ncdiff' would result in error without these files. The files could be of type 'history','averages','diagnostics' or 'restart'. This directory needs to be populated only in case you are running any nco-tools tests.
     81 * '''/data/inputList:''' Contains list of input files associated with each model application. If there is an application listed in '/data/regression.tests' file, then user must include the application name and associated input file name in 'inputList' file. List file names without any directory path. Example file:
     82{{{
     83ESTUARY_TEST = ocean_estuary_test.in
     84INLET_TEST   = ocean_inlet_test.in
     85UPWELLING    = ocean_upwelling.in
     86}}}
     87
     88 * '''/test-run:''' Test results. Each time test is run, it creates a time-stamped directory in '/test-run' where it stores all test results for each model application. User can have the test results be saved to another location by modifying the ''$TEST_RUN'' variable in [wiki:RegressionProps regression.props] file. The 'STDERR' and 'STDOUT' from model compilation are also saved in this directory.
     89== Understanding Results ==
     90Test results, which are stored in '''/test-run/<time-stamped-dir/<application>''' can contain following data files.
     91 * '''ocean_<file_type>.nc:''' Model output data files. ''<file_type>'' can be ''his(history)'', ''dia(diagnostics)'', ''rst(restart)'', ''avg(averages)'' etc.
     92 * '''output_<application>.out:''' STDOUT from model run. ''<application>'' can be e.g.'SED_TOY', 'SHOREFACE', etc.
     93 * '''build.err:''' STDERR from building/compiling ROMS model.
     94 * '''build.out:''' STDOUT from building/compiling ROMS model.
     95 * '''ncdiff_<file_type>.nc:''' [http://nco.sourceforge.net/ NCO-tools] 'ncdiff' output. ''<file_type>'' can be 'history', 'average', etc.
     96 * '''ncks<file_type>.nc:''' [http://nco.sourceforge.net/ NCO-tools] 'ncks' output. ''<file_type>'' can be 'history', 'average', etc.
     97== Understanding Logs ==
     98Log 'regression.log' contains the time line of test execution. It reports both success and failure of test. Example log shown below:
     99{{{
     100>>>> New Log: Fri Jul 13 10:54:50 2007
     101
     102[SUCCESS][Fri Jul 13 10:54:50 2007][Read /cygdrive/c/skbhate/dev/nopp/regression/data/regression.tests.]
     103
     104Running Application: INLET_TEST .
     105
     106[ERROR][Fri Jul 13 10:56:07 2007][./runRegression,run_application][ROMS build failed. ROMS executables not created.
     107Check 'build.err' for more info.]
     108[ERROR][Fri Jul 13 10:56:07 2007][./runRegression,][Model run for INLET_TEST could not be completed.]
     109
     110
     111 >>>> New Log: Fri Jul 13 12:28:49 2007
     112
     113[SUCCESS][Fri Jul 13 12:28:49 2007][Read /cygdrive/c/skbhate/dev/nopp/regression/data/regression.tests.]
     114
     115Running Application: UPWELLING .
     116
     117[SUCCESS][Fri Jul 13 12:28:50 2007][Compiled ROMS successfully.]
     118[SUCCESS][Fri Jul 13 12:28:50 2007][Starting ROMS-SED in serial mode...]
     119[SUCCESS][Fri Jul 13 12:28:57 2007][ROMS run successful. History or Restart file created.]
     120
     121Running NCO tools tests.......
     122
     123File type: his
     124[SUCCESS][Fri Jul 13 12:29:01 2007][Created ncdiff output.]
     125[SUCCESS][Fri Jul 13 12:29:01 2007][Created ncks output.]
     126
     127File type: avg
     128[ERROR][Fri Jul 13 12:29:02 2007][./bin/runRegression,run_application][Master file for file type 'avg' not found
     129in /cygdrive/c/skbhate/dev/nopp/regression/data/Master/UPWELLING. 'ncdiff' or 'ncks' output won't be created.]
     130}}}
     131
     132