Skip to content

Refactor test apps to use unit-test framework #1808

Refactor test apps to use unit-test framework

Refactor test apps to use unit-test framework #1808

Workflow file for this run

name: CI Ubuntu
on:
push:
branches:
- 'master'
pull_request:
types: [opened, synchronize, reopened]
env:
CI_ARGS: ${{ vars.CI_UBUNTU_ARGS }}
CI_MODE: ${{ vars.CI_MODE }}
MAKE_FAST: make -j 3
jobs:
default-build:
# checking pure lib source distribution with plain configure & make
runs-on: ubuntu-latest
name: Default / build only
steps:
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: $MAKE_FAST
- name: get SSL info
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | grep SSL
- name: verify oepnssl is used
run: pjlib/bin/pjlib-test-`make infotarget` --config --list | egrep 'PJ_SSL_SOCK_IMP\s+:\s+1'
default-full-bundle-1:
# full bundle: enable all codecs + AEC + DTLS
runs-on: ubuntu-latest
name: Default / pjmedia,pjsua
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig sip-tester libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 3.10 for pjsua test
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: capture pjsua capabilities
run: |
cat << EOF | pjsip-apps/bin/pjsua-`make infotarget` --log-level 3 > pjsua-caps
Cp
xx
vid dev list
vid codec list
q
EOF
cat pjsua-caps
- name: ensure AMR codec is installed
run: cat pjsua-caps | egrep 'AMR/8000'
- name: pjmedia-test
run: make pjmedia-test
- name: pjsua-test
run: make pjsua-test
default-full-bundle-2:
runs-on: ubuntu-latest
name: Default / pjlib,util,pjnath
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: pjlib-test
run: make pjlib-test
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjnath-test
run: make pjnath-test
default-full-bundle-3:
runs-on: ubuntu-latest
name: Default / pjsip
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: pjsip-test
run: make pjsip-test
no-tls:
runs-on: ubuntu-latest
name: No SSL / pjlib,pjsip
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --disable-ssl
- name: make
run: $MAKE_FAST
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: pjlib-test
run: make pjlib-test
- name: pjsip-test
run: make pjsip-test
# build-ubuntu-openssl
# TLS: with OpenSSL (same as build-ubuntu-default)
gnu-tls:
runs-on: ubuntu-latest
name: GnuTLS / pjlib,pjnath,pjsip
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get update && sudo apt-get install -y --fix-missing swig libgnutls28-dev
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/
- name: make
run: $MAKE_FAST
- 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 | egrep 'PJ_SSL_SOCK_IMP\s+:\s+2'
- name: pjlib-test
run: make pjlib-test
- name: pjnath-test
run: make pjnath-test
- name: pjsip-test
run: make pjsip-test
vid-openh264-1:
runs-on: ubuntu-latest
name: OpenH264+VPX / pjmedia,pjsua
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig nasm sip-tester libvpx-dev libopencore-amrnb-dev libsdl2-dev
- name: get openh264
run: git clone --depth 1 --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && $MAKE_FAST && sudo make install && sudo ldconfig
- 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 -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 3.10 for pjsua test
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: capture pjsua capabilities
run: |
cat << EOF | pjsip-apps/bin/pjsua-`make infotarget` --log-level 3 > pjsua-caps
Cp
xx
vid dev list
vid codec list
q
EOF
cat pjsua-caps
- name: ensure AMR codec is installed
run: cat pjsua-caps | egrep 'AMR/8000'
- name: ensure H264 codec is installed
run: cat pjsua-caps | egrep 'H264/'
- name: ensure VP8 codec is installed
run: cat pjsua-caps | egrep 'VP8/'
# SDL error: no avilable vid dev
#- name: ensure SDL is installed
# run: cat pjsua-caps | egrep '\[SDL\]\[render\]'
- name: pjmedia-test
run: make pjmedia-test
- name: pjsua-test
run: make pjsua-test
vid-openh264-2:
runs-on: ubuntu-latest
name: OpenH264+VPX / pjlib,util,pjnath
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev libsdl2-dev
- name: get openh264
run: git clone --depth 1 --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && $MAKE_FAST && sudo make install && sudo ldconfig
- 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" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: pjlib-test
run: make pjlib-test
- name: pjlib-util-test
run: make pjlib-util-test
- name: pjnath-test
run: make pjnath-test
vid-openh264-3:
runs-on: ubuntu-latest
name: OpenH264+VPX / pjsip
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev libsdl2-dev
- name: get openh264
run: git clone --depth 1 --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && $MAKE_FAST && sudo make install && sudo ldconfig
- 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" LDFLAGS="-rdynamic" ./configure
- name: make
run: $MAKE_FAST
- name: pjsip-test
run: make pjsip-test
vid-ffmpeg:
runs-on: ubuntu-latest
name: FFMPEG+x264 / pjmedia
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig nasm libx264-dev libvpx-dev libsdl2-dev
- name: get ffmpeg
run: git clone --depth 1 --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
- name: configure ffmpeg
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
- name: build ffmpeg
run: cd FFmpeg && $MAKE_FAST && sudo make install
- name: config site
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure
- name: make
run: $MAKE_FAST
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: capture pjsua capabilities
run: |
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
cat << EOF | pjsip-apps/bin/pjsua-`make infotarget` --log-level 3 > pjsua-caps
Cp
xx
vid dev list
vid codec list
q
EOF
cat pjsua-caps
- name: ensure H264 codec is installed
run: cat pjsua-caps | egrep 'H264/'
- name: ensure VP8 codec is installed
run: cat pjsua-caps | egrep 'VP8/'
# SDL error: no avilable vid dev
#- name: ensure SDL is installed
# run: cat pjsua-caps | egrep '\[SDL\]\[render\]'
- name: pjmedia-test
run: export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH && make pjmedia-test