Enable Address Sanitizer in specified CI tests #2951
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |