Skip to content

Dashboard, Testing, and Validation

Lina Muryanto edited this page Oct 14, 2020 · 4 revisions

The CDAT project is tested in CircleCI cloud. We have a workflow that exercises the installation of CDAT packages from cdat/label/nightly and conda-forge channels and runs tests on both Linux and MacOS with all the supported python versions.

Resources

How it works

The CircleCI CDAT nightly workflow creates a nightly conda test environment. It installed all CDAT nightly packages pulled from cdat/label/nightly and conda-forge channels. It runs all CDAT test suites, and stores the test artifacts for review. The workflow uses CircleCI matrix to create workflows for Linux and MacOS, all the supported python versions and libnetcdf variants.

Technical Details

Testdata Repository

The uvcdat-testdata repository contains the baseline images for the regression tests. It is cloned by default to ${CMAKE_BINARY_DIR}/uvcdat-testdata, though this can be configured to use another (possibly shared) location by changing the UVCDAT_GIT_TESTDATA_DIR cmake variable.

Fetching/Updating the baseline images

The "update-testdata" build target (e.g. make update-testdata) will:

  1. Clone the testdata repo to the specified directory if the directory does not exist.
  2. If the local directory is an existing, clean clone of the proper repository's master branch, the repository is updated.
  3. A warning is printed if the update/clone fails, but the build will continue.

This target is executed every time make is invoked.

By default, history is not fetched for the testdata repo. The full repository history can be obtained by running git clone --unshallow in the uvcdat-testdata directory.

Adding/Updating a baseline image

To update a baseline image or add a new one, create a branch of the testdata repo and submit a pull request. Refer to the testdata pull request in any associated uvcdat pull requests to ensure that the repositories are updated appropriately.

git checkout -b new_branch_name
git add [files]
git commit
git push origin HEAD:new_branch_name
Clone this wiki locally