TARGET= all-tests export top_srcdir = .. include ../lib/deps.Makefile with_transcoding ?= yes include ../lib/flags.Makefile PRELOAD_CFLAGS := $(CFLAGS) CFLAGS += -I$(top_srcdir)/include/ CFLAGS += $(CFLAGS_GLIB) CFLAGS += $(CFLAGS_GTHREAD) CFLAGS += $(CFLAGS_OPENSSL) CFLAGS += $(CFLAGS_LIBPCRE) CFLAGS += $(CFLAGS_LIBCURL) CFLAGS += $(CFLAGS_JSON_GLIB) CFLAGS += $(CFLAGS_LIBIPTC) ifeq ($(with_transcoding),yes) CFLAGS += $(CFLAGS_LIBAVCODEC) CFLAGS += $(CFLAGS_LIBAVFORMAT) CFLAGS += $(CFLAGS_LIBAVUTIL) CFLAGS += $(CFLAGS_LIBSWRESAMPLE) CFLAGS += $(CFLAGS_LIBAVFILTER) CFLAGS += $(CFLAGS_SPANDSP) CFLAGS += $(CFLAGS_OPUS) CFLAGS += $(CFLAGS_LIBZ) CFLAGS += $(CFLAGS_LIBWEBSOCKETS) CFLAGS += $(CFLAGS_LIBEVENT) CFLAGS += -DWITH_TRANSCODING ifeq ($(RTPENGINE_EXTENDED_TESTS),1) CFLAGS += -DWITH_AMR_TESTS endif CFLAGS += $(CFLAGS_MYSQL) else CFLAGS += -DWITHOUT_CODECLIB endif LDLIBS += $(LDLIBS_GLIB) LDLIBS += $(LDLIBS_GTHREAD) LDLIBS += $(LDLIBS_LIBCRYPTO) LDLIBS += $(LDLIBS_OPENSSL) LDLIBS += $(LDLIBS_LIBPCRE) LDLIBS += $(LDLIBS_LIBCURL) LDLIBS += $(LDLIBS_JSON_GLIB) LDLIBS += $(LDLIBS_LIBIPTC) ifeq ($(with_transcoding),yes) LDLIBS += $(LDLIBS_LIBAVCODEC) LDLIBS += $(LDLIBS_LIBAVFORMAT) LDLIBS += $(LDLIBS_LIBAVUTIL) LDLIBS += $(LDLIBS_LIBSWRESAMPLE) LDLIBS += $(LDLIBS_LIBAVFILTER) LDLIBS += $(LDLIBS_SPANDSP) LDLIBS += $(LDLIBS_OPUS) LDLIBS += $(LDLIBS_LIBZ) LDLIBS += $(LDLIBS_LIBWEBSOCKETS) LDLIBS += $(LDLIBS_LIBPCAP) LDLIBS += $(LDLIBS_LIBEVENT) LDLIBS += $(LDLIBS_LIBHIREDIS) LDLIBS += $(LDLIBS_MYSQL) LDLIBS += $(LDLIBS_BCG729) endif CFLAGS += $(CFLAGS_CODEC_CHAIN) LDLIBS += $(LDLIBS_CODEC_CHAIN) CFLAGS += $(CFLAGS_MQTT) LDLIBS += $(LDLIBS_MQTT) COMMONOBJS := ../lib/str.o ../lib/auxlib.o ../lib/rtplib.o ../lib/loglib.o ../lib/ssllib.o include ../lib/common.Makefile .PHONY: all-tests unit-tests daemon-tests daemon-tests \ daemon-tests-main daemon-tests-jb daemon-tests-dtx daemon-tests-dtx-cn daemon-tests-pubsub \ daemon-tests-intfs daemon-tests-stats daemon-tests-delay-buffer daemon-tests-delay-timing \ daemon-tests-evs daemon-tests-player-cache daemon-tests-redis daemon-tests-redis-json \ daemon-tests-measure-rtp daemon-tests-mos-legacy daemon-tests-mos-fullband daemon-tests-config-file \ daemon-tests-templ-def daemon-tests-templ-def-offer daemon-tests-t38 daemon-tests-evs-dtx \ daemon-tests-transform daemon-tests-http daemon-tests-heuristic daemon-tests-asymmetric \ daemon-tests-dtx-no-shift daemon-tests-rtcp daemon-tests-redis-subscribe daemon-tests-rtp-ext \ daemon-tests-bundle daemon-tests-dtls \ daemon-tests-recording daemon-tests-create TESTS := test-bitstr aes-crypt aead-aes-crypt test-const_str_hash.strhash ifeq ($(with_transcoding),yes) TESTS += test-transcode test-dtmf-detect test-payload-tracker test-resample test-stats test-mix-buffer ifeq ($(RTPENGINE_EXTENDED_TESTS),1) TESTS += test-amr-decode test-amr-encode endif endif TESTS += s3-auth ADD_CLEAN := tests-preload.so time-fudge-preload.so $(TESTS) aead-decrypt ADD_CLEAN += s3-auth ifeq ($(with_transcoding),yes) all-tests: unit-tests daemon-tests else all-tests: unit-tests endif true # override linking recipe from common.Makefile unit-tests: $(TESTS) aead-decrypt kernel-extmap-filter failed="" ; \ for x in $(TESTS); do \ echo `date +"%Y-%m-%d %H:%M:%S"` testing: $$x ; \ G_DEBUG=fatal-warnings ./$$x ; \ if [ $$? -eq 0 ] ; \ then echo `date +"%Y-%m-%d %H:%M:%S"` test $$x: succeeded ; \ else echo `date +"%Y-%m-%d %H:%M:%S"` test $$x: failed ; failed="$$failed $$x" ; \ fi ; \ done ; \ if [ -n "$$failed" ] ; then \ echo "Tests failed: $$failed" ; \ exit 1 ; \ fi daemon-tests: daemon-tests-main daemon-tests-jb daemon-tests-pubsub daemon-tests-websocket \ daemon-tests-evs daemon-tests-async-tc \ daemon-tests-audio-player daemon-tests-audio-player-play-media \ daemon-tests-record-egress-play-media \ daemon-tests-intfs daemon-tests-stats daemon-tests-player-cache daemon-tests-redis \ daemon-tests-rtpp-flags daemon-tests-redis-json daemon-tests-measure-rtp daemon-tests-mos-legacy \ daemon-tests-mos-fullband daemon-tests-config-file \ daemon-tests-templ-def daemon-tests-templ-def-offer \ daemon-tests-sdp-manipulations daemon-tests-sdes-manipulations \ daemon-tests-sdp-orig-replacements daemon-tests-moh daemon-tests-evs-dtx daemon-tests-transform \ daemon-tests-transcode-config daemon-tests-codec-prefs daemon-tests-http daemon-tests-heuristic \ daemon-tests-asymmetric daemon-tests-rtcp daemon-tests-redis-subscribe daemon-tests-rtp-ext \ daemon-tests-bundle daemon-tests-dtls \ daemon-tests-recording daemon-tests-create daemon-test-deps: tests-preload.so $(MAKE) -C ../daemon daemon-tests-main: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests.pl daemon-tests-jb: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-jb.pl daemon-tests-heuristic: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-heuristic.pl daemon-tests-asymmetric: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-asymmetric.pl daemon-tests-dtx: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtx.pl daemon-tests-dtx-no-shift: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtx-no-shift.pl daemon-tests-dtx-cn: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtx-cn.pl daemon-tests-pubsub: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-pubsub.pl daemon-tests-create: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-create.pl daemon-tests-transform: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-transform.pl daemon-tests-transcode-config: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-transcode-config.pl daemon-tests-stats: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-stats.pl daemon-tests-websocket: daemon-test-deps ./auto-test-helper "$@" python3 auto-daemon-tests-websocket.py daemon-tests-intfs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-intfs.pl daemon-tests-delay-buffer: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-delay-buffer.pl daemon-tests-delay-timing: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-delay-timing.pl daemon-tests-evs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-evs.pl daemon-tests-player-cache: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-player-cache.pl daemon-tests-redis: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-redis.pl daemon-tests-redis-subscribe: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-redis-subscribe.pl daemon-tests-redis-json: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-redis-json.pl daemon-tests-audio-player: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-audio-player.pl daemon-tests-audio-player-play-media: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-audio-player-play-media.pl daemon-tests-record-egress-play-media: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-record-egress-play-media.pl daemon-tests-rtpp-flags: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-rtpp-flags.pl daemon-tests-unknown-fmtp: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-unknown-fmtp.pl daemon-tests-sdp-manipulations: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-sdp-manipulations.pl daemon-tests-sdes-manipulations: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-sdes-manipulations.pl daemon-tests-sdp-orig-replacements: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-sdp-orig-replacements.pl daemon-tests-moh: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-moh.pl daemon-tests-async-tc: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-async-tc.pl daemon-tests-measure-rtp: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-measure-rtp.pl daemon-tests-mos-legacy: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-mos-legacy.pl daemon-tests-mos-fullband: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-mos-fullband.pl daemon-tests-config-file: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-config-file.pl daemon-tests-templ-def-offer: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-templ-def-offer.pl daemon-tests-templ-def: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-templ-def.pl daemon-tests-t38: daemon-test-deps spandsp_recv_fax_pcm spandsp_recv_fax_t38 \ spandsp_send_fax_pcm spandsp_send_fax_t38 ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-t38.pl daemon-tests-evs-dtx: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-evs-dtx.pl daemon-tests-codec-prefs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-codec-prefs.pl daemon-tests-http: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-http.pl daemon-tests-rtcp: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-rtcp.pl daemon-tests-rtp-ext: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-rtp-ext.pl daemon-tests-bundle: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-bundle.pl daemon-tests-dtls: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtls.pl daemon-tests-recording: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-recording.pl test-bitstr: test-bitstr.o test-mix-buffer: test-mix-buffer.o \ $(COMMONOBJS) \ ../daemon/crypto.o \ ../daemon/helpers.o \ ../daemon/rtp.o \ ../daemon/ssrc.o \ ../lib/bencode.o \ ../lib/bufferpool.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mix_buffer.o \ ../lib/mix_in_x64_avx2.o \ ../lib/mix_in_x64_avx512bw.o \ ../lib/mix_in_x64_sse2.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/poller.o \ ../lib/resample.o \ ../lib/uring.o \ log.o spandsp_send_fax_pcm: spandsp_send_fax_pcm.o spandsp_recv_fax_pcm: spandsp_recv_fax_pcm.o spandsp_send_fax_t38: spandsp_send_fax_t38.o spandsp_recv_fax_t38: spandsp_recv_fax_t38.o spandsp_raw_fax_tests: spandsp_send_fax_pcm spandsp_recv_fax_pcm spandsp_send_fax_t38 spandsp_recv_fax_t38 test-amr-decode: test-amr-decode.o \ $(COMMONOBJS) \ ../lib/bencode.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/resample.o \ log.o test-amr-encode: test-amr-encode.o \ $(COMMONOBJS) \ ../lib/bencode.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/resample.o \ log.o test-dtmf-detect: test-dtmf-detect.o aes-crypt: aes-crypt.o $(COMMONOBJS) ../daemon/crypto.o ../lib/bencode.o log.o aead-decrypt: aead-decrypt.o $(COMMONOBJS) ../daemon/crypto.o ../daemon/rtp.o ../lib/bencode.o log.o aead-aes-crypt: aead-aes-crypt.o $(COMMONOBJS) ../daemon/crypto.o ../lib/bencode.o log.o test-stats: test-stats.o \ $(COMMONOBJS) \ ../daemon/arena.o \ ../daemon/audio_player.o \ ../daemon/call_flags.strhash.o \ ../daemon/call_interfaces.o \ ../daemon/call.o \ ../daemon/cdr.o \ ../daemon/cli.strhash.o \ ../daemon/codec.o \ ../daemon/control_ng_flags_parser.o \ ../daemon/control_ng.strhash.o \ ../daemon/cookie_cache.o \ ../daemon/crypto.o \ ../daemon/dtls.o \ ../daemon/dtmf.o \ ../daemon/graphite.o \ ../daemon/graphite.o \ ../daemon/helpers.o \ ../daemon/homer.o \ ../daemon/ice.o \ ../daemon/iptables.o \ ../daemon/janus.strhash.o \ ../daemon/jitter_buffer.o \ ../daemon/kernel.o \ ../daemon/load.o \ ../daemon/media_player.o \ ../daemon/media_socket.o \ ../daemon/mqtt.o \ ../daemon/ng_client.o \ ../daemon/recording.o \ ../daemon/redis.o \ ../daemon/rtcp.o \ ../daemon/rtp.o \ ../daemon/sdp.strhash.o \ ../daemon/ssrc.o \ ../daemon/statistics.o \ ../daemon/stun.o \ ../daemon/t38.o \ ../daemon/tcp_listener.o \ ../daemon/timerthread.o \ ../daemon/udp_listener.o \ ../daemon/websocket.o \ ../lib/bencode.o \ ../lib/bufferpool.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mix_buffer.o \ ../lib/mix_in_x64_avx2.o \ ../lib/mix_in_x64_avx512bw.o \ ../lib/mix_in_x64_sse2.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/poller.o \ ../lib/resample.o \ ../lib/socket.o \ ../lib/streambuf.o \ ../lib/uring.o \ log.o test-transcode: test-transcode.o \ $(COMMONOBJS) \ ../daemon/arena.o \ ../daemon/audio_player.o \ ../daemon/call_flags.strhash.o \ ../daemon/call_interfaces.o \ ../daemon/call.o \ ../daemon/cdr.o \ ../daemon/cli.strhash.o \ ../daemon/codec.o \ ../daemon/control_ng_flags_parser.o \ ../daemon/control_ng.strhash.o \ ../daemon/cookie_cache.o \ ../daemon/crypto.o \ ../daemon/dtls.o \ ../daemon/dtmf.o \ ../daemon/graphite.o \ ../daemon/helpers.o \ ../daemon/homer.o \ ../daemon/ice.o \ ../daemon/iptables.o \ ../daemon/janus.strhash.o \ ../daemon/jitter_buffer.o \ ../daemon/kernel.o \ ../daemon/load.o \ ../daemon/media_player.o \ ../daemon/media_socket.o \ ../daemon/mqtt.o \ ../daemon/ng_client.o \ ../daemon/recording.o \ ../daemon/redis.o \ ../daemon/rtcp.o \ ../daemon/rtp.o \ ../daemon/sdp.strhash.o \ ../daemon/ssrc.o \ ../daemon/statistics.o \ ../daemon/stun.o \ ../daemon/t38.o \ ../daemon/tcp_listener.o \ ../daemon/timerthread.o \ ../daemon/udp_listener.o \ ../daemon/websocket.o \ ../lib/bencode.o \ ../lib/bufferpool.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mix_buffer.o \ ../lib/mix_in_x64_avx2.o \ ../lib/mix_in_x64_avx512bw.o \ ../lib/mix_in_x64_sse2.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/poller.o \ ../lib/resample.o \ ../lib/socket.o \ ../lib/streambuf.o \ ../lib/uring.o \ log.o test-resample: test-resample.o \ $(COMMONOBJS) \ ../lib/bencode.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/resample.o \ log.o test-payload-tracker: test-payload-tracker.o \ $(COMMONOBJS) \ ../daemon/crypto.o \ ../daemon/helpers.o \ ../daemon/rtp.o \ ../daemon/ssrc.o \ ../lib/bencode.o \ ../lib/bufferpool.o \ ../lib/codeclib.strhash.o \ ../lib/dtmflib.o \ ../lib/mvr2s_x64_avx2.o \ ../lib/mvr2s_x64_avx512.o \ ../lib/poller.o \ ../lib/resample.o \ ../lib/uring.o \ log.o test-kernel-module: test-kernel-module.o $(COMMONOBJS) ../daemon/kernel.o test-const_str_hash.strhash: test-const_str_hash.strhash.o $(COMMONOBJS) ../lib/bencode.o log.o s3-auth: s3-auth.o ../lib/s3utils.o kernel-extmap-filter: kernel-extmap-filter.o PRELOAD_CFLAGS += -D_GNU_SOURCE -std=c11 PRELOAD_LIBS += -ldl tests-preload.so: tests-preload.c $(CC) $(PRELOAD_CFLAGS) -o $@ -shared -fPIC $< $(PRELOAD_LIBS) time-fudge-preload.so: time-fudge-preload.c $(CC) $(PRELOAD_CFLAGS) -o $@ -shared -fPIC $< $(PRELOAD_LIBS) spandsp_send_fax_pcm.c: ../lib/spandsp_logging.compat spandsp_send_fax_t38.c: ../lib/spandsp_logging.compat spandsp_recv_fax_t38.c: ../lib/spandsp_logging.compat spandsp_recv_fax_pcm.c: ../lib/spandsp_logging.compat