<commit_before>#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License
#

language: c
cache: ccache
os: linux
dist: xenial
jobs:
  fast_finish: true
  allow_failures:
    - os: osx
    - arch: arm64
    - arch: s390x
  include:
  - name: "apache-rat:check"
    os: linux
    env: []
    language: java
    addons:
      apt:
        packages: []
    install: []
    before_script: []
    script:
    - mvn apache-rat:check
    before_cache:
    - rm -rf $HOME/.m2/repository/org/apache/qpid/*
    cache:
      directories:
      - $HOME/.m2/repository
    after_script:
    - cat target/rat.txt || true
  # prepending /usr/bin to PATH to avoid mismatched python interpreters in /opt
  - name: "qdrouterd:Debug (gcc on xenial)"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=main BUILD_TYPE=Debug
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan'
  - name: "qdrouterd:Coverage"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=Coverage
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (gcc on xenial)"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on focal)"
    os: linux
    dist: focal
    before_install:
    - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key 2>/dev/null | sudo apt-key add -
    - sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main' -y
    - sudo apt-get update -q
    - sudo apt-get install -y clang-13 llvm-13-dev
    # Update pip, it may prevent issues later
    - sudo apt-get install -y python3-pip
    - python3 -m pip install --user --upgrade pip
    - python3 -m pip install --user tox virtualenv
    # Install quart, h2 to run the http2 tests.
    - python3 -m pip install --user quart h2
    # DISPATCH-1883: Install selectors to run tcp echo server/client tools
    - python3 -m pip install --user selectors
    # Install grpcio and protobuf to run the grpc tests.
    - python3 -m pip install --user grpcio protobuf
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - QPID_SYSTEM_TEST_SKIP_HTTP2_LARGE_IMAGE_UPLOAD_TEST=True
    - CC=clang-13
    - CXX=clang++-13
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (gcc on focal)"
    arch: s390x
    os: linux
    dist: focal
    before_install:
      # Install and use the latest Node.js LTS version
      - nvm install "lts/*"
      # Update pip, it may prevent issues later
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      #  Installation on s390x currently broken https://github.com/grpc/grpc/pull/25363
      #  Binary wheel is not available in PyPI for s390x and source install requires fetching git submodules first
      - python3 -m pip install --user protobuf
      - sudo apt install python3-grpcio
    env:
      - QPID_SYSTEM_TEST_TIMEOUT=300
      - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
      - PROTON_VERSION=main BUILD_TYPE=RelWithDebInfo
      - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on focal) on arm64"
    arch: arm64
    os: linux
    dist: focal
    compiler: clang
    before_install:
      - sudo apt-get install clang-12 llvm-12-dev
      # Install and use the latest Node.js LTS version
      - nvm install "lts/*"
      # Update pip, it may prevent issues later
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      - python3 -m pip install --user grpcio protobuf
    env:
      - QPID_SYSTEM_TEST_TIMEOUT=300
      - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
      - CC=clang-12
      - CXX=clang++-12
      - PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
      - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
  - name: "qdrouterd:Default Build"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0
  - name: "qdrouterd:TSAN"
    os: linux
    dist: focal
    before_install:
      # Update pip, it may prevent issues later
      - sudo apt-get install -y python3-pip
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      - python3 -m pip install --user grpcio protobuf
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - QPID_SYSTEM_TEST_SKIP_HTTP2_LARGE_IMAGE_UPLOAD_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=tsan'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on macOS)"
    os: osx
    osx_image: xcode11
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH" PROTON_VERSION=main
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
    # exclude tests that require raw_connection functionality; not available in libuv proactor
    - DISPATCH_CTEST_EXTRA='-E system_tests_tcp_adaptor|system_tests_http1_adaptor|system_tests_http2|system_tests_grpc|system_tests_http1_over_tcp'
    before_install:
    - bash ./macports.sh
    - export COLUMNS=80
    - yes | sudo port install cmake swig swig-python libuv jsoncpp libwebsockets nghttp2 cyrus-sasl2 pkgconfig python37 py37-pip
    # set aliases for CMake's PythonInterp and PythonLibs to find MacPort's `python` on the path first
    - sudo port select --set python python37
    - sudo port select --set python3 python37
    - python3 -m venv p3venv
    - source p3venv/bin/activate

addons:
  apt:<commit_msg>NO-JIRA Update gcc to gcc-11 for TSAN Travis job<commit_after>#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License
#

language: c
cache: ccache
os: linux
dist: xenial
jobs:
  fast_finish: true
  allow_failures:
    - os: osx
    - arch: arm64
    - arch: s390x
  include:
  - name: "apache-rat:check"
    os: linux
    env: []
    language: java
    addons:
      apt:
        packages: []
    install: []
    before_script: []
    script:
    - mvn apache-rat:check
    before_cache:
    - rm -rf $HOME/.m2/repository/org/apache/qpid/*
    cache:
      directories:
      - $HOME/.m2/repository
    after_script:
    - cat target/rat.txt || true
  # prepending /usr/bin to PATH to avoid mismatched python interpreters in /opt
  - name: "qdrouterd:Debug (gcc on xenial)"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=main BUILD_TYPE=Debug
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan'
  - name: "qdrouterd:Coverage"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=Coverage
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (gcc on xenial)"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on focal)"
    os: linux
    dist: focal
    before_install:
    - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key 2>/dev/null | sudo apt-key add -
    - sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main' -y
    - sudo apt-get update -q
    - sudo apt-get install -y clang-13 llvm-13-dev
    # Update pip, it may prevent issues later
    - sudo apt-get install -y python3-pip
    - python3 -m pip install --user --upgrade pip
    - python3 -m pip install --user tox virtualenv
    # Install quart, h2 to run the http2 tests.
    - python3 -m pip install --user quart h2
    # DISPATCH-1883: Install selectors to run tcp echo server/client tools
    - python3 -m pip install --user selectors
    # Install grpcio and protobuf to run the grpc tests.
    - python3 -m pip install --user grpcio protobuf
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - QPID_SYSTEM_TEST_SKIP_HTTP2_LARGE_IMAGE_UPLOAD_TEST=True
    - CC=clang-13
    - CXX=clang++-13
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (gcc on focal)"
    arch: s390x
    os: linux
    dist: focal
    before_install:
      # Install and use the latest Node.js LTS version
      - nvm install "lts/*"
      # Update pip, it may prevent issues later
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      #  Installation on s390x currently broken https://github.com/grpc/grpc/pull/25363
      #  Binary wheel is not available in PyPI for s390x and source install requires fetching git submodules first
      - python3 -m pip install --user protobuf
      - sudo apt install python3-grpcio
    env:
      - QPID_SYSTEM_TEST_TIMEOUT=300
      - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
      - PROTON_VERSION=main BUILD_TYPE=RelWithDebInfo
      - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on focal) on arm64"
    arch: arm64
    os: linux
    dist: focal
    compiler: clang
    before_install:
      - sudo apt-get install clang-12 llvm-12-dev
      # Install and use the latest Node.js LTS version
      - nvm install "lts/*"
      # Update pip, it may prevent issues later
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      - python3 -m pip install --user grpcio protobuf
    env:
      - QPID_SYSTEM_TEST_TIMEOUT=300
      - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
      - CC=clang-12
      - CXX=clang++-12
      - PROTON_VERSION=0.36.0 BUILD_TYPE=RelWithDebInfo
      - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
  - name: "qdrouterd:Default Build"
    os: linux
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0
  - name: "qdrouterd:TSAN"
    os: linux
    dist: focal
    before_install:
      - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt-get update
      - sudo apt-get install -y g++-11
      # Update pip, it may prevent issues later
      - sudo apt-get install -y python3-pip
      - python3 -m pip install --user --upgrade pip
      - python3 -m pip install --user tox virtualenv
      # Install quart to run the http2 tests.
      - python3 -m pip install --user quart
      # DISPATCH-1883: Install selectors to run tcp echo server/client tools
      - python3 -m pip install --user selectors
      # Install grpcio and protobuf to run the grpc tests.
      - python3 -m pip install --user grpcio protobuf
    env:
    - CC=gcc-11
    - CXX=g++-11
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - QPID_SYSTEM_TEST_SKIP_HTTP2_LARGE_IMAGE_UPLOAD_TEST=True
    - PATH="/usr/bin:$PATH" PROTON_VERSION=0.36.0
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=tsan'
  - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on macOS)"
    os: osx
    osx_image: xcode11
    env:
    - QPID_SYSTEM_TEST_TIMEOUT=300
    - QPID_SYSTEM_TEST_SKIP_FALLBACK_SWITCHOVER_TEST=True
    - PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH" PROTON_VERSION=main
    - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500'
    # exclude tests that require raw_connection functionality; not available in libuv proactor
    - DISPATCH_CTEST_EXTRA='-E system_tests_tcp_adaptor|system_tests_http1_adaptor|system_tests_http2|system_tests_grpc|system_tests_http1_over_tcp'
    before_install:
    - bash ./macports.sh
    - export COLUMNS=80
    - yes | sudo port install cmake swig swig-python libuv jsoncpp libwebsockets nghttp2 cyrus-sasl2 pkgconfig python37 py37-pip
    # set aliases for CMake's PythonInterp and PythonLibs to find MacPort's `python` on the path first
    - sudo port select --set python python37
    - sudo port select --set python3 python37
    - python3 -m venv p3venv
    - source p3venv/bin/activate

addons:
  apt:
{'fraction_non_alphanumeric': 0.08494090268846836, 'fraction_numerical': 0.02204666544185192, 'mean_word_length': 3.0886329494241362, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2034930', 'n_tokens_mistral': 5924, 'n_tokens_neox': 5521, 'n_words': 1493}