####################################
# Evergreen configuration for mongoc
# 
# Generated by build/generate-evergreen-config.py
#
# DO NOT EDIT THIS FILE
#
####################################

stepback: true
command_type: system

exec_timeout_secs: 2400 # 40 minutes is the longest we'll ever run (except on
# valgrind tasks, which we give 60 minutes).

timeout:
  - command: shell.exec
    params:
        script: |
           ls -la

functions:
  "fetch source":
    - command: git.get_project
      params:
        directory: mongoc
    - command: git.apply_patch
      params:
        directory: "mongoc"
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
           if [ "${is_patch}" = "true" ]; then
              VERSION=$(git describe --abbrev=7)-patch-${version_id}
           else
              VERSION=latest
           fi
           echo "CURRENT_VERSION: $VERSION" > expansion.yml
    - command: expansions.update
      params:
        file: mongoc/expansion.yml
    - command: shell.exec
      params:
        continue_on_err: true
        # Must be http as RHEL55 has https issues
        script: |
          set -o xtrace
          rm -f *.tar.gz
          curl --retry 5 http://s3.amazonaws.com/mciuploads/mongo-c-driver/${branch_name}/mongo-c-driver-${CURRENT_VERSION}.tar.gz --output mongoc.tar.gz -sS --max-time 120

  "upload release":
    - command: shell.exec
      params:
        script: |
           [ -f mongoc/mongo*gz ] && mv mongoc/mongo*gz mongoc.tar.gz
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: mongoc.tar.gz
        remote_file: mongo-c-driver/${branch_name}/mongo-c-driver-${CURRENT_VERSION}.tar.gz
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|application/x-gzip}

  "upload build":
    - command: archive.targz_pack
      params:
        target: "${build_id}.tar.gz"
        source_dir: "mongoc"
        include:
          - "./**"
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: ${build_id}.tar.gz
        remote_file: mongo-c-driver/${build_variant}/${revision}/${task_name}/${build_id}.tar.gz
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|application/x-gzip}

  "install ssl":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          set -o xtrace
          SSL=${SSL} sh .evergreen/install-ssl.sh

  "fetch build":
    - command: shell.exec
      params:
        continue_on_err: true
        script: "set -o xtrace && rm -rf mongoc"
    - command: s3.get
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        remote_file: mongo-c-driver/${build_variant}/${revision}/${BUILD_NAME}/${build_id}.tar.gz
        bucket: mciuploads
        local_file: build.tar.gz
    - command: shell.exec
      params:
        continue_on_err: true
        # EVG-1105: Use s3.get extract_to: mongoc/
        script: |
           set -o xtrace   # Write all commands first to stderr
           set -o errexit  # Exit the script with error if any of the commands fail

           mkdir mongoc

           if command -v gtar 2>/dev/null; then
              TAR=gtar
           else
              TAR=tar
           fi

           $TAR xf build.tar.gz -C mongoc/

  "upload docs" :
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc/src/libbson"
        script: |
           export AWS_ACCESS_KEY_ID=${aws_key}
           export AWS_SECRET_ACCESS_KEY=${aws_secret}
           aws s3 cp doc/html s3://mciuploads/${project}/docs/libbson/${CURRENT_VERSION} --recursive --acl public-read --region us-east-1
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/src/libbson/doc/html/index.html
        remote_file: ${project}/docs/libbson/${CURRENT_VERSION}/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "libbson docs"
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc/src/libmongoc"
        script: |
           export AWS_ACCESS_KEY_ID=${aws_key}
           export AWS_SECRET_ACCESS_KEY=${aws_secret}
           aws s3 cp doc/html s3://mciuploads/${project}/docs/libmongoc/${CURRENT_VERSION} --recursive --acl public-read --region us-east-1
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/src/libmongoc/doc/html/index.html
        remote_file: ${project}/docs/libmongoc/${CURRENT_VERSION}/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "libmongoc docs"

  "upload man pages" :
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc"
        script: |
           # Get "aha", the ANSI HTML Adapter.
           git clone --depth 1 https://github.com/theZiz/aha.git aha-repo
           cd aha-repo
           make
           cd ..
           mv aha-repo/aha .

           sh .evergreen/man-pages-to-html.sh libbson src/libbson/doc/man > bson-man-pages.html
           sh .evergreen/man-pages-to-html.sh libmongoc src/libmongoc/doc/man > mongoc-man-pages.html
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/bson-man-pages.html
        remote_file: ${project}/man-pages/libbson/${CURRENT_VERSION}/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "libbson man pages"
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/mongoc-man-pages.html
        remote_file: ${project}/man-pages/libmongoc/${CURRENT_VERSION}/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "libmongoc man pages"

  "upload coverage" :
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc"
        script: |
           export AWS_ACCESS_KEY_ID=${aws_key}
           export AWS_SECRET_ACCESS_KEY=${aws_secret}
           aws s3 cp coverage s3://mciuploads/${project}/${build_variant}/${revision}/${version_id}/${build_id}/coverage/ --recursive --acl public-read --region us-east-1
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/coverage/index.html
        remote_file: ${project}/${build_variant}/${revision}/${version_id}/${build_id}/coverage/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "Coverage Report"

  "upload abi report" :
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc"
        script: |
           export AWS_ACCESS_KEY_ID=${aws_key}
           export AWS_SECRET_ACCESS_KEY=${aws_secret}
           aws s3 cp abi-compliance/compat_reports s3://mciuploads/${project}/${build_variant}/${revision}/${version_id}/${build_id}/abi-compliance/compat_reports --recursive --acl public-read --region us-east-1
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_files_include_filter:  mongoc/abi-compliance/compat_reports/**/*.html
        remote_file: ${project}/${build_variant}/${revision}/${version_id}/${build_id}/abi-compliance/compat_report.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "ABI Report:"

  "upload scan artifacts" :
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          if find scan -name \*.html | grep -q html; then
            (cd scan && find . -name index.html -exec echo "<li><a href='{}'>{}</a></li>" \;) >> scan.html
          else
            echo "No issues found" > scan.html
          fi
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc"
        script: |
           export AWS_ACCESS_KEY_ID=${aws_key}
           export AWS_SECRET_ACCESS_KEY=${aws_secret}
           aws s3 cp scan s3://mciuploads/${project}/${build_variant}/${revision}/${version_id}/${build_id}/scan/ --recursive --acl public-read --region us-east-1
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file:  mongoc/scan.html
        remote_file: ${project}/${build_variant}/${revision}/${version_id}/${build_id}/scan/index.html
        bucket: mciuploads
        permissions: public-read
        content_type: text/html
        display_name: "Scan Build Report"

  "upload mo artifacts":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          DIR=MO
          [ -d "/cygdrive/c/data/mo" ] && DIR="/cygdrive/c/data/mo"
          [ -d $DIR ] && find $DIR -name \*.log | xargs tar czf mongodb-logs.tar.gz
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: mongoc/mongodb-logs.tar.gz
        remote_file: mongo-c-driver/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|application/x-gzip}
        display_name: "mongodb-logs.tar.gz"
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: mongoc/MO/server.log
        remote_file: mongo-c-driver/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-orchestration.log
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|text/plain}
        display_name: "orchestration.log"
    # Gather and archive mongo coredumps.
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          # Find all core files from mongodb in orchestration and move to mongoc
          DIR=MO
          MDMP_DIR=$DIR
          [ -d "/cygdrive/c/data/mo" ] && DIR="/cygdrive/c/data/mo"
          [ -d "/cygdrive/c/mongodb" ] && MDMP_DIR="/cygdrive/c/mongodb"
          core_files=$(/usr/bin/find -H $MO $MDMP_DIR \( -name "*.core" -o -name "*.mdmp" \) 2> /dev/null)
          for core_file in $core_files
          do
            base_name=$(echo $core_file | sed "s/.*\///")
            # Move file if it does not already exist
            if [ ! -f $base_name ]; then
              mv $core_file .
            fi
          done
    - command: archive.targz_pack
      params:
        target: "mongo-coredumps.tgz"
        source_dir: "mongoc"
        include:
          - "./**.core"
          - "./**.mdmp" # Windows: minidumps
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: mongo-coredumps.tgz
        remote_file: mongo-c-driver/${build_variant}/${revision}/${version_id}/${build_id}/coredumps/${task_id}-${execution}-coredumps.log
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|application/x-gzip}
        display_name: Core Dumps - Execution ${execution}
        optional: true

  "backtrace":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          ./.evergreen/debug-core-evergreen.sh

  "upload working dir":
    - command: archive.targz_pack
      params:
        target: "working-dir.tar.gz"
        source_dir: "mongoc"
        include:
          - "./**"
    - command: s3.put
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        local_file: working-dir.tar.gz
        remote_file: mongo-c-driver/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz
        bucket: mciuploads
        permissions: public-read
        content_type: ${content_type|application/x-gzip}
        display_name: "working-dir.tar.gz"

  "upload test results":
    - command: attach.results
      params:
        file_location: "mongoc/test-results.json"

  "bootstrap mongo-orchestration":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          set -o xtrace
          MONGODB_VERSION=${VERSION} TOPOLOGY=${TOPOLOGY} IPV4_ONLY=${IPV4_ONLY} AUTH=${AUTH} AUTHSOURCE=${AUTHSOURCE} SSL=${SSL} ORCHESTRATION_FILE=${ORCHESTRATION_FILE} sh .evergreen/integration-tests.sh

  "run tests":
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          COMPRESSORS="${COMPRESSORS}" CC="${CC}" AUTH=${AUTH} SSL=${SSL} URI=${URI} IPV4_ONLY=${IPV4_ONLY} VALGRIND=${VALGRIND} MONGOC_TEST_URI=${URI} DNS=${DNS} sh .evergreen/run-tests.sh

  "run tests bson":
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          CC="${CC}" sh .evergreen/run-tests-bson.sh

  "run auth tests":
    - command: shell.exec
      type: test
      params:
        silent: true
        working_dir: "mongoc"
        script: |
          export AUTH_HOST='${auth_host}'
          export AUTH_PLAIN='${auth_plain}'
          export AUTH_MONGODBCR='${auth_mongodbcr}'
          export AUTH_GSSAPI='${auth_gssapi}'
          export AUTH_CROSSREALM='${auth_crossrealm}'
          export AUTH_GSSAPI_UTF8='${auth_gssapi_utf8}'
          export ATLAS_FREE='${atlas_free}'
          export ATLAS_REPLSET='${atlas_replset}'
          export ATLAS_SHARD='${atlas_shard}'
          export ATLAS_TLS11='${atlas_tls11}'
          export ATLAS_TLS12='${atlas_tls12}'
          export REQUIRE_TLS12='${require_tls12}'
          export OBSOLETE_TLS='${obsolete_tls}'
          sh .evergreen/run-auth-tests.sh

  "run mock server tests":
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          CC="${CC}" VALGRIND=${VALGRIND} sh .evergreen/run-mock-server-tests.sh

  "cleanup":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          cd MO
          mongo-orchestration stop

  "windows fix":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          for i in $(find .evergreen -name \*.sh); do
            cat $i | tr -d '\r' > $i.new
            mv $i.new $i
          done

  "make files executable":
    - command: shell.exec
      params:
        working_dir: "mongoc"
        script: |
          for i in $(find .evergreen -name \*.sh); do
            chmod +x $i
          done

  "prepare kerberos" :
    - command: shell.exec
      params:
        silent: true
        working_dir: "mongoc"
        script: |
           # TODO BUILD-2557
           if test -w /etc/hosts; then
              SUDO=""
           else
              SUDO="sudo"
           fi
           if command -v host 2>/dev/null; then
              echo "`host ldaptest.10gen.cc | awk '/has address/ { print $4 ; exit }'` ldaptest.10gen.cc" | $SUDO tee -a /etc/hosts
           else
              echo "`getent hosts ldaptest.10gen.cc | awk '{ print $1; exit }'` ldaptest.10gen.cc" | $SUDO tee -a /etc/hosts
           fi
           if test "${keytab|}"; then
              echo "${keytab}" > /tmp/drivers.keytab.base64
              base64 --decode /tmp/drivers.keytab.base64 > /tmp/drivers.keytab
              cat .evergreen/kerberos.realm | $SUDO tee -a /etc/krb5.conf
           fi

  "link sample program" :
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          # Compile a program that links dynamically or statically to libmongoc,
          # using variables from pkg-config or CMake's find_package command.
          export BUILD_SAMPLE_WITH_CMAKE=${BUILD_SAMPLE_WITH_CMAKE}
          export ENABLE_SSL=${ENABLE_SSL}
          export ENABLE_SNAPPY=${ENABLE_SNAPPY}
          LINK_STATIC=  sh .evergreen/link-sample-program.sh
          LINK_STATIC=1 sh .evergreen/link-sample-program.sh

  "link sample program bson" :
    - command: shell.exec
      type: test
      params:
        working_dir: "mongoc"
        script: |
          set -o errexit
          # Compile a program that links dynamically or statically to libbson,
          # using variables from pkg-config or from CMake's find_package command.
          BUILD_SAMPLE_WITH_CMAKE=  LINK_STATIC=  sh .evergreen/link-sample-program-bson.sh
          BUILD_SAMPLE_WITH_CMAKE=  LINK_STATIC=1 sh .evergreen/link-sample-program-bson.sh
          BUILD_SAMPLE_WITH_CMAKE=1 LINK_STATIC=  sh .evergreen/link-sample-program-bson.sh
          BUILD_SAMPLE_WITH_CMAKE=1 LINK_STATIC=1 sh .evergreen/link-sample-program-bson.sh
  "update codecov.io" :
  - command: shell.exec
    params:
      working_dir: "mongoc"
      script: |
        export CODECOV_TOKEN=${codecov_token}
        curl -s https://codecov.io/bash | bash


  "debug-compile-coverage-notest-nosasl-nossl" :
  - command: shell.exec
    type: test
    params:
      working_dir: "mongoc"
      script: |
        set -o errexit
        set -o xtrace
        export EXTRA_CONFIGURE_FLAGS="-DENABLE_COVERAGE=ON -DENABLE_EXAMPLES=OFF"
        DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OFF SKIP_TESTS=ON sh .evergreen/compile.sh

  "debug-compile-coverage-notest-nosasl-openssl" :
  - command: shell.exec
    type: test
    params:
      working_dir: "mongoc"
      script: |
        set -o errexit
        set -o xtrace
        export EXTRA_CONFIGURE_FLAGS="-DENABLE_COVERAGE=ON -DENABLE_EXAMPLES=OFF"
        DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL SKIP_TESTS=ON sh .evergreen/compile.sh

