698a183e |
FFSERVER_REFFILE = $(SRC_PATH)/tests/ffserver.regression.ref
|
23dfa00b |
THREADS = 1 |
7263cd55 |
VREF = tests/vsynth1/00.pgm
AREF = tests/data/asynth1.sw |
698a183e |
|
8d02a55b |
FATEW = 34
FATEH = 34 |
698a183e |
|
42c1dcde |
FFMPEG=ffmpeg$(PROGSSUF)$(EXESUF)
|
6d3166fc |
$(AREF): CMP= |
698a183e |
|
42c1dcde |
ffservertest: export PROGSUF = $(PROGSSUF) |
c3f781c5 |
ffservertest: ffserver$(PROGSSUF)$(EXESUF) ffmpeg$(PROGSSUF)$(EXESUF) tests/vsynth1/00.pgm tests/data/asynth1.sw |
698a183e |
@echo
@echo "Unfortunately ffserver is broken and therefore its regression"
@echo "test fails randomly. Treat the results accordingly."
@echo |
1e7f9b0e |
$(SRC_PATH)/tests/ffserver-regression.sh $(FFSERVER_REFFILE) $(SRC_PATH)/tests/ffserver.conf "$(TARGET_SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" |
698a183e |
|
3f18cb97 |
APITESTSDIR := tests/api |
c78b82f4 |
OBJDIRS += tests/data tests/vsynth1 tests/data/filtergraphs $(APITESTSDIR)/ |
e9ba6b37 |
|
3eec1d41 |
$(VREF): tests/videogen$(HOSTEXESUF) | tests/vsynth1 |
698a183e |
$(M)./$< 'tests/vsynth1/'
|
3eec1d41 |
$(AREF): tests/audiogen$(HOSTEXESUF) | tests/data |
698a183e |
$(M)./$< $@
|
870165e2 |
tests/data/asynth-%.wav: tests/audiogen$(HOSTEXESUF) | tests/data
$(M)./$< $@ $(subst -, ,$*)
|
7263cd55 |
tests/data/vsynth1.yuv: tests/videogen$(HOSTEXESUF) | tests/data |
d0e9415d |
$(M)$< $@ |
7263cd55 |
|
42801505 |
tests/data/vsynth2.yuv: tests/rotozoom$(HOSTEXESUF) | tests/data
$(M)$< $(SRC_PATH)/tests/reference.pnm $@
|
ed49b142 |
tests/data/vsynth_lena.yuv: tests/rotozoom$(HOSTEXESUF) | tests/data |
c4abee73 |
$(M)$< $(SAMPLES)/lena.pnm $@ |
7263cd55 |
|
8d02a55b |
tests/data/vsynth3.yuv: tests/videogen$(HOSTEXESUF) | tests/data
$(M)$< $@ $(FATEW) $(FATEH)
|
1d4480d3 |
tests/test_copy.ffmeta: TAG = COPY
tests/test_copy.ffmeta: tests/data |
685f7227 |
$(M)cp -f $(SRC_PATH)/tests/test.ffmeta tests/test_copy.ffmeta |
7c0c97cc |
|
42c1dcde |
tests/data/ffprobe-test.nut: ffmpeg$(PROGSSUF)$(EXESUF) tests/test_copy.ffmeta |
af39b8fe |
$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \ |
64ce15b9 |
-f lavfi -i "aevalsrc=sin(400*PI*2*t):d=0.125[out0]; testsrc=d=0.125[out1]; testsrc=s=100x100:d=0.125[out2]" \ |
1d4480d3 |
-f ffmetadata -i $(TARGET_PATH)/tests/test_copy.ffmeta \ |
c64060d5 |
-flags +bitexact -fflags +bitexact -map 0:0 -map 0:1 -map 0:2 -map_metadata 1 \ |
208a5d13 |
-map_metadata:s:0 1:s:0 -map_metadata:s:1 1:s:1 \ |
5bd6a480 |
-vcodec rawvideo -acodec pcm_s16le \ |
cde0ad5e |
-y $(TARGET_PATH)/$@ 2>/dev/null |
5bd6a480 |
tests/data/%.sw tests/data/asynth% tests/data/vsynth%.yuv tests/vsynth%/00.pgm tests/data/%.nut: TAG = GEN |
7263cd55 |
|
4a27a52a |
tests/data/filtergraphs/%: TAG = COPY
tests/data/filtergraphs/%: $(SRC_PATH)/tests/filtergraphs/% | tests/data/filtergraphs
$(M)cp $< $@
|
706208ef |
RUNNING_FATE := $(filter check fate%,$(filter-out fate-rsync,$(MAKECMDGOALS)))
|
37063714 |
# Check sanity of dependencies when running FATE tests. |
706208ef |
ifneq (,$(RUNNING_FATE)) |
a1f6ad69 |
CHKCFG = $(if $($(1))$(!$(1)),$($(1)), $(error No such config: $(1))) |
37063714 |
endif |
a1f6ad69 |
|
21fed588 |
ALLYES = $(strip $(call XYES, $(1)))
XYES = $(if $(strip $(1)), \ |
a1f6ad69 |
$(if $(call CHKCFG,CONFIG_$(firstword $(1))), \ |
21fed588 |
$(call XYES, $(wordlist 2, $(words $(1)), $(1)))), \
yes)
ENCDEC = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \
$(firstword $(2))_MUXER $(lastword $(2))_DEMUXER)
ENCDEC2 = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \
$(firstword $(2))_ENCODER $(lastword $(2))_DECODER \
$(firstword $(3))_MUXER $(lastword $(3))_DEMUXER)
|
c0329748 |
DEMDEC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER)) |
6f9018fc |
ENCMUX = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER) |
c0329748 |
|
01656fd4 |
DEMMUX = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER)
|
a8cc88b1 |
FILTERDEMDEC = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER)
FILTERDEMDECMUX = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_MUXER)
FILTERDEMDECENCMUX = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_ENCODER $(5)_MUXER) |
b357f1d1 |
|
eddff165 |
PARSERDEMDEC = $(call ALLYES, $(1)_PARSER $(2)_DEMUXER $(3)_DECODER)
|
3f18cb97 |
include $(SRC_PATH)/$(APITESTSDIR)/Makefile
|
7263cd55 |
include $(SRC_PATH)/tests/fate/acodec.mak
include $(SRC_PATH)/tests/fate/vcodec.mak |
01621202 |
|
fa263350 |
include $(SRC_PATH)/tests/fate/avformat.mak |
36ac9a16 |
include $(SRC_PATH)/tests/fate/seek.mak |
698a183e |
|
f038cf3c |
include $(SRC_PATH)/tests/fate/aac.mak |
bf692357 |
include $(SRC_PATH)/tests/fate/ac3.mak |
2df5f59a |
include $(SRC_PATH)/tests/fate/adpcm.mak |
e9812159 |
include $(SRC_PATH)/tests/fate/alac.mak |
f038cf3c |
include $(SRC_PATH)/tests/fate/als.mak |
0291ce84 |
include $(SRC_PATH)/tests/fate/amrnb.mak
include $(SRC_PATH)/tests/fate/amrwb.mak |
7728d231 |
include $(SRC_PATH)/tests/fate/api.mak |
ce466d0a |
include $(SRC_PATH)/tests/fate/apng.mak |
44b7e1b9 |
include $(SRC_PATH)/tests/fate/atrac.mak |
ab2d11f7 |
include $(SRC_PATH)/tests/fate/audio.mak |
7756859a |
include $(SRC_PATH)/tests/fate/bmp.mak |
db869f4e |
include $(SRC_PATH)/tests/fate/build.mak |
c3ed259e |
include $(SRC_PATH)/tests/fate/canopus.mak |
809b0402 |
include $(SRC_PATH)/tests/fate/cbs.mak |
159a2436 |
include $(SRC_PATH)/tests/fate/cdxl.mak |
c9f8cfb6 |
include $(SRC_PATH)/tests/fate/checkasm.mak |
a01046c9 |
include $(SRC_PATH)/tests/fate/concatdec.mak |
bf2a7f91 |
include $(SRC_PATH)/tests/fate/cover-art.mak |
da6ee11e |
include $(SRC_PATH)/tests/fate/dca.mak |
c7cb1730 |
include $(SRC_PATH)/tests/fate/demux.mak |
febd0222 |
include $(SRC_PATH)/tests/fate/dfa.mak |
25d3013e |
include $(SRC_PATH)/tests/fate/dnxhd.mak |
209c4452 |
include $(SRC_PATH)/tests/fate/dpcm.mak |
394f0b18 |
include $(SRC_PATH)/tests/fate/ea.mak |
78d2a781 |
include $(SRC_PATH)/tests/fate/exif.mak |
98ce9b84 |
include $(SRC_PATH)/tests/fate/ffmpeg.mak |
5bd6a480 |
include $(SRC_PATH)/tests/fate/ffprobe.mak |
01621202 |
include $(SRC_PATH)/tests/fate/fft.mak |
b84c8314 |
include $(SRC_PATH)/tests/fate/fifo-muxer.mak |
b357f1d1 |
include $(SRC_PATH)/tests/fate/filter-audio.mak |
a77aed14 |
include $(SRC_PATH)/tests/fate/filter-video.mak |
9d99f0af |
include $(SRC_PATH)/tests/fate/fits.mak |
983fa8bc |
include $(SRC_PATH)/tests/fate/flac.mak |
863ebe6f |
include $(SRC_PATH)/tests/fate/flvenc.mak |
8297d87e |
include $(SRC_PATH)/tests/fate/gapless.mak |
8a7d177c |
include $(SRC_PATH)/tests/fate/gif.mak |
f038cf3c |
include $(SRC_PATH)/tests/fate/h264.mak |
fb3cea4b |
include $(SRC_PATH)/tests/fate/hevc.mak |
d69a03ef |
include $(SRC_PATH)/tests/fate/image.mak |
6146d78d |
include $(SRC_PATH)/tests/fate/indeo.mak |
913b6b4b |
include $(SRC_PATH)/tests/fate/libavcodec.mak |
c47037c7 |
include $(SRC_PATH)/tests/fate/libavdevice.mak |
7bc433b3 |
include $(SRC_PATH)/tests/fate/libavformat.mak |
9ab5f710 |
include $(SRC_PATH)/tests/fate/libavresample.mak |
03256d96 |
include $(SRC_PATH)/tests/fate/libavutil.mak |
712eff49 |
include $(SRC_PATH)/tests/fate/libswresample.mak |
08e1376d |
include $(SRC_PATH)/tests/fate/libswscale.mak |
86027674 |
include $(SRC_PATH)/tests/fate/lossless-audio.mak
include $(SRC_PATH)/tests/fate/lossless-video.mak |
3ed5218b |
include $(SRC_PATH)/tests/fate/matroska.mak |
4e616d09 |
include $(SRC_PATH)/tests/fate/microsoft.mak |
e9e5a1bd |
include $(SRC_PATH)/tests/fate/monkeysaudio.mak |
ca6cae73 |
include $(SRC_PATH)/tests/fate/mov.mak |
f038cf3c |
include $(SRC_PATH)/tests/fate/mp3.mak |
9e5bd6cc |
include $(SRC_PATH)/tests/fate/mpc.mak |
f29c226a |
include $(SRC_PATH)/tests/fate/mpeg4.mak |
9ba9c08a |
include $(SRC_PATH)/tests/fate/mpegts.mak |
a1811698 |
include $(SRC_PATH)/tests/fate/mxf.mak |
b70d7a4a |
include $(SRC_PATH)/tests/fate/opus.mak |
bdda1616 |
include $(SRC_PATH)/tests/fate/pcm.mak |
2fcf47e2 |
include $(SRC_PATH)/tests/fate/pixlet.mak |
4bfa67bd |
include $(SRC_PATH)/tests/fate/probe.mak |
530d8529 |
include $(SRC_PATH)/tests/fate/prores.mak |
f6ba1f26 |
include $(SRC_PATH)/tests/fate/qt.mak |
f8c47cb8 |
include $(SRC_PATH)/tests/fate/qtrle.mak |
bad38179 |
include $(SRC_PATH)/tests/fate/real.mak |
753a5063 |
include $(SRC_PATH)/tests/fate/screen.mak |
ed18c49f |
include $(SRC_PATH)/tests/fate/source.mak |
45ffe464 |
include $(SRC_PATH)/tests/fate/speedhq.mak |
04568f8d |
include $(SRC_PATH)/tests/fate/subtitles.mak |
42de665d |
include $(SRC_PATH)/tests/fate/utvideo.mak |
628637f6 |
include $(SRC_PATH)/tests/fate/video.mak |
51150cf0 |
include $(SRC_PATH)/tests/fate/voice.mak |
f038cf3c |
include $(SRC_PATH)/tests/fate/vorbis.mak |
bebf9f92 |
include $(SRC_PATH)/tests/fate/vpx.mak |
723c35fe |
include $(SRC_PATH)/tests/fate/vqf.mak |
b93c9157 |
include $(SRC_PATH)/tests/fate/wavpack.mak |
b998aec4 |
include $(SRC_PATH)/tests/fate/wma.mak |
04ffd220 |
include $(SRC_PATH)/tests/fate/xvid.mak |
698a183e |
|
61930bd0 |
FATE_FFMPEG += $(FATE_FFMPEG-yes) $(FATE_AVCONV) $(FATE_AVCONV-yes) |
31f3c947 |
FATE-$(CONFIG_FFMPEG) += $(FATE_FFMPEG) |
fd63c2ff |
FATE-$(CONFIG_FFPROBE) += $(FATE_FFPROBE) |
f7c2dca0 |
|
eccd0671 |
FATE_SAMPLES_AVCONV += $(FATE_SAMPLES_AVCONV-yes) |
b252d9e7 |
FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_FFMPEG-yes) |
7be9c0c1 |
FATE_EXTERN-$(CONFIG_FFMPEG) += $(FATE_SAMPLES_AVCONV) $(FATE_SAMPLES_FFMPEG) $(FATE_SAMPLES_FFPROBE) |
56977eef |
FATE_EXTERN += $(FATE_EXTERN-yes) |
63dcd16d |
|
908f12f3 |
FATE += $(FATE-yes) |
f7c2dca0 |
|
a8b3f0c5 |
RSYNC_OPTIONS-$(HAVE_RSYNC_CONTIMEOUT) += --contimeout=60
RSYNC_OPTIONS = -vrltLW --timeout=60 $(RSYNC_OPTIONS-yes)
|
42c1dcde |
$(FATE_FFMPEG) $(FATE_SAMPLES_AVCONV) $(FATE_SAMPLES_FFMPEG): ffmpeg$(PROGSSUF)$(EXESUF) |
908f12f3 |
|
42c1dcde |
$(FATE_FFPROBE) $(FATE_SAMPLES_FFPROBE): ffprobe$(PROGSSUF)$(EXESUF) |
5bd6a480 |
|
698a183e |
ifdef SAMPLES |
c0c2424f |
FATE += $(FATE_FULL) $(FATE_FULL-yes) |
56977eef |
FATE += $(FATE_EXTERN) |
698a183e |
fate-rsync: |
a8b3f0c5 |
rsync $(RSYNC_OPTIONS) rsync://fate-suite.ffmpeg.org/fate-suite/ $(SAMPLES) |
698a183e |
else |
f5146953 |
fate::
@echo "warning: only a subset of the fate tests will be run because SAMPLES is not specified" |
698a183e |
fate-rsync:
@echo "use 'make fate-rsync SAMPLES=/path/to/samples' to sync the fate suite" |
56977eef |
$(FATE_EXTERN): |
63dcd16d |
@echo "$@ requires external samples and SAMPLES not specified"; false |
698a183e |
endif
|
14478b6c |
FATE_UTILS = base64 tiny_psnr tiny_ssim audiomatch |
698a183e |
|
e01770ba |
TOOL = ffmpeg |
6ae356c9 |
|
35d1f726 |
$(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore
|
f5146953 |
fate:: $(FATE) |
698a183e |
|
42c1dcde |
$(FATE) $(FATE_TESTS-no): export PROGSUF = $(PROGSSUF) |
61930bd0 |
$(FATE) $(FATE_TESTS-no): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) |
698a183e |
@echo "TEST $(@:fate-%=%)" |
f5218b27 |
$(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(TARGET_SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' '$(GEN)' '$(HWACCEL)' '$(REPORT)' |
698a183e |
fate-list:
@printf '%s\n' $(sort $(FATE))
|
a862c7d3 |
coverage.info: TAG = LCOV
coverage.info: |
bb7522ce |
$(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | \ |
14bf59c1 |
sed "s,$(CURDIR)/\./,$(CURDIR)/," > $@.in
$(M)lcov -q --remove $@.in "/usr*" > $@
$(Q)$(RM) $@.in |
a862c7d3 |
lcov: TAG = GENHTML
lcov: coverage.info |
768e44d0 |
$(M)genhtml -q -o $(CURDIR)/lcov $< |
a862c7d3 |
lcov-reset: TAG = LCOV
lcov-reset: |
a08b5d7b |
$(M)lcov -q -d $(CURDIR) --zerocounters |
a862c7d3 |
$(Q)$(RM) -f coverage.info
|
698a183e |
clean:: testclean
|
3f18cb97 |
testclean:: |
42c1dcde |
$(RM) -r tests/vsynth1 tests/data tools/lavfi-showfiltfmts$(PROGSSUF)$(EXESUF) |
deb3ed01 |
$(RM) $(CLEANSUFFIXES:%=tests/%) |
698a183e |
$(RM) $(TESTTOOLS:%=tests/%$(HOSTEXESUF)) |
1d4480d3 |
$(RM) tests/pixfmts.mak tests/test_copy.ffmeta |
698a183e |
-include $(wildcard tests/*.d)
|
8bc67ec2 |
include $(SRC_PATH)/tests/checkasm/Makefile
|
a862c7d3 |
.PHONY: fate* lcov lcov-reset
.INTERMEDIATE: coverage.info |