Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Questions?  Ask them in Slack: Chat for ACME

NOTE:  all test suites now have the word "e3sm" in them instead of "acme".  e3sm_integration, e3sm_developer, etc.

E3SM

Choose the test category you want to run, in most cases, it will be one of the

...

e3sm-supported test categories

    • acmee3sm_integration test suite - A substantial set of tests run nightly on "next" and "master" on a few major platforms or workstations that establishes the correctness of the ACME E3SM code base. Used for verifying merged code. The set of target machines should cover all supported compilers.acme
    • e3sm_developer test suite - A more minimal set of tests that can be run by develpers developers on all supported platforms to instill a modicum of confidence that a set of changes does not break ACME E3SM before issuing a PR, without incurring the computational cost of running acme_full or acme_integration everywhere e3sm_integration everywhere.   e3sm_developer is included within e3sm_integration.  On some machines, we only run e3sm_developer nightly because it takes less time.
    • component level suite.  Some components have defined their own tests suites.  e.g. e3sm_land_developer, e3sm_atm_developer,  e3sm_mosart_developer.

To run a given test suite on a given machine, use the create_test command, issued from the cime/scripts-acme directory  directory in your ACME E3SM source tree:

    1. cd ACMEE3SM/cime/scripts
    2. ./create_test test_suite [--compiler compiler --baseline-rootacmeroot e3sm_baseline_dir -t test_id -r test_root_dir] [-(c|g) [-b baseline_subdirname ]] [--project project_or_account ]
      1. machine - The ACME E3SM scripts will probe your machine name from the current nodename
      2. compiler - The compiler toolset you wish to use, examples are: gnu, intel, pgi. You do not need to provide this if you want the default compiler (the first compiler listed in the COMPILERS parameter for your machine)
      3. test_suite - The name of the test category you want to run, like acmee3sm_developer. You can also provide a list of test names.  Instead a test suite, you can specify one specific test or set of tests.
      4. test_root_dir - The path where your test cases will be dumped. Default will be CESMSCRATCHROOTacmeCIME_OUTPUT_ROOT for the machine you are using.
      5. e3sm_baseline_dir - You only need to specify this if you want to use a different baseline area than is specified for your machine by the CCSMBASELINE_BASELINE ROOT parameter
      6. -c /-g - Do a baseline comparison/generation. You do not have to do any baseline operations.compare against baselines you generated in Generating new baseline files for a topic branch or the system default baselines which are usually from latest master.
      7. If you generate new baselines, especially for shared master and next branches, make them group-writable by others:
          1. chmod -R g+w $BASELINE_ROOT/$branch_name
      8. baseline_subdir - The name of the baselines (usually the major release you're on) you want to use. The default will be <current-branch-name>. Note that the tool will always prepend the compiler to the baseline subdir. Our baselines are always segregated by compiler. Don't bother with this option unless you provided -c or -g.
      9. project_or_account - The id that lets you run batch jobs on this machine
      10. test_id  - a string appended to end of test name.  default is a date and sha such as ".20160201_223053.20210708_184630_c657sy"
      11. for a complete list of options, do "./create_test --help"
    3. Once the tests are running, you'll want to see test results
      1. Case 1: Simple
        1. cd test_root_dir
        2. you will find a script named cs.status.(testid) You can run this script from the test root directory to see the status of tests being run within this suite
      2. Case 2: We have a more sophisticated script called wait_for_tests that provides extra capabilites like: waiting for tests to finish, converting results to CTest and submitting to a CDash dashboard
        1. cd test_root_dir
        2. <ACME><E3SM>/scriptscime/acmeCIME/wait_for_tests [ -d buildname] */TestStatus
    4. Example 1  Testing without baselines: to run the 'acmee3sm_developer' suite on Edison Chrysalis using the Intel compiler (assuming everything has been set up and this is not the first run) and compare against v0.1 baselines, you would run:
      1. (make sure the clone is checked out on your development branch)
      2. cd ACMEE3SM/cime/scripts
      3. ./create_test acmee3sm_developer -t acme_dev -c -b v0.1cd $SCRATCH/acme_scratch/edisonr mytestrun (the script will detect its on Chrysalis and use the default compiler, intel)
      4. cd /lcrc/group/e3sm/$USERID/scratch/chrys/mytestrun
      5. ./cs.status.acme_dev.(testid).
    5. Example 2:  Testing against baselines:

See Interpreting test results.

...