Skip to content

Enable Address Sanitizer in specified CI tests #2951

Enable Address Sanitizer in specified CI tests

Enable Address Sanitizer in specified CI tests #2951

Workflow file for this run

name: CI MacOS
on:
push:
branches:
- 'master'
pull_request:
types: [opened, synchronize, reopened]
env:
CI_ARGS: -w 2 --shuffle --stdout-buf 1
CI_MODE: --ci-mode
# Setting CI_RUNNER to empty should disable cirunner
CI_RUNNER: python ${{ github.workspace }}/cirunner/cirunner.py -t 3600 -o ${{ github.workspace }}/artifacts --
MAKE_FAST: make -j 2
jobs:
default-build:
# checking pure lib source distribution with plain configure & make
runs-on: macos-latest
name: Default / build only
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: config site
run: echo -e "#define PJ_TODO(x)\n" > pjlib/include/pj/config_site.h
- name: configure
run: ./configure
- name: make
run: $MAKE_FAST
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
default-pjlib-util-pjmedia-pjnath:
# full bundle: enable all codecs + AEC + DTLS
runs-on: macos-latest
name: Default / pjmedia,pjnath
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb)" CXXFLAGS="-g -fPIC" ./configure --enable-libwebrtc-aec3
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjmedia-test
run: make pjmedia-test
- name: pjnath-test
run: make pjnath-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
default-pjsua-test:
runs-on: macos-latest
name: Default / pjsua-test
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl opencore-amr swig sipp
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb)" CXXFLAGS="-g -fPIC" ./configure
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: pjsua-test
run: make pjsua-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
default-pjsip-test:
runs-on: macos-latest
name: Default / pjlib,util,pjsip-test
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb)" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb)" ./configure
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjlib-test
run: make pjlib-test
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjsip-test
run: make pjsip-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
openssl-1:
runs-on: macos-latest
name: OpenSSL / pjlib,util,pjnath,pjmedia
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl swig
- name: configure
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl)" CXXFLAGS="-fPIC" ./configure
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: make
run: $MAKE_FAST
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: get SSL info
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep SSL
- name: verify openssl is used
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep -E 'PJ_SSL_SOCK_IMP\s+:\s+1'
- name: pjlib-test
run: make pjlib-test
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjmedia-test
run: make pjmedia-test
- name: pjnath-test
run: make pjnath-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
openssl-2:
runs-on: macos-latest
name: OpenSSL / pjsip
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl
- name: configure
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl)" CXXFLAGS="-fPIC" ./configure
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: get SSL info
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep SSL
- name: verify openssl is used
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep -E 'PJ_SSL_SOCK_IMP\s+:\s+1'
- name: pjsip-test
run: make pjsip-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
gnu-tls-1:
runs-on: macos-latest
name: GnuTLS / pjlib,util,pjmedia,pjnath
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install gnutls swig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=`brew --prefix gnutls`
- name: make
run: $MAKE_FAST
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: get SSL info
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep SSL
- name: verify gnu tls is used
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep -E 'PJ_SSL_SOCK_IMP\s+:\s+2'
- name: pjlib-test
run: make pjlib-test
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjmedia-test
run: make pjmedia-test
- name: pjnath-test
run: make pjnath-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
gnu-tls-2:
runs-on: macos-latest
name: GnuTLS / pjsip-test
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install gnutls swig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=`brew --prefix gnutls`
- name: make
run: $MAKE_FAST
- name: get SSL info
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep SSL
- name: verify gnu tls is used
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep -E 'PJ_SSL_SOCK_IMP\s+:\s+2'
- name: pjsip-test
run: make pjsip-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
video-openh264-1:
runs-on: macos-latest
name: Openh264+VPX / pjmedia,pjsua
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl openh264 libvpx opencore-amr swig sipp
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -DHAS_VID_CODEC_TEST=0 -fPIC -fsanitize=address" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb) -fsanitize=address" CXXFLAGS="-g -fPIC -fsanitize=address" ./configure
- name: make
run: $MAKE_FAST
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjmedia-test
run: make pjmedia-test
- name: pjsua-test
run: make pjsua-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
video-openh264-2:
runs-on: macos-latest
name: Openh264+VPX / util,pjnath
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl openh264 libvpx opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fsanitize=address" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb) -fsanitize=address" CXXFLAGS="-fsanitize=address" ./configure
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjnath-test
run: make pjnath-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
video-openh264-3:
runs-on: macos-latest
name: Openh264+VPX / pjlib,pjsip
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl openh264 libvpx opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fsanitize=address" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb) -fsanitize=address" CXXFLAGS="-fsanitize=address" ./configure
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjlib-test
run: make pjlib-test
- name: pjsip-test
run: make pjsip-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
video-ffmpeg:
runs-on: macos-latest
name: FFMPEG+VPX+x264 / pjmedia
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl x264 libvpx nasm swig
- name: get ffmpeg
run: git clone --depth 1 --single-branch --branch release/7.0 https://github.com/FFmpeg/FFmpeg.git
- name: configure ffmpeg
run: cd FFmpeg && LDFLAGS="-Wl,-ld_classic" ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
- name: build ffmpeg
run: cd FFmpeg && $MAKE_FAST && sudo make install
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo -e "#define PJMEDIA_HAS_VIDEO 1\n" >> config_site.h
- name: configure
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl)" CXXFLAGS="-fPIC" ./configure
- name: make
run: $MAKE_FAST
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: pjmedia-test
run: make pjmedia-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
video-vid-toolbox:
runs-on: macos-latest
name: VPX+VidToolbox / pjmedia
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl libvpx swig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" >> config_site.h
- name: configure
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl)" CXXFLAGS="-fPIC" ./configure
- name: make
run: $MAKE_FAST
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: pjmedia-test
run: make pjmedia-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
ioq-cb-no-lock:
runs-on: macos-latest
name: ioq-cb-no-lock / pjlib,pjsua
steps:
- uses: actions/checkout@v2
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installmac.sh
- name: install dependencies
run: brew install openssl opencore-amr sipp
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo -e "#define PJ_IOQUEUE_CALLBACK_NO_LOCK 1\n" >> config_site.h
- name: configure
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L opencore-amrnb)" CXXFLAGS="-g -fPIC" ./configure
- name: make
run: $MAKE_FAST
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: pjlib-test
run: cd pjlib/build && ../bin/pjlib-test-`make -s -C ../.. infotarget` $CI_MODE $CI_ARGS udp_ioqueue_test tcp_ioqueue_test ioqueue_stress_test udp_ioqueue_unreg_test ioqueue_perf_test0 ioqueue_perf_test1 activesock_test ssl_sock_test iocp_unregister_test
- name: pjsip-test
run: cd pjsip/build && ../bin/pjsip-test-`make -s -C ../.. infotarget` $CI_ARGS resolve_test inv_offer_answer_test transport_udp_test transport_tcp_test regc_test tsx_destroy_test
- name: pjsua-test
run: make pjsua-test
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
cmake-build:
runs-on: macos-latest
name: CMake / ${{ matrix.build_type }}
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: brew install openssl
- name: configure
run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
- name: build
run: cmake --build build -j $(sysctl -n hw.ncpu)
- name: check
run: |
file build/pjsip-apps/pjsua
otool -L build/pjsip-apps/pjsua