pre:
  - func: "fetch source"
  - func: "windows fix"
  - func: "make files executable"
  - func: "prepare kerberos"

post:
  - func: "backtrace"
  - func: "upload working dir"
  - func: "upload mo artifacts"
  - func: "upload test results"
  - func: "cleanup"

tasks:

    - name: check-public-headers
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: sh ./.evergreen/check-public-headers.sh

    - name: getdata
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
               set -o errexit || true
               set -o xtrace
               . ./.evergreen/download-mongodb.sh || true
               get_distro || true
               echo $DISTRO
               echo $MARCH
               echo $OS
               uname -a || true
               ls /etc/*release* || true
               cc --version || true
               gcc --version || true
               clang --version || true
               gcov --version || true
               lcov --version || true
               llvm-cov --version || true
               echo $PATH
               ls -la /usr/local/Cellar/llvm/*/bin/ || true
               ls -la /usr/local/Cellar/ || true
               scan-build --version || true
               genhtml --version || true
               valgrind --version

# Compile Matrix {{{
    - name: make-release-archive
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              # Need modern Sphinx for :caption: in literal includes.
              python -m virtualenv venv
              cd venv
              . bin/activate
              ./bin/pip install sphinx
              cd ..

        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              export MONGOC_TEST_FUTURE_TIMEOUT_MS=30000
              export MONGOC_TEST_SKIP_LIVE=on
              export MONGOC_TEST_SKIP_SLOW=on
              sh .evergreen/check-release-archive.sh


        - func: "upload docs"
        - func: "upload man pages"
        - func: "upload release"
        - func: "upload build"

    - name: hardened-compile
      tags: ["hardened"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              export CFLAGS="-fno-strict-overflow -D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -O"
              export LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now"
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SNAPPY=OFF ZLIB=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: abi-compliance-check
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              sh .evergreen/abi-compliance-check.sh

        - func: "upload abi report"

        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              if [ -e ./abi-compliance/abi-error.txt ]; then
                exit 1
              else
                exit 0
              fi

    - name: test-latest-server-hardened
      tags: ["hardened", "latest"]
      depends_on:
        - name: "hardened-compile"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "hardened-compile"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"


    - name: debug-compile-compression-zlib
      tags: ["zlib", "compression"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SNAPPY=OFF ZLIB=BUNDLED sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-compression-snappy
      tags: ["snappy", "compression"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SNAPPY=ON ZLIB=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-compression
      tags: ["zlib", "snappy", "compression"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SNAPPY=ON ZLIB=BUNDLED sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-no-align
      tags: ["debug-compile"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SNAPPY=OFF ZLIB=BUNDLED  sh .evergreen/compile.sh
        - func: "upload build"

    - name: test-latest-server-compression-zlib
      tags: ["zlib", "compression", "latest"]
      depends_on:
        - name: "debug-compile-compression-zlib"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-compression-zlib"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            ORCHESTRATION_FILE: "zlib"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            COMPRESSORS: zlib

    - name: test-latest-server-compression-snappy
      tags: ["snappy", "compression", "latest"]
      depends_on:
        - name: "debug-compile-compression-snappy"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-compression-snappy"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            ORCHESTRATION_FILE: "snappy"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            COMPRESSORS: snappy

    - name: test-latest-server-compression
      tags: ["zlib", "snappy", "compression", "latest"]
      depends_on:
        - name: "debug-compile-compression"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-compression"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            ORCHESTRATION_FILE: "snappy-zlib"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            COMPRESSORS: zlib,snappy

    - name: debug-compile
      tags: ["debug-compile"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-lto
      tags: ["debug-compile-lto"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' CFLAGS='-flto' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-lto-thin
      tags: ["debug-compile-lto-thin"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' CFLAGS='-flto=thin' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-c11
      tags: ["debug-compile", "special", "c11", "stdflags"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' CFLAGS='-std=c11 -D_XOPEN_SOURCE=600' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-c99
      tags: ["debug-compile", "special", "c99", "stdflags"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' CFLAGS='-std=c99 -D_XOPEN_SOURCE=600' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-c89
      tags: ["debug-compile", "special", "c89", "stdflags"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' CFLAGS='-std=c89 -D_POSIX_C_SOURCE=200112L -pedantic' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-valgrind
      tags: ["debug-compile", "special", "valgrind"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              VALGRIND=ON DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-valgrind-memcheck
      tags: ["debug-compile", "special", "valgrind", "bson"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              VALGRIND=ON DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL CFLAGS='-DBSON_MEMCHECK' sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-coverage
      tags: ["debug-compile", "special", "coverage"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' COVERAGE=ON sh .evergreen/compile.sh
        - func: "upload coverage"
        - func: "upload build"

    - name: debug-compile-no-counters
      tags: ["debug-compile", "no-counters"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' ENABLE_SHM_COUNTERS=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sanitizer-address-clang
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              PATH=/usr/lib/llvm-3.8/bin:$PATH DEBUG=on CC='clang-3.8' CXX='clang++-3.8' MARCH='${MARCH}' CHECK_LOG=ON CFLAGS='-fsanitize=address' CXXFLAGS="$CFLAGS" SNAPPY=OFF sh .evergreen/compile.sh

    - name: debug-compile-sanitizer-address-gcc
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              # include -pthread in CFLAGS on gcc to address the issue explained here:
              # https://groups.google.com/forum/#!topic/address-sanitizer/JxnwgrWOLuc
              DEBUG=ON MARCH='${MARCH}' DEBUG=on CHECK_LOG=ON CFLAGS='-fsanitize=address -pthread' CXXFLAGS="$CFLAGS" SNAPPY=OFF sh .evergreen/compile.sh

    - name: debug-compile-asan-clang-nosasl-nossl
      tags: ["debug-compile", "asan", "special"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              PATH=/usr/lib/llvm-3.4/bin:$PATH DEBUG=on CC='clang' CXX='clang++' MARCH='${MARCH}' CHECK_LOG=ON CFLAGS='-fsanitize=address -g -fno-omit-frame-pointer' CXXFLAGS="$CFLAGS" SNAPPY=OFF SSL=OFF SASL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-asan-clang-nosasl-openssl
      tags: ["debug-compile", "asan", "special"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              PATH=/usr/lib/llvm-3.4/bin:$PATH DEBUG=on CC='clang' CXX='clang++' MARCH='${MARCH}' CHECK_LOG=ON CFLAGS='-fsanitize=address -g -fno-omit-frame-pointer' CXXFLAGS="$CFLAGS" SNAPPY=OFF SSL=OPENSSL SASL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-asan-clang-memcheck
      tags: ["debug-compile", "asan", "special"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              PATH=/usr/lib/llvm-3.4/bin:$PATH DEBUG=on CC='clang' CXX='clang++' MARCH='${MARCH}' CHECK_LOG=ON CFLAGS='-fsanitize=address -g -fno-omit-frame-pointer -DBSON_MEMCHECK' CXXFLAGS="$CFLAGS" SNAPPY=OFF SSL=OPENSSL SASL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sanitizer-undefined
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              export EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF"
              PATH=/usr/lib/llvm-3.8/bin:$PATH DEBUG=ON CC='clang-3.8' CXX='clang++-3.8' MARCH='${MARCH}' CHECK_LOG=ON CFLAGS='-fsanitize=undefined' CXXFLAGS="$CFLAGS" SNAPPY=OFF sh .evergreen/compile.sh

    - name: debug-compile-scan-build
      tags: ["debug-compile", "special", "scan-build", "clang"]
      commands:
        - command: shell.exec
          params:
            continue_on_err: true
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC=clang ANALYZE=ON MARCH='${MARCH}' sh .evergreen/compile.sh
        - func: "upload scan artifacts"
        - func: "upload build"
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
               if find scan -name \*.html | grep -q html; then
                  exit 123
               fi

    - name: compile-tracing
      tags: ["compile", "tracing"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON TRACING=ON CC='${CC}' MARCH='${MARCH}'  sh .evergreen/compile.sh
        - func: "upload build"

    - name: release-compile
      tags: ["release-compile"]
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              RELEASE=ON CC='${CC}' MARCH='${MARCH}' sh .evergreen/compile.sh
        - func: "upload build"

    - name: link-with-cmake
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - func: "link sample program"
          vars:
            BUILD_SAMPLE_WITH_CMAKE: "1"

    - name: link-with-cmake-ssl
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - func: "link sample program"
          vars:
            BUILD_SAMPLE_WITH_CMAKE: "1"
            ENABLE_SSL: "1"

    - name: link-with-cmake-snappy
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
        - func: "link sample program"
          vars:
            BUILD_SAMPLE_WITH_CMAKE: "1"
            ENABLE_SNAPPY: "1"

    - name: link-with-cmake-mac
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
        - func: "link sample program"
          vars:
            BUILD_SAMPLE_WITH_CMAKE: "1"

    - name: link-with-cmake-windows
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              # Build libmongoc with CMake and compile a program that links
              # dynamically or statically to it, using variables from CMake's
              # find_package command.
              LINK_STATIC=  cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd
              LINK_STATIC=1 cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd

    - name: link-with-cmake-windows-ssl
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            SSL: "winssl"
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              # Build libmongoc with CMake and compile a program that links
              # dynamically or statically to it, using variables from CMake's
              # find_package command.
              export ENABLE_SSL=1
              LINK_STATIC=  cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd
              LINK_STATIC=1 cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd

    - name: link-with-cmake-windows-snappy
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              # Build libmongoc with CMake and compile a program that links
              # dynamically or statically to it, using variables from CMake's
              # find_package command.
              export ENABLE_SNAPPY=1
              LINK_STATIC=  cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd
              LINK_STATIC=1 cmd.exe /c .\\.evergreen\\link-sample-program-msvc.cmd

    - name: link-with-cmake-mingw
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              # Build libmongoc with CMake (not Autotools) and compile a program
              # that links dynamically or statically to it, using variables from
              # pkg-config.exe.
              cmd.exe /c .\\.evergreen\\link-sample-program-mingw.cmd

    - name: link-with-pkg-config
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - func: "link sample program"

    - name: link-with-pkg-config-mac
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - func: "link sample program"

    - name: link-with-pkg-config-ssl
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
        - func: "link sample program"
          vars:
            ENABLE_SSL: "1"

    - name: link-with-bson
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "link sample program bson"

    - name: link-with-bson-mac
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - func: "link sample program bson"

    - name: link-with-bson-windows
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              # Build libbson with CMake and compile a program that links
              # dynamically or statically to it, using variables from CMake's
              # find_package command.
              LINK_STATIC=  cmd.exe /c .\\.evergreen\\link-sample-program-msvc-bson.cmd
              LINK_STATIC=1 cmd.exe /c .\\.evergreen\\link-sample-program-msvc-bson.cmd

    - name: link-with-bson-mingw
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              # Build libbson with CMake and compile a program that links
              # dynamically or statically to it, using variables from
              # pkg-config.exe.
              LINK_STATIC= cmd.exe /c .\\.evergreen\\link-sample-program-mingw-bson.cmd

    - name: test-dns-openssl
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            SSL: "ssl"
        - func: "run tests"
          vars:
            DNS: on
            SSL: "ssl"

    - name: test-dns-winssl
      depends_on:
        - name: "debug-compile-sspi-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sspi-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            SSL: "winssl"
        - func: "run tests"
          vars:
            DNS: on
            SSL: "winssl"

    - name: test-dns-darwinssl
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            DNS: on
            SSL: "darwinssl"

    - name: test-dns-auth-openssl
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            SSL: "ssl"
            AUTH: "auth"
            AUTHSOURCE: "thisDB"
            ORCHESTRATION_FILE: "auth-thisdb-ssl"
        - func: "run tests"
          vars:
            DNS: "dns-auth"
            AUTH: "auth"
            SSL: "ssl"

    - name: test-dns-auth-winssl
      depends_on:
        - name: "debug-compile-sspi-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sspi-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            SSL: "winssl"
            AUTH: "auth"
            AUTHSOURCE: "thisDB"
            ORCHESTRATION_FILE: "auth-thisdb-ssl"
        - func: "run tests"
          vars:
            DNS: "dns-auth"
            AUTH: "auth"
            SSL: "winssl"

    - name: test-dns-auth-darwinssl
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            SSL: "darwinssl"
            AUTH: "auth"
            AUTHSOURCE: "thisDB"
            ORCHESTRATION_FILE: "auth-thisdb-ssl"
        - func: "run tests"
          vars:
            DNS: "dns-auth"
            AUTH: "auth"
            SSL: "darwinssl"

    - name: debug-compile-nosasl-nossl
      tags: ["debug-compile", "nosasl", "nossl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-nosasl-openssl
      tags: ["debug-compile", "nosasl", "openssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-nosasl-darwinssl
      tags: ["debug-compile", "nosasl", "darwinssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=DARWIN sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-nosasl-winssl
      tags: ["debug-compile", "nosasl", "winssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=WINDOWS sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sasl-nossl
      tags: ["debug-compile", "sasl", "nossl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=AUTO SSL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sasl-openssl
      tags: ["debug-compile", "sasl", "openssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=AUTO SSL=OPENSSL sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sasl-darwinssl
      tags: ["debug-compile", "sasl", "darwinssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=AUTO SSL=DARWIN sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sasl-winssl
      tags: ["debug-compile", "sasl", "winssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=AUTO SSL=WINDOWS sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sspi-nossl
      tags: ["debug-compile", "sspi", "nossl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=SSPI SSL=OFF sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sspi-openssl
      tags: ["debug-compile", "sspi", "openssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=SSPI SSL=OPENSSL sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-rdtscp
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}'  sh .evergreen/compile.sh
        - func: "upload build"

    - name: debug-compile-sspi-winssl
      tags: ["debug-compile", "sspi", "winssl"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=SSPI SSL=WINDOWS sh .evergreen/compile.sh
        - func: "upload build"

    # Verify that retryWrites=true is ignored with standalone
    - name: retry-true-latest-server
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            URI: "mongodb://localhost/?retryWrites=true"

    # Verify that retryWrites=true is ignored with old server
    - name: retry-true-3.4-replica-set
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            URI: "mongodb://localhost/?replicaSet=repl0&retryWrites=true"

    - name: debian-package-build
      commands:
        - command: shell.exec
          params:
            script: |
              set -o xtrace
              set -o errexit
              if [ "${is_patch}" = "true" ]; then
                cd mongoc
                git diff HEAD -- . ':!debian' > ../upstream.patch
                git diff HEAD -- debian > ../debian.patch
                git clean -fdx
                git reset --hard HEAD
                if [ -s ../upstream.patch ]; then
                  [ -d debian/patches ] || mkdir debian/patches
                  mv ../upstream.patch debian/patches/
                  echo upstream.patch >> debian/patches/series
                  git add debian/patches/*
                  git commit -m 'Evergreen patch build - upstream changes'
                  git log -n1 -p
                fi
                if [ -s ../debian.patch ]; then
                  git apply --index ../debian.patch
                  git commit -m 'Evergreen patch build - Debian packaging changes'
                  git log -n1 -p
                fi
                cd ..
              fi
              git clone https://salsa.debian.org/installer-team/debootstrap.git debootstrap.git
              mkdir unstable-chroot
              export DEBOOTSTRAP_DIR=`pwd`/debootstrap.git
              sudo -E ./debootstrap.git/debootstrap --include=build-essential,git-buildpackage,fakeroot,debhelper,cmake,libssl-dev,pkg-config,python3-sphinx,zlib1g-dev,libicu-dev,libsasl2-dev,libsnappy-dev unstable ./unstable-chroot/ http://cdn-aws.deb.debian.org/debian
              cp -a mongoc ./unstable-chroot/tmp/
              sudo chroot ./unstable-chroot /bin/bash -c "(set -o xtrace && \
                cd /tmp/mongoc && \
                git clean -fdx && \
                git reset --hard HEAD && \
                LANG=C /bin/bash ./debian/build_snapshot.sh && \
                dpkg -i ../*.deb && \
                gcc -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -o example-client src/libmongoc/examples/example-client.c -lmongoc-1.0 -lbson-1.0 )"
              [ -e ./unstable-chroot/tmp/mongoc/example-client ] || (echo "Example was not built!" ; exit 1)
              (cd ./unstable-chroot/tmp/ ; tar zcvf ../../deb.tar.gz *.dsc *.orig.tar.gz *.debian.tar.xz *.build *.deb)
        - command: s3.put
          params:
            aws_key: ${aws_key}
            aws_secret: ${aws_secret}
            local_file: deb.tar.gz
            remote_file: mongo-c-driver/${branch_name}/mongo-c-driver-debian-packages-${CURRENT_VERSION}.tar.gz
            bucket: mciuploads
            permissions: public-read
            content_type: ${content_type|application/x-gzip}

    - name: install-uninstall-check-mingw
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o xtrace
              set -o errexit
              export CC="C:/mingw-w64/x86_64-4.9.1-posix-seh-rt_v3-rev1/mingw64/bin/gcc.exe"
              BSON_ONLY=1 cmd.exe /c .\\.evergreen\\install-uninstall-check-windows.cmd
              cmd.exe /c .\\.evergreen\\install-uninstall-check-windows.cmd

    - name: install-uninstall-check-msvc
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o xtrace
              set -o errexit
              export CC="Visual Studio 14 2015 Win64"
              BSON_ONLY=1 cmd.exe /c .\\.evergreen\\install-uninstall-check-windows.cmd
              cmd.exe /c .\\.evergreen\\install-uninstall-check-windows.cmd

    - name: install-uninstall-check
      depends_on:
        - name: "make-release-archive"
          variant: releng
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o xtrace
              set -o errexit
              BSON_ONLY=1 sh ./.evergreen/install-uninstall-check.sh
              sh ./.evergreen/install-uninstall-check.sh
# }}}

# Test Matrix {{{
    - name: test-3.6-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "3.6", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "4.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "3.2", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-server-noauth-nosasl-darwinssl
      tags: ["server", "3.6", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-4.0-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-asan-latest-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "3.6", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "3.2", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "3.6", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-replica-set-auth-sasl-openssl
      tags: ["replica_set", "3.4", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.2-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "3.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-server-noauth-nosasl-nossl
      tags: ["server", "latest", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "latest", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.0-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-coverage-3.4-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-3.0-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.6-server-noauth-nosasl-openssl
      tags: ["server", "3.6", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.6-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "4.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "3.6", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-server-noauth-sasl-winssl
      tags: ["server", "3.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "4.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.2-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-server-auth-nosasl-darwinssl
      tags: ["server", "3.6", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "latest", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.2-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-4.0-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-asan-3.2-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "3.6", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "3.4", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "4.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.4-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-auth-sasl-openssl
      tags: ["server", "3.2", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "3.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "latest", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "4.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "4.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.6-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-4.0-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-4.0-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "4.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-valgrind-latest-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "latest", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-server-noauth-sasl-openssl
      tags: ["server", "3.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "4.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "3.4", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "latest", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "latest", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "4.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-valgrind-3.6-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-server-auth-nosasl-winssl
      tags: ["server", "3.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.0-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.4", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "3.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "3.4", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "4.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-server-auth-sasl-darwinssl
      tags: ["server", "latest", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "latest", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-asan-3.6-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "3.2", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-server-auth-nosasl-openssl
      tags: ["server", "3.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "3.4", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-server-noauth-sasl-winssl
      tags: ["server", "3.6", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-3.6-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.2-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "3.2", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-server-noauth-sasl-openssl
      tags: ["server", "3.4", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "3.4", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-latest-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-latest-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-valgrind-latest-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-server-noauth-sasl-winssl
      tags: ["server", "latest", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.0-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "3.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-auth-sasl-openssl
      tags: ["replica_set", "latest", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.4-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "latest", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "4.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-noauth-nosasl-openssl
      tags: ["server", "3.2", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "latest", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.6-replica-set-auth-sasl-winssl
      tags: ["replica_set", "3.6", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-4.0-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-server-auth-nosasl-winssl
      tags: ["server", "latest", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.0-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "4.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-4.0-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-server-noauth-nosasl-openssl
      tags: ["server", "4.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.6", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.2-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "3.4", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-server-noauth-nosasl-winssl
      tags: ["server", "3.2", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.4-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "3.4", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "3.2", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "4.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.4-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-replica-set-auth-sasl-winssl
      tags: ["replica_set", "3.2", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.6-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "4.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "latest", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-latest-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-latest-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-3.6-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.6-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-3.2-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-3.6-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.0-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "3.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.0-server-noauth-sasl-darwinssl
      tags: ["server", "3.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-latest-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.2-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-server-noauth-sasl-darwinssl
      tags: ["server", "3.6", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "3.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.6-replica-set-auth-sasl-openssl
      tags: ["replica_set", "3.6", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-server-auth-sasl-darwinssl
      tags: ["server", "4.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-server-auth-sasl-winssl
      tags: ["server", "3.6", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-4.0-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.4-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-server-noauth-sasl-darwinssl
      tags: ["server", "3.4", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-server-auth-sspi-winssl
      tags: ["server", "latest", "winssl", "sspi", "auth"]
      depends_on:
        - name: "debug-compile-sspi-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sspi-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.4-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "3.4", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.6-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.2-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-server-auth-sasl-winssl
      tags: ["server", "3.4", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.4-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "3.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.2-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-coverage-3.2-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-asan-4.0-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-4.0-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-server-auth-sasl-openssl
      tags: ["server", "4.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "3.6", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-server-noauth-sasl-openssl
      tags: ["server", "latest", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "3.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-server-noauth-sasl-darwinssl
      tags: ["server", "latest", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.2", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-replica-set-auth-sasl-openssl
      tags: ["replica_set", "4.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "3.4", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "3.4", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.0-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.4-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "3.4", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-coverage-3.6-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.6-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "3.6", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-4.0-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "3.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-3.0-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-4.0-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-4.0-server-noauth-sasl-darwinssl
      tags: ["server", "4.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "4.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-server-noauth-sasl-openssl
      tags: ["server", "3.6", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-server-auth-nosasl-openssl
      tags: ["server", "3.4", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "4.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-4.0-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-noauth-sasl-winssl
      tags: ["server", "3.2", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-3.6-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-valgrind-4.0-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "3.2", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-3.0-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "latest", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "3.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.2-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "latest", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "4.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.4-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-asan-3.0-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "3.4", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "3.6", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.2-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.6-server-auth-nosasl-winssl
      tags: ["server", "3.6", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.6-server-auth-sasl-openssl
      tags: ["server", "3.6", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "3.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-server-auth-nosasl-darwinssl
      tags: ["server", "4.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "latest", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "latest", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "3.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "3.6", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-4.0-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-sharded-auth-nosasl-darwinssl
      tags: ["sharded_cluster", "latest", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-sharded-noauth-nosasl-nossl
      tags: ["sharded_cluster", "3.2", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-3.6-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-server-auth-nosasl-darwinssl
      tags: ["server", "3.4", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "latest", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-3.0-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-valgrind-3.0-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "3.6", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "3.6", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "3.0", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.0-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-auth-nosasl-openssl
      tags: ["server", "3.2", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "latest", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.4-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.0-sharded-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "3.4", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-3.6-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.4-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "3.4", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "3.4", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "3.6", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.6-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "3.6", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-server-noauth-nosasl-nossl
      tags: ["server", "4.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "latest", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-latest-replica-set-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.0-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "3.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-server-noauth-sasl-winssl
      tags: ["server", "4.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "4.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-latest-server-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-server-noauth-nosasl-darwinssl
      tags: ["server", "3.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-latest-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-sharded-auth-sasl-darwinssl
      tags: ["sharded_cluster", "3.2", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-latest-server-auth-sasl-openssl
      tags: ["server", "latest", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "3.6", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-4.0-server-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "3.2", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "3.2", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.6-server-auth-nosasl-openssl
      tags: ["server", "3.6", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "4.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "3.2", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.0-replica-set-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.6", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-server-auth-sasl-winssl
      tags: ["server", "3.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "3.2", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-latest-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-noauth-nosasl-winssl
      tags: ["sharded_cluster", "3.6", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-server-noauth-nosasl-darwinssl
      tags: ["server", "3.2", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "3.2", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-server-auth-nosasl-darwinssl
      tags: ["server", "3.0", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-replica-set-auth-sasl-openssl
      tags: ["replica_set", "3.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.2-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.0-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "3.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-server-noauth-nosasl-winssl
      tags: ["server", "latest", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-replica-set-noauth-sasl-winssl
      tags: ["replica_set", "latest", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-sharded-noauth-sasl-winssl
      tags: ["sharded_cluster", "4.0", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-server-auth-nosasl-openssl
      tags: ["server", "4.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-3.4-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-asan-3.2-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-server-auth-sasl-darwinssl
      tags: ["server", "3.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.4-server-noauth-nosasl-winssl
      tags: ["server", "3.4", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.0-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.4-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "3.4", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-3.4-replica-set-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "4.0", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-replica-set-auth-sasl-winssl
      tags: ["replica_set", "4.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.2-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "3.6", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.4-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "3.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-4.0-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-3.4-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-coverage-3.4-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-3.4-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-replica-set-auth-sasl-winssl
      tags: ["replica_set", "latest", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-server-auth-sasl-darwinssl
      tags: ["server", "3.2", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.2", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "3.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "3.6", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "3.4", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-server-noauth-nosasl-nossl
      tags: ["server", "3.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-server-auth-sasl-darwinssl
      tags: ["server", "3.6", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-3.4-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-coverage-3.0-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.2-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "3.2", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-3.2-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.2-server-auth-sasl-winssl
      tags: ["server", "3.2", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-replica-set-auth-nosasl-openssl
      tags: ["replica_set", "4.0", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "3.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "3.4", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-replica-set-auth-sasl-openssl
      tags: ["replica_set", "3.2", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "3.4", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-server-auth-sasl-darwinssl
      tags: ["server", "3.4", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "3.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-3.2-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "3.2", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-replica-set-auth-sasl-winssl
      tags: ["replica_set", "3.4", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-4.0-replica-set-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.4-server-auth-sasl-openssl
      tags: ["server", "3.4", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "3.6", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-server-noauth-nosasl-darwinssl
      tags: ["server", "3.4", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-latest-sharded-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.2-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "3.2", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-4.0-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "4.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "3.6", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-server-noauth-nosasl-winssl
      tags: ["server", "4.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-3.6-sharded-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-3.0-sharded-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-valgrind-3.0-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-noauth-sasl-openssl
      tags: ["server", "3.2", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-replica-set-auth-nosasl-darwinssl
      tags: ["replica_set", "latest", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-valgrind-3.6-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.0-sharded-auth-nosasl-winssl
      tags: ["sharded_cluster", "3.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-latest-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.4-server-noauth-nosasl-nossl
      tags: ["server", "3.4", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.4-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "3.4", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-server-noauth-nosasl-winssl
      tags: ["server", "3.6", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "latest", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-server-noauth-nosasl-nossl
      tags: ["server", "3.2", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-latest-server-auth-sasl-winssl
      tags: ["server", "latest", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-sharded-noauth-sasl-openssl
      tags: ["sharded_cluster", "3.2", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-sharded-noauth-nosasl-openssl
      tags: ["sharded_cluster", "3.2", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-server-auth-nosasl-darwinssl
      tags: ["server", "latest", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.4-server-auth-nosasl-winssl
      tags: ["server", "3.4", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-4.0-server-noauth-sasl-openssl
      tags: ["server", "4.0", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-replica-set-noauth-nosasl-openssl
      tags: ["replica_set", "3.4", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-replica-set-auth-sasl-winssl
      tags: ["replica_set", "3.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-latest-server-auth-nosasl-openssl
      tags: ["server", "latest", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-replica-set-noauth-sasl-openssl
      tags: ["replica_set", "latest", "openssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-asan-4.0-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "3.4", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-coverage-latest-sharded-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-3.2-replica-set-auth-nosasl-winssl
      tags: ["replica_set", "3.2", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.4-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "latest", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "3.6", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-sharded-noauth-sasl-darwinssl
      tags: ["sharded_cluster", "3.2", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-sharded-auth-sasl-openssl
      tags: ["sharded_cluster", "3.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.2-server-auth-nosasl-darwinssl
      tags: ["server", "3.2", "darwinssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.2-replica-set-noauth-sasl-darwinssl
      tags: ["replica_set", "3.2", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-server-auth-sasl-openssl
      tags: ["server", "3.0", "openssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-latest-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.6-sharded-auth-nosasl-openssl
      tags: ["sharded_cluster", "3.6", "openssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-server-noauth-nosasl-darwinssl
      tags: ["server", "latest", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-valgrind-3.0-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-3.0-server-noauth-nosasl-openssl
      tags: ["server", "3.0", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.6-sharded-auth-sasl-winssl
      tags: ["sharded_cluster", "3.6", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-replica-set-auth-sasl-darwinssl
      tags: ["replica_set", "3.2", "darwinssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "darwinssl"
            URI: ""


    - name: test-4.0-server-noauth-nosasl-darwinssl
      tags: ["server", "4.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.0-replica-set-noauth-nosasl-darwinssl
      tags: ["replica_set", "3.0", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-asan-3.0-replica-set-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-latest-server-noauth-nosasl-openssl
      tags: ["server", "latest", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-server-noauth-sasl-winssl
      tags: ["server", "3.4", "winssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-valgrind-3.2-replica-set-noauth-nosasl-nossl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-3.2-server-noauth-sasl-darwinssl
      tags: ["server", "3.2", "darwinssl", "sasl", "noauth"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-coverage-latest-server-noauth-nosasl-nossl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""
        - func: "update codecov.io"


    - name: test-latest-replica-set-noauth-nosasl-winssl
      tags: ["replica_set", "latest", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.4-server-noauth-nosasl-openssl
      tags: ["server", "3.4", "openssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "openssl"
            URI: ""


    - name: test-3.4-sharded-noauth-nosasl-darwinssl
      tags: ["sharded_cluster", "3.4", "darwinssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-darwinssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.4"
            TOPOLOGY: "sharded_cluster"
            AUTH: "noauth"
            SSL: "darwinssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "darwinssl"
            URI: ""


    - name: test-3.6-server-noauth-nosasl-nossl
      tags: ["server", "3.6", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-server-auth-nosasl-winssl
      tags: ["server", "4.0", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-coverage-3.0-server-auth-nosasl-openssl
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "openssl"
            URI: ""
        - func: "update codecov.io"


    - name: test-asan-3.6-server-noauth-nosasl-nossl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.6"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-replica-set-noauth-nosasl-nossl
      tags: ["replica_set", "4.0", "nossl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "replica_set"
            AUTH: "noauth"
            SSL: "nossl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: ""


    - name: test-4.0-server-auth-sasl-winssl
      tags: ["server", "4.0", "winssl", "sasl", "auth"]
      depends_on:
        - name: "debug-compile-sasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-3.0-server-noauth-nosasl-winssl
      tags: ["server", "3.0", "winssl", "nosasl", "noauth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.0"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "winssl"
            URI: ""


    - name: test-3.2-server-auth-nosasl-winssl
      tags: ["server", "3.2", "winssl", "nosasl", "auth"]
      depends_on:
        - name: "debug-compile-nosasl-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-winssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "3.2"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "winssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "winssl"
            URI: ""


    - name: test-asan-latest-server-auth-nosasl-openssl
      tags: ["test-asan"]
      exec_timeout_secs: 3600
      depends_on:
        - name: "debug-compile-asan-clang-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            ASAN: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""


    - name: test-valgrind-4.0-sharded-auth-nosasl-openssl
      tags: ["test-valgrind"]
      exec_timeout_secs: 7200
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "4.0"
            TOPOLOGY: "sharded_cluster"
            AUTH: "auth"
            SSL: "openssl"
        - func: "run tests"
          vars:
            VALGRIND: "on"
            AUTH: "auth"
            SSL: "openssl"
            URI: ""



    - name: test-valgrind-memcheck-mock-server
      tags: ["test-valgrind"]
      depends_on:
        - name: "debug-compile-valgrind-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-valgrind-memcheck"
        - func: "run mock server tests"
          vars:
            VALGRIND: "on"
            AUTH: "noauth"
            SSL: "ssl"
            URI: ""


    - name: test-coverage-mock-server
      tags: ["test-coverage"]
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "run mock server tests"
          vars:
            AUTH: "noauth"
            SSL: "ssl"
            URI: ""
        - func: "update codecov.io"

    - name: test-coverage-latest-server-dns
      tags: ["test-coverage"]
      exec_timeout_secs: 3600
      commands:
        - func: "debug-compile-coverage-notest-nosasl-openssl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "replica_set"
            AUTH: "auth"
            SSL: "ssl"
        - func: "run tests"
          vars:
            AUTH: "auth"
            SSL: "ssl"
            DNS: on
        - func: "update codecov.io"


    # Run special auth tests against our enterprise MongoDB instance.
    - name: authentication-tests-openssl-nosasl
      tags: ["authentication-tests", "nosasl", "ssl", "openssl"]
      depends_on:
        - name: "debug-compile-nosasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-openssl"
        - func: "run auth tests"

    - name: authentication-tests-openssl
      tags: ["authentication-tests", "sasl", "ssl", "openssl"]
      depends_on:
        - name: "debug-compile-sasl-openssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-openssl"
        - func: "run auth tests"

    - name: authentication-tests-darwinssl
      tags: ["authentication-tests", "sasl", "ssl", "darwinssl"]
      depends_on:
        - name: "debug-compile-sasl-darwinssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sasl-darwinssl"
        - func: "run auth tests"

    - name: authentication-tests-winssl
      tags: ["authentication-tests", "sspi", "ssl", "winssl"]
      depends_on:
        - name: "debug-compile-sspi-winssl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-sspi-winssl"
        - func: "run auth tests"

    # Catch leaks or double-frees of bson_t structs in auth code.
    - name: authentication-tests-memcheck
      tags: ["authentication-tests", "sasl", "ssl", "openssl", "memcheck"]
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=AUTO SSL=OPENSSL CFLAGS='-DBSON_MEMCHECK' sh .evergreen/compile.sh
        - func: "run auth tests"

    - name: build-and-run-authentication-tests-openssl-0.9.8
      commands:
        - func: "install ssl"
          vars:
            SSL: openssl-0.9.8zh
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "run auth tests"
          vars:
            obsolete_tls: true
        - func: "upload build"

    - name: build-and-run-authentication-tests-openssl-1.0.0
      commands:
        - func: "install ssl"
          vars:
            SSL: openssl-1.0.0t
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "run auth tests"
          vars:
            obsolete_tls: true
        - func: "upload build"

    - name: build-and-run-authentication-tests-openssl-1.0.1
      commands:
        - func: "install ssl"
          vars:
            SSL: openssl-1.0.1u
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              export CFLAGS=-Wno-redundant-decls # OpenSSL 1.0.1 warning
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "run auth tests"
        - func: "upload build"

    - name: build-and-run-authentication-tests-openssl-1.0.1-fips
      commands:
        - func: "install ssl"
          vars:
             SSL: openssl-1.0.1u-fips
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              export CFLAGS=-Wno-redundant-decls # OpenSSL 1.0.1 warning
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL OPENSSL_FIPS=1 sh .evergreen/compile.sh
        - func: "run auth tests"
        - func: "upload build"

    - name: build-and-run-authentication-tests-openssl-1.0.2
      commands:
        - func: "install ssl"
          vars:
            SSL: openssl-1.0.2l
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "run auth tests"
        - func: "upload build"

    - name: build-and-run-authentication-tests-openssl-1.1.0
      commands:
        - func: "install ssl"
          vars:
            SSL: openssl-1.1.0f
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=OPENSSL sh .evergreen/compile.sh
        - func: "run auth tests"
        - func: "upload build"

    - name: build-and-run-authentication-tests-libressl-2.5
      commands:
        - func: "install ssl"
          vars:
             SSL: libressl-2.5.2
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o xtrace
              DEBUG=ON CC='${CC}' MARCH='${MARCH}' SASL=OFF SSL=LIBRESSL sh .evergreen/compile.sh
        - func: "run auth tests"
          vars:
            require_tls12: true
        - func: "upload build"


    - name: compile-libmongocapi
      commands:
        - command: shell.exec
          type: test
          params:
            working_dir: "mongoc"
            script: |
              set -o errexit
              set -o verbose
              . ./.evergreen/find-cmake.sh
              ${setup_android_toolchain|}
              export ${libmongocapi_compile_env|}
              mkdir cmake-build-libmongocapi
              $CMAKE \
                -DCMAKE_INSTALL_PREFIX=cmake-build-libmongocapi \
                -DENABLE_SNAPPY=OFF \
                -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF \
                -DENABLE_ZLIB=OFF -DENABLE_SSL=OFF \
                -DENABLE_SASL=OFF \
                -DENABLE_TESTS=OFF \
                -DENABLE_SRV=OFF \
                -DENABLE_EXAMPLES=OFF \
                -DENABLE_STATIC=OFF \
                -DENABLE_SHM_COUNTERS=OFF \
                ${libmongocapi_cmake_flags}
              make install VERBOSE=1


    - name: test-latest-server-ipv6-client-ipv6-noauth-nosasl-nossl
      tags: ["nossl", "nosasl", "noauth", "server", "latest", "ipv4-ipv6", "latest"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "off"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: "mongodb://[::1]/"

    - name: test-latest-server-ipv6-client-ipv4-noauth-nosasl-nossl
      tags: ["nossl", "nosasl", "noauth", "server", "latest", "ipv4-ipv6", "latest"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "off"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            URI: "mongodb://127.0.0.1/"

    - name: test-latest-server-ipv4-client-localhost-noauth-nosasl-nossl
      tags: ["nossl", "nosasl", "noauth", "server", "latest", "ipv4-ipv6", "latest"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "on"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "on"
            URI: "mongodb://localhost/"

    - name: test-latest-server-ipv4-client-ipv4-noauth-nosasl-nossl
      tags: ["nossl", "nosasl", "noauth", "server", "latest", "ipv4-ipv6", "latest"]
      depends_on:
        - name: "debug-compile-nosasl-nossl"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-nosasl-nossl"
        - func: "bootstrap mongo-orchestration"
          vars:
            VERSION: "latest"
            TOPOLOGY: "server"
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "on"
        - func: "run tests"
          vars:
            AUTH: "noauth"
            SSL: "nossl"
            IPV4_ONLY: "on"
            URI: "mongodb://127.0.0.1/"


    - name: test-asan-memcheck-mock-server
      tags: ["test-asan"]
      depends_on:
        - name: "debug-compile-asan-clang-memcheck"
      commands:
        - func: "fetch build"
          vars:
            BUILD_NAME: "debug-compile-asan-clang-memcheck"
        - func: "run mock server tests"
          vars:
            ASAN: "on"
            AUTH: "noauth"
            SSL: "ssl"
            URI: ""

# }}}

buildvariants:

- name: releng
  display_name: "**Release Archive Creator"
  run_on:
    - ubuntu1604-test
  tasks:
    - name: "make-release-archive"
    - "release-compile"
    - "debug-compile"
    - ".debug-compile .stdflags"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - "debug-compile-valgrind"
    - "debug-compile-no-counters"
    - "compile-tracing"
    - "debian-package-build"
    - name: "link-with-cmake"
    - name: "abi-compliance-check"
    - name: "link-with-cmake-ssl"
    - name: "link-with-cmake-snappy"
    - name: "link-with-cmake-mac"
      distros:
      - macos-1012
    - name: "link-with-cmake-windows"
      distros:
      - windows-64-vs2015-compile
    - name: "link-with-cmake-windows-ssl"
      distros:
      - windows-64-vs2015-compile
    - name: "link-with-cmake-windows-snappy"
      distros:
      - windows-64-vs2015-compile
    - name: "link-with-cmake-mingw"
      distros:
      - windows-64-vs2013-compile
    - name: "link-with-pkg-config"
      distros:
      - ubuntu1604-test
    - name: "link-with-pkg-config-mac"
      distros:
      - macos-1012
    - name: "link-with-pkg-config-ssl"
    - name: "link-with-bson"
    - name: "link-with-bson-windows"
      distros:
      - windows-64-vs2015-compile
    - name: "link-with-bson-mac"
      distros:
      - macos-1012
    - name: "link-with-bson-mingw"
      distros:
      - windows-64-vs2013-compile
    - "check-public-headers"
    - name: "install-uninstall-check"
    - name: "install-uninstall-check-mingw"
      distros:
      - windows-64-vs2015-compile
    - name: "install-uninstall-check-msvc"
      distros:
      - windows-64-vs2015-compile

- name: clang34ubuntu
  display_name: "clang 3.4 (Ubuntu 14.04)"
  expansions:
    CC: "clang"
  run_on:
    - ubuntu1404-build
  tasks:
    - "debug-compile-scan-build"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-rdtscp"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".4.0 .openssl !.nosasl .server"
    - ".3.6 .openssl !.nosasl .server"
    - ".3.4 .openssl !.nosasl .server"
    - ".3.2 .openssl !.nosasl .server"
    - ".3.0 .openssl !.nosasl !.auth"

- name: clang35
  display_name: "clang 3.5 (Debian 8.1)"
  expansions:
    CC: "clang"
  run_on:
  - debian81-test
  tasks:
    - "release-compile"
    - "debug-compile"
    - ".debug-compile .stdflags !.c89"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
      # Debian 8.1 only supports MongoDB 3.4+

- name: openssl
  display_name: "OpenSSL / LibreSSL"
  run_on:
    - archlinux-build
  tasks:
    - "build-and-run-authentication-tests-openssl-0.9.8"
    - "build-and-run-authentication-tests-openssl-1.0.0"
    - "build-and-run-authentication-tests-openssl-1.0.1"
    - "build-and-run-authentication-tests-openssl-1.0.2"
    - "build-and-run-authentication-tests-openssl-1.1.0"
    - "build-and-run-authentication-tests-openssl-1.0.1-fips"
    - "build-and-run-authentication-tests-libressl-2.5"

- name: clang37
  display_name: "clang 3.7 (Archlinux)"
  expansions:
    CC: "clang"
  run_on:
    - archlinux-test
  tasks:
    - "release-compile"
    - "debug-compile"
    - ".debug-compile .stdflags !.c89"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .nossl"
    - ".4.0 .nossl"
    - ".3.6 .nossl"
    - ".3.4 .nossl"
    - ".3.2 .nossl" # No enterprise build for Archlinux, SSL not available
    - ".3.0 .nossl .nosasl !.auth"

- name: clang38-i386
  display_name: "clang 3.8 (i386) (Ubuntu 16.04)"
  expansions:
    CC: "clang"
    MARCH: "i386"
  run_on:
    - ubuntu1604-test
  tasks:
    - "debug-compile-scan-build"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile .stdflags !.c89"
    - ".debug-compile !.sspi .nossl .nosasl"
    - ".latest .nossl .nosasl"
    - ".4.0 .nossl .nosasl"
    - ".3.6 .nossl .nosasl"
      # We don't have i386 builds of OpenSSL or Cyrus SASL installed
      # Ubuntu16.04 only supports MongoDB 3.4+

- name: clang38
  display_name: "clang 3.8 (Ubuntu 16.04)"
  expansions:
    CC: "clang"
  run_on:
    - ubuntu1604-test
  tasks:
    - ".compression"
    - "debug-compile-scan-build"
    - "debug-compile-sanitizer-address-clang"
    - "debug-compile-sanitizer-undefined"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile .stdflags !.c89"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
    - ".3.6 .openssl !.nosasl .server"
      # Ubuntu16.04 only supports MongoDB 3.4+

## GCC
- name: gcc46
  display_name: "GCC 4.6 (Ubuntu 12.04)"
  expansions:
    CC: "gcc"
  run_on:
    - ubuntu1204-test
  tasks:
    - "release-compile"
    - "debug-compile"
    - "debug-compile-rdtscp"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    # TODO: test MongoDB 4
    - ".3.6 .openssl !.nosasl .server"
    - ".3.4 .openssl !.nosasl .server"
    - ".3.2 .openssl !.nosasl .server"
    - ".3.0 .openssl !.nosasl !.auth"

- name: gcc48ubuntu
  display_name: "GCC 4.8 (Ubuntu 14.04)"
  expansions:
    CC: "gcc"
  run_on:
    - ubuntu1404-build
  tasks:
    - "release-compile"
    - "debug-compile"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".latest .nossl !.ipv4-ipv6"
    - ".4.0 .openssl !.nosasl .server"
    - ".3.6 .openssl !.nosasl .server"
    - ".3.4 .openssl !.nosasl .server"
    - ".3.2 .openssl !.nosasl .server"
    - ".3.0 .openssl !.nosasl !.auth"
    - ".latest .openssl .nosasl .replica_set"
    - ".latest .openssl !.nosasl .replica_set"

- name: gcc48rhel
  display_name: "GCC 4.8 (RHEL 7.0)"
  expansions:
    CC: "gcc"
  run_on:
    - rhel70
  tasks:
    - ".hardened"
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
    - ".3.6 .openssl !.nosasl .server"
    - ".3.4 .openssl !.nosasl .server"
    - ".3.2 .openssl !.nosasl .server"
    - ".3.0 .openssl !.nosasl !.auth"

- name: gcc49
  display_name: "GCC 4.9 (Debian 8.1)"
  expansions:
    CC: "gcc"
  run_on:
  - debian81-test
  tasks:
    - "release-compile"
    - "debug-compile"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
      # Debian 8.1 only supports MongoDB 3.4+

- name: gcc54-i386
  display_name: "GCC 5.4 (i386) (Ubuntu 16.04)"
  expansions:
    CC: "gcc"
    MARCH: "i386"
  run_on:
  - ubuntu1604-test
  tasks:
    - "debug-compile-coverage"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile !.sspi .nossl .nosasl"
    - ".latest .nossl .nosasl"
    - ".4.0 .nossl .nosasl"
      # We don't have i386 builds of OpenSSL or Cyrus SASL installed
      # Ubuntu16.04 only supports MongoDB 3.4+

- name: gcc54
  display_name: "GCC 5.4 (Ubuntu 16.04)"
  expansions:
    CC: "gcc"
  run_on:
  - ubuntu1604-test
  tasks:
    - ".compression"
    - "debug-compile-sanitizer-address-gcc"
    - "debug-compile-coverage"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - "retry-true-3.4-replica-set"
    - "retry-true-latest-server"
    # Ubuntu16.04 only supports MongoDB 3.4+
    - ".4.0 .openssl !.nosasl .server"
    - "test-dns-openssl"
    - "test-dns-auth-openssl"

- name: darwin
  display_name: "*Darwin, macOS (Apple LLVM)"
  expansions:
    CC: "clang"
  run_on:
    - macos-1012
  tasks:
    - ".compression !.snappy"
    - "debug-compile-coverage"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-rdtscp"
    - "debug-compile-no-align"
    - ".debug-compile .darwinssl"
    - ".debug-compile !.sspi .nossl"
    - ".debug-compile .clang"
    - ".authentication-tests .darwinssl"
    - ".latest .darwinssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .darwinssl !.nosasl .server"
    - ".3.6 .darwinssl !.nosasl .server"
    - ".3.4 .darwinssl !.nosasl .server"
    - ".3.2 .darwinssl !.nosasl .server"
    - ".3.2 .nossl"
    - "test-dns-darwinssl"
    - "test-dns-auth-darwinssl"
    - "debug-compile-lto"
    - "debug-compile-lto-thin"

- name: windows-2015
  display_name: "Windows (VS 2015)"
  expansions:
    CC: "Visual Studio 14 2015 Win64"
  run_on:
    - windows-64-vs2015-compile
  tasks:
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile .winssl"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".debug-compile .sspi"
    - ".authentication-tests .openssl !.sasl"
    - ".authentication-tests .winssl"
    - ".latest .winssl !.nosasl .server"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .winssl !.nosasl .server"
    - ".3.6 .winssl !.nosasl .server"
    - ".3.4 .winssl !.nosasl .server"
    - ".3.2 .winssl !.nosasl .server"
    - ".3.0 .nossl"
    - "test-dns-winssl"
    - "test-dns-auth-winssl"

- name: windows-2015-32
  display_name: "Windows (i386) (VS 2015)"
  expansions:
    CC: "Visual Studio 14 2015"
  run_on:
    - windows-64-vs2015-compile
  tasks:
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
      # No 32bit OpenSSL builds
    - ".debug-compile .sspi !.openssl"
    - ".debug-compile .winssl .nosasl"
    - ".debug-compile !.sspi .nossl .nosasl"
    - ".authentication-tests .winssl"
    - ".latest .winssl .nosasl .server"
    - ".latest .nossl .nosasl"
    - ".latest .sspi"
    - ".4.0 .winssl .nosasl .server"

- name: windows-2013
  display_name: "Windows (VS 2013)"
  expansions:
    CC: "Visual Studio 12 2013 Win64"
  run_on:
    - windows-64-vs2013-compile
  tasks:
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - ".debug-compile .winssl"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".debug-compile .sspi"
    - ".authentication-tests .openssl !.sasl"
    - ".authentication-tests .winssl"
    - ".latest .winssl !.nosasl .server"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".latest .sspi"
    - ".4.0 .winssl !.nosasl .server"

- name: windows-2013-32
  display_name: "Windows (i386) (VS 2013)"
  expansions:
    CC: "Visual Studio 12 2013"
  run_on:
    - windows-64-vs2013-compile
  tasks:
    - "release-compile"
    - "debug-compile"
    - "debug-compile-rdtscp"
    - ".debug-compile .sspi !.openssl"
    - ".debug-compile .winssl .nosasl"
    - ".debug-compile !.sspi .nossl .nosasl"
    - ".authentication-tests .winssl"
    - ".latest .winssl .nosasl .server"
    - ".latest .nossl .nosasl"
    - ".latest .sspi"
    - ".4.0 .winssl .nosasl .server"

- name: windows-2010
  display_name: "Windows (VS 2010)"
  expansions:
    CC: "Visual Studio 10 2010 Win64"
  run_on:
    - windows-64-vs2010-compile
  tasks:
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-rdtscp"
    - ".debug-compile .winssl"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".debug-compile .sspi"
    - ".authentication-tests .openssl !.sasl"
    - ".authentication-tests .winssl"
    - ".latest .winssl !.nosasl .server"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".latest .sspi"
    - ".4.0 .winssl !.nosasl .server"

- name: windows-2010-32
  display_name: "Windows (i386) (VS 2010)"
  expansions:
    CC: "Visual Studio 10 2010"
  run_on:
    - windows-64-vs2010-compile
  tasks:
    - "release-compile"
    - "debug-compile"
    - ".debug-compile .winssl .sspi"
    - ".debug-compile .winssl .nosasl"
    - ".debug-compile !.sspi .nossl .nosasl"
    - ".debug-compile .nossl .sspi"
    - ".authentication-tests .winssl"
    - ".latest .winssl .nosasl .server"
    - ".latest .nossl .nosasl"
    - ".latest .sspi"
    - ".4.0 .winssl .nosasl .server"

- name: mingw
  display_name: "MinGW-W64"
  expansions:
    CC: "mingw"
  run_on:
  - windows-64-vs2013-compile
  tasks:
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile .nossl .nosasl"
    - ".debug-compile .winssl .sspi"
    - ".latest .nossl .nosasl .server"
    - ".latest .winssl .sspi .server"

- name: power8-rhel71
  display_name: "*Power8 (ppc64le) (RHEL 7.1)"
  expansions:
    CC: "gcc"
  batchtime: 1440 # 1 day
  run_on:
  - rhel71-power8-build
  tasks:
    - ".compression !.snappy"
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    # CDRIVER-2000 Kerberos doesn't work on PowerPC.
    - ".authentication-tests .openssl !.sasl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
      # RHEL 7.1 ppc64le is only supported by MongoDB 3.2+

- name: power8-ubuntu1604
  display_name: "Power8 (ppc64le) (Ubuntu 16.04)"
  expansions:
    CC: "gcc"
  batchtime: 1440 # 1 day
  run_on:
  - ubuntu1604-power8-test
  tasks:
    - "debug-compile-scan-build"
    - "debug-compile-coverage"
    - "release-compile"
    - "debug-compile"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
      # Ubuntu16.04 ppc64le is only supported by MongoDB 3.4+
    - "test-dns-openssl"

- name: arm-ubuntu1604
  display_name: "*ARM (aarch64) (Ubuntu 16.04)"
  expansions:
    CC: "gcc"
  batchtime: 1440 # 1 day
  run_on:
  - ubuntu1604-arm64-large
  tasks:
    - ".compression !.snappy"
    - "debug-compile-scan-build"
    - "debug-compile-coverage"
    - "debug-compile-no-align"
    - "release-compile"
    - "debug-compile"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"
      # Ubuntu16.04 aarch64 is only supported by MongoDB 3.4+
    - "test-dns-openssl"

- name: zseries-rhel72
  display_name: "*zSeries"
  expansions:
    CC: "gcc"
  batchtime: 1440 # 1 day
  run_on:
  - rhel72-zseries-test
  tasks:
    - "release-compile"
    - "debug-compile"
    - "debug-compile-no-align"
    - ".debug-compile !.sspi .openssl"
    - ".debug-compile !.sspi .nossl"
    - ".authentication-tests .openssl"
    - ".latest .openssl !.nosasl .server"
    - ".latest .nossl"
    - ".4.0 .openssl !.nosasl .server"

- name: valgrind-ubuntu
  display_name: "Valgrind Tests (Ubuntu 14.04)"
  expansions:
    CC: "gcc"
  batchtime: 10080 # 7 days
  run_on:
    - ubuntu1404-build
  tasks:
    - ".debug-compile !.sspi .openssl !.sasl"
    - ".debug-compile !.sspi .nossl !.sasl"
    - ".debug-compile .special .valgrind .bson"
    - ".test-valgrind"

- name: asan-ubuntu
  display_name: "ASAN Tests (Ubuntu 14.04)"
  expansions:
    CC: "clang"
  batchtime: 1440 # 1 day
  run_on:
    - ubuntu1404-test
  tasks:
    - ".debug-compile .asan"
    - ".test-asan"

- name: code-coverage-ubuntu
  display_name: "Code Coverage Tests"
  expansions:
    CC: "gcc"
  batchtime: 1440 # 1 day
  run_on:
    - ubuntu1404-build
  tasks:
    - ".test-coverage"

- name: ios-102-debug
  display_name: "iOS 10.2 DEBUG"
  run_on:
    - macos-1012
  batchtime: 1440 # 1 day
  expansions:
    libmongocapi_cmake_flags: >-
      -DCMAKE_SYSTEM_NAME=Darwin
      -DCMAKE_FIND_ROOT_PATH="$(xcrun --sdk iphoneos --show-sdk-path)"
      -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
      -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
      -DCMAKE_C_FLAGS="-arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=10.2"
      -DCMAKE_INSTALL_NAME_DIR=@rpath
    libmongocapi_compile_env: DEVELOPER_DIR=/Applications/Xcode9.2.app
  tasks:
    - name: compile-libmongocapi

- name: ios-sim-102-debug
  display_name: "iOS Simulator 10.2 DEBUG"
  run_on:
  - macos-1012
  batchtime: 1440 # 1 day
  expansions:
    libmongocapi_cmake_flags: >-
      -DCMAKE_SYSTEM_NAME=Darwin
      -DCMAKE_FIND_ROOT_PATH="$(xcrun --sdk iphonesimulator --show-sdk-path)"
      -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
      -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
      -DCMAKE_C_FLAGS="-arch x86_64 -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -miphoneos-version-min=10.2"
      -DCMAKE_INSTALL_NAME_DIR=@rpath
    libmongocapi_compile_env: DEVELOPER_DIR=/Applications/Xcode9.2.app
  tasks:
  - name: compile-libmongocapi

- name: android-debug-arm64
  display_name: "Android arm64 (Ubuntu 16.04)"
  run_on:
  - ubuntu1604-build
  batchtime: 1440 # 1 day
  expansions:
    libmongocapi_cmake_flags: >-
      -DANDROID_NATIVE_API_LEVEL=21
      -DANDROID_ABI=arm64-v8a
      -DTHREADS_PTHREAD_ARG=2
      -DCMAKE_TOOLCHAIN_FILE=./android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake
      -DCMAKE_FIND_ROOT_PATH="./android_toolchain"
      -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
      -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
      -DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib
    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
    setup_android_toolchain: |
      JAVA_HOME=/opt/java/jdk8/ ./.evergreen/setup-android-toolchain.sh arm64-v8a arm64
  tasks:
  - name: compile-libmongocapi

- name: android-debug-x86
  display_name: "Android x86_64 (Ubuntu 16.04)"
  run_on:
  - ubuntu1604-build
  batchtime: 1440 # 1 day
  expansions:
    libmongocapi_cmake_flags: >-
      -DANDROID_NATIVE_API_LEVEL=21
      -DANDROID_ABI=x86_64
      -DTHREADS_PTHREAD_ARG=2
      -DCMAKE_TOOLCHAIN_FILE=./android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake
      -DCMAKE_FIND_ROOT_PATH=./android_toolchain
      -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
      -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
      -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
      -DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib
    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
    setup_android_toolchain: |
      JAVA_HOME=/opt/java/jdk8/ ./.evergreen/setup-android-toolchain.sh x86_64 x86_64
  tasks:
  - name: compile-libmongocapi
