1cabdff1aSopenharmony_ci
2cabdff1aSopenharmony_ciifneq ($(strip $(KEEP)),)
3cabdff1aSopenharmony_ciifneq ($(strip $(KEEP)),0)
4cabdff1aSopenharmony_ci# KEEP_FILES is normally undefined; it is set to 2 # if the user requested
5cabdff1aSopenharmony_ci# to keep all intermediate FATE-files by setting KEEP.
6cabdff1aSopenharmony_ci# For some tests it is also set to 1 if it is unset; this indicates
7cabdff1aSopenharmony_ci# that only some intermediate files (namely only non-raw files)
8cabdff1aSopenharmony_ci# are to be kept. This allows reusing these intermediate files as input
9cabdff1aSopenharmony_ci# files for other tests (mostly the seek-tests).
10cabdff1aSopenharmony_ciKEEP_FILES = 2
11cabdff1aSopenharmony_ciendif
12cabdff1aSopenharmony_ciendif
13cabdff1aSopenharmony_ci
14cabdff1aSopenharmony_ciTHREADS = 1
15cabdff1aSopenharmony_ciVREF = tests/vsynth1/00.pgm
16cabdff1aSopenharmony_ciAREF = tests/data/asynth1.sw
17cabdff1aSopenharmony_ci
18cabdff1aSopenharmony_ciFATEW = 34
19cabdff1aSopenharmony_ciFATEH = 34
20cabdff1aSopenharmony_ci
21cabdff1aSopenharmony_ciFFMPEG=ffmpeg$(PROGSSUF)$(EXESUF)
22cabdff1aSopenharmony_ci
23cabdff1aSopenharmony_ci$(AREF): CMP=
24cabdff1aSopenharmony_ci
25cabdff1aSopenharmony_ciAPITESTSDIR := tests/api
26cabdff1aSopenharmony_ciFATE_OUTDIRS = tests/data tests/data/fate tests/data/filtergraphs tests/data/lavf tests/data/lavf-fate tests/data/pixfmt tests/vsynth1 $(APITESTSDIR)
27cabdff1aSopenharmony_ciOUTDIRS += $(FATE_OUTDIRS)
28cabdff1aSopenharmony_ci
29cabdff1aSopenharmony_ci$(VREF): tests/videogen$(HOSTEXESUF) | tests/vsynth1
30cabdff1aSopenharmony_ci	$(M)./$< 'tests/vsynth1/'
31cabdff1aSopenharmony_ci
32cabdff1aSopenharmony_ci$(AREF): tests/audiogen$(HOSTEXESUF) | tests/data
33cabdff1aSopenharmony_ci	$(M)./$< $@
34cabdff1aSopenharmony_ci
35cabdff1aSopenharmony_citests/data/asynth-%.wav: tests/audiogen$(HOSTEXESUF) | tests/data
36cabdff1aSopenharmony_ci	$(M)./$< $@ $(subst -, ,$*)
37cabdff1aSopenharmony_ci
38cabdff1aSopenharmony_citests/data/vsynth1.yuv: tests/videogen$(HOSTEXESUF) | tests/data
39cabdff1aSopenharmony_ci	$(M)$< $@
40cabdff1aSopenharmony_ci
41cabdff1aSopenharmony_citests/data/vsynth2.yuv: tests/rotozoom$(HOSTEXESUF) | tests/data
42cabdff1aSopenharmony_ci	$(M)$< $(SRC_PATH)/tests/reference.pnm $@
43cabdff1aSopenharmony_ci
44cabdff1aSopenharmony_citests/data/vsynth_lena.yuv: tests/rotozoom$(HOSTEXESUF) | tests/data
45cabdff1aSopenharmony_ci	$(M)$< $(SAMPLES)/lena.pnm $@
46cabdff1aSopenharmony_ci
47cabdff1aSopenharmony_citests/data/vsynth3.yuv: tests/videogen$(HOSTEXESUF) | tests/data
48cabdff1aSopenharmony_ci	$(M)$< $@ $(FATEW) $(FATEH)
49cabdff1aSopenharmony_ci
50cabdff1aSopenharmony_citests/test_copy.ffmeta: TAG = COPY
51cabdff1aSopenharmony_citests/test_copy.ffmeta: tests/data
52cabdff1aSopenharmony_ci	$(M)cp -f $(SRC_PATH)/tests/test.ffmeta tests/test_copy.ffmeta
53cabdff1aSopenharmony_ci
54cabdff1aSopenharmony_citests/data/ffprobe-test.nut: ffmpeg$(PROGSSUF)$(EXESUF) tests/test_copy.ffmeta
55cabdff1aSopenharmony_ci	$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
56cabdff1aSopenharmony_ci        -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]" \
57cabdff1aSopenharmony_ci        -f ffmetadata -i $(TARGET_PATH)/tests/test_copy.ffmeta \
58cabdff1aSopenharmony_ci        -flags +bitexact -fflags +bitexact -map 0:0 -map 0:1 -map 0:2 -map_metadata 1 \
59cabdff1aSopenharmony_ci        -map_metadata:s:0 1:s:0 -map_metadata:s:1 1:s:1 \
60cabdff1aSopenharmony_ci        -vcodec rawvideo -acodec pcm_s16le \
61cabdff1aSopenharmony_ci        -y $(TARGET_PATH)/$@ 2>/dev/null
62cabdff1aSopenharmony_ci
63cabdff1aSopenharmony_citests/data/%.sw tests/data/asynth% tests/data/vsynth%.yuv tests/vsynth%/00.pgm tests/data/%.nut: TAG = GEN
64cabdff1aSopenharmony_ci
65cabdff1aSopenharmony_citests/data/filtergraphs/%: TAG = COPY
66cabdff1aSopenharmony_citests/data/filtergraphs/%: $(SRC_PATH)/tests/filtergraphs/% | tests/data/filtergraphs
67cabdff1aSopenharmony_ci	$(M)cp $< $@
68cabdff1aSopenharmony_ci
69cabdff1aSopenharmony_ciRUNNING_FATE := $(filter check fate%,$(filter-out fate-rsync,$(MAKECMDGOALS)))
70cabdff1aSopenharmony_ci
71cabdff1aSopenharmony_ci# Check sanity of dependencies when running FATE tests.
72cabdff1aSopenharmony_ciifneq (,$(RUNNING_FATE))
73cabdff1aSopenharmony_ciCHKCFG  = $(if $($(1))$(!$(1)),$($(1)), $(error No such config: $(1)))
74cabdff1aSopenharmony_ciendif
75cabdff1aSopenharmony_ci
76cabdff1aSopenharmony_ciALLYES  = $(strip $(call XYES, $(1)))
77cabdff1aSopenharmony_ciXYES    = $(if $(strip $(1)),                                           \
78cabdff1aSopenharmony_ci               $(if $(call CHKCFG,CONFIG_$(firstword $(1))),            \
79cabdff1aSopenharmony_ci                    $(call XYES, $(wordlist 2, $(words $(1)), $(1)))),  \
80cabdff1aSopenharmony_ci               yes)
81cabdff1aSopenharmony_ci
82cabdff1aSopenharmony_ciENCDEC  = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER  \
83cabdff1aSopenharmony_ci                         $(firstword $(2))_MUXER   $(lastword $(2))_DEMUXER  \
84cabdff1aSopenharmony_ci                         $(3) FILE_PROTOCOL)
85cabdff1aSopenharmony_ci
86cabdff1aSopenharmony_ciENCDEC2 = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER  \
87cabdff1aSopenharmony_ci                         $(firstword $(2))_ENCODER $(lastword $(2))_DECODER  \
88cabdff1aSopenharmony_ci                         $(firstword $(3))_MUXER   $(lastword $(3))_DEMUXER  \
89cabdff1aSopenharmony_ci                         $(4) FILE_PROTOCOL)
90cabdff1aSopenharmony_ci
91cabdff1aSopenharmony_ci# RAWVIDEO_ENCODER and PCM_S16LE_ENCODER corresponds to the default codecs
92cabdff1aSopenharmony_ci# for framecrc. These requirements are not always necessary.
93cabdff1aSopenharmony_ciTRANSCODE = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \
94cabdff1aSopenharmony_ci                           $(firstword $(2))_MUXER   $(lastword $(2))_DEMUXER \
95cabdff1aSopenharmony_ci                           $(3) FILE_PROTOCOL PIPE_PROTOCOL RAWVIDEO_ENCODER  \
96cabdff1aSopenharmony_ci                           PCM_S16LE_ENCODER FRAMECRC_MUXER)
97cabdff1aSopenharmony_ci
98cabdff1aSopenharmony_ciREMUX = $(call ALLYES, $(firstword $(1))_MUXER $(lastword $(1))_DEMUXER \
99cabdff1aSopenharmony_ci                       $(2) FILE_PROTOCOL PIPE_PROTOCOL FRAMECRC_MUXER)
100cabdff1aSopenharmony_ci
101cabdff1aSopenharmony_ciDEMDEC  = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3) FILE_PROTOCOL)
102cabdff1aSopenharmony_ciENCMUX  = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER   $(3))
103cabdff1aSopenharmony_ci
104cabdff1aSopenharmony_ciFRAMEMD5 = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3)                  \
105cabdff1aSopenharmony_ci                          PCM_S16LE_ENCODER RAWVIDEO_ENCODER FRAMEMD5_MUXER   \
106cabdff1aSopenharmony_ci                          PIPE_PROTOCOL FILE_PROTOCOL)
107cabdff1aSopenharmony_ciFRAMECRC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3)                  \
108cabdff1aSopenharmony_ci                          PCM_S16LE_ENCODER RAWVIDEO_ENCODER FRAMECRC_MUXER   \
109cabdff1aSopenharmony_ci                          PIPE_PROTOCOL FILE_PROTOCOL)
110cabdff1aSopenharmony_ci
111cabdff1aSopenharmony_ci# Variant of DEMDEC for use with the "pcm" command.
112cabdff1aSopenharmony_ciPCM = $(call ALLYES, $(1)_DEMUXER $(2)_DECODER  $(3) FILE_PROTOCOL            \
113cabdff1aSopenharmony_ci                     PCM_S16LE_ENCODER PCM_S16LE_MUXER PIPE_PROTOCOL)
114cabdff1aSopenharmony_ci
115cabdff1aSopenharmony_ciDEMMUX  = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER $(3) FILE_PROTOCOL)
116cabdff1aSopenharmony_ci
117cabdff1aSopenharmony_ci# Variant of FRAMECRC for the cases with -lavfi where no demuxer is involved.
118cabdff1aSopenharmony_ciFILTERFRAMECRC     = $(call ALLYES, $(1:%=%_FILTER) $(2) PCM_S16LE_ENCODER    \
119cabdff1aSopenharmony_ci                                    RAWVIDEO_ENCODER FRAMECRC_MUXER PIPE_PROTOCOL)
120cabdff1aSopenharmony_ci# Specialization of FRAMECRC to be used when filtering is involved.
121cabdff1aSopenharmony_ciFILTERDEMDEC       = $(call ALLYES, $(1:%=%_FILTER) $(2:%=%_DEMUXER) $(3:%=%_DECODER) \
122cabdff1aSopenharmony_ci                                    $(4) PCM_S16LE_ENCODER RAWVIDEO_ENCODER   \
123cabdff1aSopenharmony_ci                                    FRAMECRC_MUXER FILE_PROTOCOL PIPE_PROTOCOL)
124cabdff1aSopenharmony_ciFILTERDEMDECENCMUX = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_ENCODER $(5)_MUXER $(6) FILE_PROTOCOL)
125cabdff1aSopenharmony_ci
126cabdff1aSopenharmony_ciPARSERDEMDEC       = $(call ALLYES, $(1)_PARSER $(2)_DEMUXER $(3)_DECODER $(4) FILE_PROTOCOL)
127cabdff1aSopenharmony_ci
128cabdff1aSopenharmony_ci# Allow overriding CONFIG_LARGE_TESTS via LARGE_TESTS, if set on the
129cabdff1aSopenharmony_ci# make command line.
130cabdff1aSopenharmony_ciifeq ($(LARGE_TESTS), yes)
131cabdff1aSopenharmony_ciCONFIG_LARGE_TESTS:=yes
132cabdff1aSopenharmony_ci!CONFIG_LARGE_TESTS:=
133cabdff1aSopenharmony_cielse ifeq ($(LARGE_TESTS), no)
134cabdff1aSopenharmony_ciCONFIG_LARGE_TESTS:=
135cabdff1aSopenharmony_ci!CONFIG_LARGE_TESTS:=yes
136cabdff1aSopenharmony_ciendif
137cabdff1aSopenharmony_ci
138cabdff1aSopenharmony_ciinclude $(SRC_PATH)/$(APITESTSDIR)/Makefile
139cabdff1aSopenharmony_ci
140cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/acodec.mak
141cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/vcodec.mak
142cabdff1aSopenharmony_ci
143cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lavf-audio.mak
144cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lavf-container.mak
145cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lavf-image.mak
146cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lavf-image2pipe.mak
147cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lavf-video.mak
148cabdff1aSopenharmony_ci# Must be included after acodec.mak, vcodec.mak and lavf-*.mak
149cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/seek.mak
150cabdff1aSopenharmony_ci
151cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/aac.mak
152cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/ac3.mak
153cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/adpcm.mak
154cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/alac.mak
155cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/als.mak
156cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/amrnb.mak
157cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/amrwb.mak
158cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/api.mak
159cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/apng.mak
160cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/atrac.mak
161cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/audio.mak
162cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/bmp.mak
163cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/build.mak
164cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/caf.mak
165cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/canopus.mak
166cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/cbs.mak
167cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/cdxl.mak
168cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/checkasm.mak
169cabdff1aSopenharmony_ci# Must be included after lavf-container.mak
170cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/concatdec.mak
171cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/cover-art.mak
172cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dca.mak
173cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/demux.mak
174cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dfa.mak
175cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dnn.mak
176cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dnxhd.mak
177cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dpcm.mak
178cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/dvvideo.mak
179cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/ea.mak
180cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/exif.mak
181cabdff1aSopenharmony_ci# Must be included after lavf-video.mak
182cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/ffmpeg.mak
183cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/ffprobe.mak
184cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/fft.mak
185cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/fifo-muxer.mak
186cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/filter-audio.mak
187cabdff1aSopenharmony_ci# Must be included after vcodec.mak
188cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/filter-video.mak
189cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/fits.mak
190cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/flac.mak
191cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/flvenc.mak
192cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/gapless.mak
193cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/gif.mak
194cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/h264.mak
195cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/hap.mak
196cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/hevc.mak
197cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/hlsenc.mak
198cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/hw.mak
199cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/id3v2.mak
200cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/image.mak
201cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/imf.mak
202cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/indeo.mak
203cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libavcodec.mak
204cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libavdevice.mak
205cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libavformat.mak
206cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libavutil.mak
207cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libswresample.mak
208cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/libswscale.mak
209cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lossless-audio.mak
210cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/lossless-video.mak
211cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/matroska.mak
212cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/microsoft.mak
213cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/monkeysaudio.mak
214cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mov.mak
215cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mp3.mak
216cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mpc.mak
217cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mpeg4.mak
218cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mpegps.mak
219cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mpegts.mak
220cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/mxf.mak
221cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/oma.mak
222cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/opus.mak
223cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/pcm.mak
224cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/pixfmt.mak
225cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/pixlet.mak
226cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/probe.mak
227cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/prores.mak
228cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/qt.mak
229cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/qtrle.mak
230cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/real.mak
231cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/screen.mak
232cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/segment.mak
233cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/source.mak
234cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/speedhq.mak
235cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/subtitles.mak
236cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/truehd.mak
237cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/utvideo.mak
238cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/vbn.mak
239cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/video.mak
240cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/voice.mak
241cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/vorbis.mak
242cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/vpx.mak
243cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/vqf.mak
244cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/wavpack.mak
245cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/webm-dash-manifest.mak
246cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/wma.mak
247cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/fate/xvid.mak
248cabdff1aSopenharmony_ci
249cabdff1aSopenharmony_ciFATE_FFMPEG += $(FATE_FFMPEG-yes) $(FATE_AVCONV) $(FATE_AVCONV-yes)
250cabdff1aSopenharmony_ciFATE-$(CONFIG_FFMPEG) += $(FATE_FFMPEG)
251cabdff1aSopenharmony_ciFATE-$(CONFIG_FFPROBE) += $(FATE_FFPROBE)
252cabdff1aSopenharmony_ciFATE-$(call ALLYES, FFMPEG FFPROBE) += $(FATE_FFMPEG_FFPROBE)
253cabdff1aSopenharmony_ci
254cabdff1aSopenharmony_ciFATE_SAMPLES_AVCONV           += $(FATE_SAMPLES_AVCONV-yes)
255cabdff1aSopenharmony_ciFATE_SAMPLES_FFMPEG           += $(FATE_SAMPLES_FFMPEG-yes)
256cabdff1aSopenharmony_ciFATE_EXTERN-$(CONFIG_FFMPEG)  += $(FATE_SAMPLES_AVCONV) $(FATE_SAMPLES_FFMPEG)
257cabdff1aSopenharmony_ciFATE_EXTERN-$(CONFIG_FFPROBE) += $(FATE_SAMPLES_FFPROBE)
258cabdff1aSopenharmony_ciFATE_SAMPLES_FFMPEG_FFPROBE   += $(FATE_SAMPLES_FFMPEG_FFPROBE-yes)
259cabdff1aSopenharmony_ciFATE_EXTERN-$(call ALLYES, FFMPEG FFPROBE) += $(FATE_SAMPLES_FFMPEG_FFPROBE)
260cabdff1aSopenharmony_ciFATE_EXTERN                   += $(FATE_EXTERN-yes) $(FATE_SAMPLES_FASTSTART)
261cabdff1aSopenharmony_ci
262cabdff1aSopenharmony_ciFATE += $(FATE-yes)
263cabdff1aSopenharmony_ci
264cabdff1aSopenharmony_ciRSYNC_OPTIONS-$(HAVE_RSYNC_CONTIMEOUT) += --contimeout=60
265cabdff1aSopenharmony_ciRSYNC_OPTIONS = -vrltLW --timeout=60 $(RSYNC_OPTIONS-yes)
266cabdff1aSopenharmony_ci
267cabdff1aSopenharmony_ci$(FATE_FFMPEG) $(FATE_FFMPEG_FFPROBE) $(FATE_SAMPLES_AVCONV) $(FATE_SAMPLES_FFMPEG) $(FATE_SAMPLES_FFMPEG_FFPROBE): ffmpeg$(PROGSSUF)$(EXESUF)
268cabdff1aSopenharmony_ci
269cabdff1aSopenharmony_ci$(FATE_FFPROBE) $(FATE_FFMPEG_FFPROBE) $(FATE_SAMPLES_FFPROBE) $(FATE_SAMPLES_FFMPEG_FFPROBE): ffprobe$(PROGSSUF)$(EXESUF)
270cabdff1aSopenharmony_ci
271cabdff1aSopenharmony_ci$(FATE_SAMPLES_FASTSTART): tools/qt-faststart$(EXESUF)
272cabdff1aSopenharmony_ci$(FATE_SAMPLES_DUMP_DATA) $(FATE_SAMPLES_DUMP_DATA-yes): tools/venc_data_dump$(EXESUF)
273cabdff1aSopenharmony_ci$(FATE_SAMPLES_SCALE_SLICE): tools/scale_slice_test$(EXESUF)
274cabdff1aSopenharmony_ci
275cabdff1aSopenharmony_ciifdef SAMPLES
276cabdff1aSopenharmony_ciFATE += $(FATE_EXTERN)
277cabdff1aSopenharmony_cifate-rsync:
278cabdff1aSopenharmony_ci	rsync $(RSYNC_OPTIONS) rsync://fate-suite.ffmpeg.org/fate-suite/ $(SAMPLES)
279cabdff1aSopenharmony_cielse
280cabdff1aSopenharmony_cifate::
281cabdff1aSopenharmony_ci	@echo "warning: only a subset of the fate tests will be run because SAMPLES is not specified"
282cabdff1aSopenharmony_cifate-rsync:
283cabdff1aSopenharmony_ci	@echo "use 'make fate-rsync SAMPLES=/path/to/samples' to sync the fate suite"
284cabdff1aSopenharmony_ci$(FATE_EXTERN):
285cabdff1aSopenharmony_ci	@echo "$@ requires external samples and SAMPLES not specified"; false
286cabdff1aSopenharmony_ciendif
287cabdff1aSopenharmony_ci
288cabdff1aSopenharmony_ciFATE_UTILS = base64 tiny_psnr tiny_ssim audiomatch
289cabdff1aSopenharmony_ci
290cabdff1aSopenharmony_ciTOOL = ffmpeg
291cabdff1aSopenharmony_ci
292cabdff1aSopenharmony_ci$(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore
293cabdff1aSopenharmony_ci
294cabdff1aSopenharmony_cifate:: $(FATE)
295cabdff1aSopenharmony_ci
296cabdff1aSopenharmony_ci# Tests requiring hardware support are not included in a default fate run.
297cabdff1aSopenharmony_cifate-hw: $(FATE_HW-yes)
298cabdff1aSopenharmony_ciFATE += $(FATE_HW-yes)
299cabdff1aSopenharmony_ci
300cabdff1aSopenharmony_ci$(FATE): export PROGSUF = $(PROGSSUF)
301cabdff1aSopenharmony_ci$(FATE): export EXECSUF = $(EXESUF)
302cabdff1aSopenharmony_ci$(FATE): export HOSTEXECSUF = $(HOSTEXESUF)
303cabdff1aSopenharmony_ci$(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | $(FATE_OUTDIRS)
304cabdff1aSopenharmony_ci	@echo "TEST    $(@:fate-%=%)"
305cabdff1aSopenharmony_ci	$(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)' '$(KEEP_FILES)'
306cabdff1aSopenharmony_ci
307cabdff1aSopenharmony_cifate-list:
308cabdff1aSopenharmony_ci	@printf '%s\n' $(sort $(FATE))
309cabdff1aSopenharmony_ci
310cabdff1aSopenharmony_cicoverage.info: TAG = LCOV
311cabdff1aSopenharmony_cicoverage.info:
312cabdff1aSopenharmony_ci	$(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | \
313cabdff1aSopenharmony_ci	    sed "s,$(CURDIR)/\./,$(CURDIR)/," > $@.in
314cabdff1aSopenharmony_ci	$(M)lcov -q --remove $@.in "/usr*" > $@
315cabdff1aSopenharmony_ci	$(Q)$(RM) $@.in
316cabdff1aSopenharmony_ci
317cabdff1aSopenharmony_cilcov:  TAG = GENHTML
318cabdff1aSopenharmony_cilcov: coverage.info
319cabdff1aSopenharmony_ci	$(M)genhtml -q -o $(CURDIR)/lcov $<
320cabdff1aSopenharmony_ci
321cabdff1aSopenharmony_cilcov-reset: TAG = LCOV
322cabdff1aSopenharmony_cilcov-reset:
323cabdff1aSopenharmony_ci	$(M)lcov -q -d $(CURDIR) --zerocounters
324cabdff1aSopenharmony_ci	$(Q)$(RM) -f coverage.info
325cabdff1aSopenharmony_ci
326cabdff1aSopenharmony_ciclean:: testclean
327cabdff1aSopenharmony_ci
328cabdff1aSopenharmony_citestclean::
329cabdff1aSopenharmony_ci	$(RM) -r tests/vsynth1 tests/data tools/lavfi-showfiltfmts$(PROGSSUF)$(EXESUF)
330cabdff1aSopenharmony_ci	$(RM) $(CLEANSUFFIXES:%=tests/%)
331cabdff1aSopenharmony_ci	$(RM) $(TESTTOOLS:%=tests/%$(HOSTEXESUF))
332cabdff1aSopenharmony_ci	$(RM) tests/pixfmts.mak tests/test_copy.ffmeta
333cabdff1aSopenharmony_ci
334cabdff1aSopenharmony_ci-include $(wildcard tests/*.d)
335cabdff1aSopenharmony_ci
336cabdff1aSopenharmony_ciinclude $(SRC_PATH)/tests/checkasm/Makefile
337cabdff1aSopenharmony_ci
338cabdff1aSopenharmony_ci.PHONY: fate* lcov lcov-reset
339cabdff1aSopenharmony_ci.INTERMEDIATE: coverage.info
340