UCVM Testing

From SCECpedia
Jump to navigationJump to search

UCVM C-Language Testing Fixtures

  • C-Language - unittest - C executable
  • 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


Functional tests

Tests for C executables

  • ucvm_query
  • basin_query

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

    • 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

  • unittest_suite_lib.c:int test_lib_setparam_querymode_gd_1d()
  • unittest_suite_lib.c:int test_lib_setparam_querymode_ge_1d()

Additional Key Core Functionality

  • Test case interpolation
  • Test Cases Tiling
  • Test Cases Invalid Point

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