Difference between revisions of "UCVM Testing"

From SCECpedia
Jump to navigationJump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
== UCVM C-Language Testing Fixtures ==
+
UCVM Testing descriptions have been moved to the UCVM GitHub wiki
* C-Language - unittest - C executable
+
*[https://github.com/SCECcode/ucvm/wiki/Testing UCVM Testing Documentation]
* accepttest - C executable
 
 
 
UCVM uses two C language programs called unittest.c and accepttest.c framework. These C program framework provides methods like "test_assert_string()". There are references to an xmldir with list of tests, but that is not used. These C language tests enable us to test the C-API for UCVM
 
 
 
Test defined as C lanuage functions in accepttest_suite_grid.c
 
** test_grid_tool_1d()
 
** test_grid_lib_1d()
 
** then suite_xxx() where test_grid_tool_1d is tested with its own script
 
 
== UCVM Python Language Testing ==
 
UCVM uses a custom script accept_test.py. Contains two tests:
 
** def test_vs30_query(dir)
 
** def test_ssh_generate(dir):
 
 
 
== UCVM Test Scripts ==
 
* make check - defined in ucvm_bin/tests
 
** runs unittest
 
** runs accepttest
 
** runs accept_test.py
 
 
 
* Makefile.am creates script > run-testing
 
** unittest
 
** accepttest
 
** accept_test.py
 
** cd api; ./run_query_1d_gtl.sh
 
** cd basin; ./run_bains_query_mpi_cvms5.sh
 
** cd mesh; ./run_ucvm2mesh_mpi_layer_cvms.sh
 
 
 
== Manifest of UCVM Programs and Scripts Requiring Tests ==
 
Programs in UCVM bin directory:
 
# ssh_generate
 
# ssh_merge
 
# vs30_query
 
# vs30_query_mpi
 
# basin_query
 
# basin_query_mpi
 
# basin_query_mpi_complete
 
# ecoalesce
 
# ecompact
 
# grd2etree
 
# grd_query
 
# mesh_check
 
# mesh_op
 
# mesh_strip_ijk
 
# patchmodel
 
# ucvm2mesh
 
# ucvm2mesh_mpi
 
# ucvm2mesh_mpi_layer
 
# ucvm2etree
 
# ucvm2etree_extract_MPI
 
# ucvm2etree_merge_MPI
 
# ucvm2etree_sort_MPI
 
# ucvm_query
 
 
 
Programs in Utilities Directory:
 
# installed_models.py
 
# makegrid.sh
 
# run_ucvm_query.sh
 
# run_ucvm.sh
 
# time_mesh_generation.py
 
# view_png.py
 
 
 
== Core UCVM C-language tests - Unittests ==
 
Tests for adding Models to UCVM. These also confirm path to UCVM models set correctly. Test defined as c language functions in unittest_suite_lib.c. This c-language program imports ucvm.h and then calls the UCVM API from C language program. The inputs and expected results for several of the tests are hard-coded in the C source code files.
 
** test_lib_init()
 
** test_lib_add_model_1d()
 
** test_lib_query_1d()
 
** test_lib_get_model_label_1d()
 
** test_lib_setparam_querymode_gd_1d()
 
** test_lib_setparam_querymode_ge_1d
 
** test_lib_model_version_1d
 
 
 
Following Tests have conditional compile statements in unittest.c
 
** test_lib_add_model_cencal
 
** test_lib_add_model_cvmh
 
** test_lib_add_model_cvms
 
** test_lib_add_model_cvmsi
 
** test_lib_add_model_ivlsu
 
** test_lib_add_model_cvlsu
 
** test_lib_add_model_albacore
 
** test_lib_add_model_cvms5
 
** test_lib_add_model_cca
 
** test_lib_add_model_cs173
 
** test_lib_add_model_cs173h
 
 
 
Tests for Query by Elevation/Query by Depth
 
* int test_lib_setparam_querymode_gd_1d()
 
* int test_lib_setparam_querymode_ge_1d()
 
 
 
== Core Capabilities Requiring Tests ==
 
Additional Key Core Functionality
 
* Test case interpolation
 
* Test Cases Tiling
 
* Test Cases Invalid Point
 
 
 
Tests for C executables of basic query interface
 
* ucvm_query
 
* basin_query
 
 
 
== Programs Requiring Integration Tests ==
 
Test utilities including meshing, layer searches, gtls, and and modificaiton to the velocity models.
 
 
 
Example C API
 
* query_1d_gtl
 
 
 
Meshing Commands and scripts
 
* grd_query
 
* run_grd.sh
 
* mesh_check
 
* mesh_op
 
* mesh_strip_ijk
 
 
 
UCVM 2 Mesh
 
* ucvm2mesh
 
* ucvm2mesh_mpi
 
* ucvm2mesh_mpi_layer
 
 
 
SSH Command
 
* ssh_generate
 
* ssh_merge
 
 
 
UCVM Query
 
* ucvm_query
 
* test_grid
 
* test_ucvm
 
 
 
Basic Query
 
* basin_query
 
* basin_query_mpi
 
* basin_query_mpi_complete
 
 
 
Etree Related Commands
 
* ecompact
 
* ehelper
 
* ecoalesce
 
Patch
 
* patch_config
 
Grid
 
* grd
 
Grid 2 Etree
 
* grd2etree
 
UCVM 2 Etree
 
* ucvm2etree.c
 
* ucvm2etree_extract_MPI.c
 
* ucvm2etree_merge_MPI.c
 
* ucvm2etree_sort_MPI.c
 
 
 
Vs30 Query Related Commands
 
* vs30_query
 
* vs30_query_mpi
 
* vs30_query_debug
 
 
 
* Adding Elygtl:ifunc
 
* accepttest_suite_grid.c:int test_grid_tool_1d()
 
* accepttest_suite_grid.c:int test_grid_lib_1d()
 
* accept_test.py:def test_vs30_query(dir):
 
* accept_test.py:def test_ssh_generate(dir):
 
 
 
UCVM Distribution Utilities
 
* work/make_manifest.py
 
 
 
== Model Tests ==
 
Each velocity model has tests showing expected results for some points
 
* Test Cases 1D Models
 
* Test Cases CVM S4.26
 
* Test Cases CVM-H
 
* Test Cases External CVMs
 
* Test Cases Invalid Points
 
 
 
== Utilities Tests ==
 
In Utilities Directory:
 
* run_ucvm.sh
 
* installed_models.py
 
* makegrid.sh
 
* run_ucvm.sh
 
* run_ucvm_query.sh
 
* time_mesh_generator.py
 
* view_png.py
 
 
 
Additional Utility Tests
 
* /api/run_query_1d_gtl.sh
 
* programs/basin/run_basin_query_cvmh.sh
 
* programs/basin/run_basin_query_mpi_complete_cencal_cvms.sh
 
* programs/basin/run_basin_query_mpi_complete_cencal_cvms5.sh
 
* programs/basin/run_basin_query_mpi_complete_cencal_cvmsi.sh
 
* programs/basin/run_basin_query_mpi_cvms5.sh
 
* programs/etree/run_ucvm2etree_cvmh.sh
 
* programs/mesh/run_ucvm2mesh_cvmh.sh
 
* programs/mesh/run_ucvm2mesh_mpi_cvmh.sh
 
* programs/mesh/run_ucvm2mesh_mpi_cvmsi.sh
 
* programs/mesh/run_ucvm2mesh_mpi_layer_cvms.sh
 
* programs/mesh/run_ucvm2mesh_mpi_layer_cvmsi.sh
 
* programs/ucvm/run_ucvm_query_albacore.sh
 
* programs/ucvm/run_ucvm_query_cencal_cvms.sh
 
* programs/ucvm/run_ucvm_query_cencal_cvms5.sh
 
* programs/ucvm/run_ucvm_query_cvmh.sh
 
* programs/ucvm/run_ucvm_query_wfcvm.sh
 
 
 
== Acceptance tests ==
 
Confirm results on users system. Maybe union of funcational, integration, and model tests.
 
  
 
== Related Entries ==
 
== Related Entries ==
*[[UCVM]]
+
*[https://github.com/SCECcode/ucvm/wiki UCVM core wiki]
*[[UCVM Release Planning]]
+
*[https://github.com/SCECcode/ucvm.git UCVM core source code]

Latest revision as of 23:16, 3 May 2022

UCVM Testing descriptions have been moved to the UCVM GitHub wiki

Related Entries