Skip to content

[develop]: Add regression testing#28

Draft
georgemccabe wants to merge 69 commits into
developfrom
feature/regression_tests
Draft

[develop]: Add regression testing#28
georgemccabe wants to merge 69 commits into
developfrom
feature/regression_tests

Conversation

@georgemccabe

@georgemccabe georgemccabe commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

DESCRIPTION OF CHANGES:

Note: This PR contains changes from PR #25 to address some issues running the tests. Until that PR is merged, the differences in this PR only can be viewed from this link:
feature/fix_some_issues...feature/regression_tests

  • Adds files in tests/regression directory
    • run_regression.py - run all end-to-end tests for a given branch/commit, pull request, or the "baseline" (commit/branch that is considered to be the truth data to compare new test results)
    • run_diff.py - Compare output generated by run_regression.py to other output to see if there are any differences using the METplus diff util
    • README.md - instructions and examples to run regression test scripts
    • regression_baseline.py - stores branch (develop) and commit that is considered the baseline to compare new results. If a PR will changes these results and is expected, the value in this file should be updated to the latest commit of the develop branch after the PR has been merged.
    • regression_common.py - variables/functions common to multiple scripts, e.g. the default location of the regression test output and the name of this repo
    • environment.yml - conda environment file to create vx_diff environment used to run the run_diff.py script
  • Updated setup_conda.sh script to take an argument vx_diff which creates/activates the diff environment instead of the vx_workflow environment

An example of the log file created by the diff script can be found on ursa:
/scratch3/BMC/dtc/George.Mccabe/dtc-vx-workflow_testing/diff_WE2E_20260630200405.txt

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

TESTS CONDUCTED:

  • derecho.intel
  • gaeac6.intel
  • hera.gnu
  • hera.intel
  • hercules.intel
  • orion.intel
  • ursa.gnu
  • ursa.intel
  • NOAA Cloud (indicate which platform)
  • Jenkins
  • fundamental test suite
  • comprehensive tests (specify which if a subset was used)

DEPENDENCIES:

DOCUMENTATION:

ISSUE:

CHECKLIST

  • My code follows the style guidelines in the Contributor's Guide
  • I have performed a self-review of my own code using the Code Reviewer's Guide
  • I have commented my code, particularly in hard-to-understand areas
  • My changes need updates to the documentation. I have made corresponding changes to the documentation
  • My changes do not require updates to the documentation (explain).
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • Any dependent changes have been merged and published

LABELS (optional):

A Code Manager needs to add the following labels to this PR:

  • Work In Progress
  • bug
  • enhancement
  • documentation
  • release
  • high priority
  • run_ci
  • run_we2e_fundamental_tests
  • run_we2e_comprehensive_tests
  • help wanted

CONTRIBUTORS (optional):

georgemccabe and others added 30 commits May 28, 2026 10:29
…is currently written to be run from that directory
…ed up test runs. Clean up logic to report if a test dir is not found in either baseline or new output
 - Replace call to load_modules_wflow.sh with call to setup_conda.sh
 - Since we no longer have module loads, ROCOTO_PATH is provided as a variable in the machine file for each platform
Read ROCOTO_PATH from the machine config file and prefix all calls to
rocotorun and rocotostat with it, consistent with launch_vx_wflow.sh.
Machines without ROCOTO_PATH (jet, noaacloud, linux, macos) fall back
to bare binary names. rocoto_path is stored in the WE2E monitor YAML
and propagated through update_expt_status/compare_rocotostat; added to
all non-task entry skip lists to avoid being treated as a task.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The statuses loop in update_expt_status had 8-space indentation while
the other two skip lists had 12-space indentation, so the replace_all
edit missed it. This caused a TypeError when iterating over the expt
dict since rocoto_path (a string) was not excluded from the task loop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Resolve SCRIPT_DIR from ${BASH_SOURCE[0]} at the top and anchor all
relative file/directory references (conda_loc, conda/, environment.yml)
to it. Also replaces readlink -f with cd && pwd for macOS compatibility
without requiring GNU coreutils.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
georgemccabe and others added 30 commits June 17, 2026 15:55
…! Also, make HAFS-A WE2E test case work on all platforms
…ut files that were skipped or had no differences
…write permissions set so multiple users can run tests in that area
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants