cime_bisectΒΆ

cime_bisect is a script in CIMEROOT/scripts/Tools.

$ ./cime_bisect --help
usage: 
cime_bisect <testargs> <last-known-good-commit> [--bad=<bad>] [--compare=<baseline-id>] [--no-batch]  [--verbose]
OR
cime_bisect --help

EXAMPLES:
    # Bisect ERS.f45_g37.B1850C5 which got broken in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 ERS.f45_g37.B1850C5

    # Bisect ERS.f45_g37.B1850C5 which started to DIFF in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 -c -b master'

    # Bisect a build error for ERS.f45_g37.B1850C5 which got broken in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 --no-run'

    # Bisect two different failing tests which got broken in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 --no-run' 'SMS.f45_g37.F'

A script to help track down the commit that caused tests to fail.

positional arguments:
  good                  Name of most recent known good commit.

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           Print debug information (very verbose) to file
                        /Users/sacks/cime/scripts/Tools/cime_bisect.log
                        (default: False)
  -v, --verbose         Add additional context (time and file) to log messages
                        (default: False)
  -s, --silent          Print only warnings and error messages (default:
                        False)
  -B BAD, --bad BAD     Name of bad commit, default is current HEAD. (default:
                        HEAD)
  -a, --all-commits     Test all commits, not just merges (default: False)
  -C, --cime-integration
                        Bisect CIME instead of the whole code. Useful for
                        finding errors after CIME merges (default: False)
  -S SCRIPT, --script SCRIPT
                        Use your own custom script instead (default: None)

create_test:
  flags for modifying create_test call to be bisected

  testargs              String to pass to create_test. Combine with single
                        quotes if it includes multiple args. (default: None)
  -r TEST_ROOT, --test-root TEST_ROOT
                        Path to testroot to use for testcases for bisect.
                        WARNING. This will be cleared by this script.
                        (default: None)
  -n, --check-namelists
                        Consider a commit to be broken if namelist check fails
                        (default: False)
  -t, --check-throughput
                        Consider a commit to be broken if throughput check
                        fails (fail if tests slow down) (default: False)
  -m, --check-memory    Consider a commit to be broken if memory check fails
                        (fail if tests footprint grows) (default: False)
  -l, --check-memleak   Consider a commit to be broken if a memleak is
                        detected (default: False)