Browse code

Move regression test dependencies to configure

This allows expressing complex dependencies more easily.

Originally committed as revision 24120 to svn://svn.ffmpeg.org/ffmpeg/trunk

Måns Rullgård authored on 2010/07/09 03:44:06
Showing 2 changed files
... ...
@@ -176,87 +176,6 @@ fulltest test: codectest lavftest seektest
176 176
 FFSERVER_REFFILE = $(SRC_PATH)/tests/ffserver.regression.ref
177 177
 SEEK_REFFILE     = $(SRC_PATH)/tests/seek.regression.ref
178 178
 
179
-ENCDEC = $(and $(CONFIG_$(1)_ENCODER),$(CONFIG_$(1)_DECODER))
180
-MUXDEM = $(and $(CONFIG_$(1)_MUXER),$(CONFIG_$(or $(2),$(1))_DEMUXER))
181
-
182
-VCODEC_TESTS =
183
-VCODEC_TESTS-$(call ENCDEC,ASV1)             += asv1
184
-VCODEC_TESTS-$(call ENCDEC,ASV2)             += asv2
185
-VCODEC_TESTS-$(call ENCDEC,DNXHD)            += dnxhd_1080i dnxhd_720p dnxhd_720p_rd
186
-VCODEC_TESTS-$(call ENCDEC,DVVIDEO)          += dv dv50
187
-VCODEC_TESTS-$(call ENCDEC,FFV1)             += ffv1
188
-VCODEC_TESTS-$(call ENCDEC,FLASHSV)          += flashsv
189
-VCODEC_TESTS-$(call ENCDEC,FLV)              += flv
190
-VCODEC_TESTS-$(call ENCDEC,H261)             += h261
191
-VCODEC_TESTS-$(call ENCDEC,H263)             += h263 h263p
192
-VCODEC_TESTS-$(call ENCDEC,HUFFYUV)          += huffyuv
193
-VCODEC_TESTS-$(call ENCDEC,JPEGLS)           += jpegls
194
-VCODEC_TESTS-$(call ENCDEC,MJPEG)            += mjpeg ljpeg
195
-VCODEC_TESTS-$(call ENCDEC,MPEG1VIDEO)       += mpeg mpeg1b
196
-VCODEC_TESTS-$(call ENCDEC,MPEG2VIDEO)       += mpeg2 mpeg2thread
197
-VCODEC_TESTS-$(call ENCDEC,MPEG4)            += mpeg4 mpeg4adv mpeg4nr mpeg4thread error rc
198
-VCODEC_TESTS-$(call ENCDEC,MSMPEG4V1)        += msmpeg4
199
-VCODEC_TESTS-$(call ENCDEC,MSMPEG4V2)        += msmpeg4v2
200
-VCODEC_TESTS-$(call ENCDEC,RAWVIDEO)         += rgb yuv
201
-VCODEC_TESTS-$(call ENCDEC,ROQ)              += roq
202
-VCODEC_TESTS-$(call ENCDEC,RV10)             += rv10
203
-VCODEC_TESTS-$(call ENCDEC,RV20)             += rv20
204
-VCODEC_TESTS-$(call ENCDEC,SNOW)             += snow snowll
205
-VCODEC_TESTS-$(call ENCDEC,SVQ1)             += svq1
206
-VCODEC_TESTS-$(call ENCDEC,WMV1)             += wmv1
207
-VCODEC_TESTS-$(call ENCDEC,WMV2)             += wmv2
208
-
209
-ACODEC_TESTS =
210
-ACODEC_TESTS-$(call ENCDEC,AC3)              += ac3
211
-ACODEC_TESTS-$(call ENCDEC,ADPCM_G726)       += g726
212
-ACODEC_TESTS-$(call ENCDEC,ADPCM_IMA_QT)     += adpcm_ima_qt
213
-ACODEC_TESTS-$(call ENCDEC,ADPCM_IMA_WAV)    += adpcm_ima_wav
214
-ACODEC_TESTS-$(call ENCDEC,ADPCM_MS)         += adpcm_ms
215
-ACODEC_TESTS-$(call ENCDEC,ADPCM_SWF)        += adpcm_swf
216
-ACODEC_TESTS-$(call ENCDEC,ADPCM_YAMAHA)     += adpcm_yam
217
-ACODEC_TESTS-$(call ENCDEC,ALAC)             += alac
218
-ACODEC_TESTS-$(call ENCDEC,FLAC)             += flac
219
-ACODEC_TESTS-$(call ENCDEC,MP2)              += mp2
220
-ACODEC_TESTS-$(call ENCDEC,PCM_S16LE)        += pcm         # fixme
221
-ACODEC_TESTS-$(call ENCDEC,WMAV1)            += wmav1
222
-ACODEC_TESTS-$(call ENCDEC,WMAV1)            += wmav2
223
-
224
-LAVF_TESTS =
225
-LAVF_TESTS-$(call MUXDEM,AIFF)               += aiff
226
-LAVF_TESTS-$(call MUXDEM,PCM_ALAW)           += alaw
227
-LAVF_TESTS-$(call MUXDEM,ASF)                += asf
228
-LAVF_TESTS-$(call MUXDEM,AU)                 += au
229
-LAVF_TESTS-$(call MUXDEM,AVI)                += avi
230
-LAVF_TESTS-$(call ENCDEC,BMP)                += bmp
231
-LAVF_TESTS-$(call MUXDEM,DV)                 += dv_fmt
232
-LAVF_TESTS-$(call MUXDEM,FFM)                += ffm
233
-LAVF_TESTS-$(call MUXDEM,FLV)                += flv_fmt
234
-LAVF_TESTS-$(call ENCDEC,GIF)                += gif
235
-LAVF_TESTS-$(call MUXDEM,GXF)                += gxf
236
-LAVF_TESTS-$(call ENCDEC,MJPEG)              += jpg
237
-LAVF_TESTS-$(call MUXDEM,MATROSKA)           += mkv
238
-LAVF_TESTS-$(call MUXDEM,MMF)                += mmf
239
-LAVF_TESTS-$(call MUXDEM,MOV)                += mov
240
-LAVF_TESTS-$(call MUXDEM,MPEG1SYSTEM,MPEGPS) += mpg
241
-LAVF_TESTS-$(call MUXDEM,PCM_MULAW)          += mulaw
242
-LAVF_TESTS-$(call MUXDEM,MXF)                += mxf
243
-LAVF_TESTS-$(call MUXDEM,NUT)                += nut
244
-LAVF_TESTS-$(call MUXDEM,OGG)                += ogg
245
-LAVF_TESTS-$(call ENCDEC,PBM)                += pbmpipe
246
-LAVF_TESTS-$(call ENCDEC,PCX)                += pcx
247
-LAVF_TESTS-$(call ENCDEC,PGM)                += pgm pgmpipe
248
-LAVF_TESTS-$(call MUXDEM,RAWVIDEO)           += pixfmt
249
-LAVF_TESTS-$(call ENCDEC,PPM)                += ppm ppmpipe
250
-LAVF_TESTS-$(call MUXDEM,RM)                 += rm
251
-LAVF_TESTS-$(call ENCDEC,SGI)                += sgi
252
-LAVF_TESTS-$(call MUXDEM,SWF)                += swf
253
-LAVF_TESTS-$(call ENCDEC,TARGA)              += tga
254
-LAVF_TESTS-$(call ENCDEC,TIFF)               += tiff
255
-LAVF_TESTS-$(call MUXDEM,MPEGTS)             += ts
256
-LAVF_TESTS-$(call MUXDEM,VOC)                += voc
257
-LAVF_TESTS-$(call MUXDEM,WAV)                += wav
258
-LAVF_TESTS-$(call MUXDEM,YUV4MPEGPIPE)       += yuv4mpeg
259
-
260 179
 LAVFI_TESTS =           \
261 180
     crop                \
262 181
     crop_scale          \
... ...
@@ -1396,6 +1396,97 @@ ffserver_extralibs='$ldl'
1396 1396
 
1397 1397
 doc_deps="texi2html"
1398 1398
 
1399
+# tests
1400
+
1401
+test_deps(){
1402
+    suf1=$1
1403
+    suf2=$2
1404
+    shift 2
1405
+    for v; do
1406
+        dep=${v%=*}
1407
+        tests=${v#*=}
1408
+        for name in ${tests}; do
1409
+            eval ${name}_test_deps="'${dep}$suf1 ${dep}$suf2'"
1410
+        done
1411
+    done
1412
+}
1413
+
1414
+test_deps _encoder _decoder                                             \
1415
+    ac3                                                                 \
1416
+    adpcm_g726=g726                                                     \
1417
+    adpcm_ima_qt                                                        \
1418
+    adpcm_ima_wav                                                       \
1419
+    adpcm_ms                                                            \
1420
+    adpcm_swf                                                           \
1421
+    adpcm_yamaha=adpcm_yam                                              \
1422
+    alac                                                                \
1423
+    asv1                                                                \
1424
+    asv2                                                                \
1425
+    bmp                                                                 \
1426
+    dnxhd="hdxhd_1080i dnxhd_720p dnxhd_720p_rd"                        \
1427
+    dvvideo="dv dv50"                                                   \
1428
+    ffv1                                                                \
1429
+    flac                                                                \
1430
+    flashsv                                                             \
1431
+    flv                                                                 \
1432
+    gif                                                                 \
1433
+    h261                                                                \
1434
+    h263="h263 h263p"                                                   \
1435
+    huffyuv                                                             \
1436
+    jpegls                                                              \
1437
+    mjpeg="jpg mjpeg ljpeg"                                             \
1438
+    mp2                                                                 \
1439
+    mpeg1video="mpeg mpeg1b"                                            \
1440
+    mpeg2video="mpeg2 mpeg2thread"                                      \
1441
+    mpeg4="mpeg4 mpeg4adv mpeg4nr mpeg4thread error rc"                 \
1442
+    msmpeg4v1=msmpeg4                                                   \
1443
+    msmpeg4v2                                                           \
1444
+    pbm=pbmpipe                                                         \
1445
+    pcx                                                                 \
1446
+    pgm="pgm pgmpipe"                                                   \
1447
+    ppm="ppm ppmpipe"                                                   \
1448
+    rawvideo="rgb yuv"                                                  \
1449
+    roq                                                                 \
1450
+    rv10                                                                \
1451
+    rv20                                                                \
1452
+    sgi                                                                 \
1453
+    snow="snow snowll"                                                  \
1454
+    svq1                                                                \
1455
+    targa=tga                                                           \
1456
+    tiff                                                                \
1457
+    wmav1                                                               \
1458
+    wmav2                                                               \
1459
+    wmv1                                                                \
1460
+    wmv2                                                                \
1461
+
1462
+test_deps _muxer _demuxer                                               \
1463
+    aiff                                                                \
1464
+    pcm_alaw=alaw                                                       \
1465
+    asf                                                                 \
1466
+    au                                                                  \
1467
+    avi                                                                 \
1468
+    dv=dv_fmt                                                           \
1469
+    ffm                                                                 \
1470
+    flv=flv_fmt                                                         \
1471
+    gxf                                                                 \
1472
+    matroska=mkv                                                        \
1473
+    mmf                                                                 \
1474
+    mov                                                                 \
1475
+    pcm_mulaw=mulaw                                                     \
1476
+    mxf                                                                 \
1477
+    nut                                                                 \
1478
+    ogg                                                                 \
1479
+    rawvideo=pixfmt                                                     \
1480
+    rm                                                                  \
1481
+    swf                                                                 \
1482
+    mpegts=ts                                                           \
1483
+    voc                                                                 \
1484
+    wav                                                                 \
1485
+    yuv4mpegpipe=yuv4mpeg                                               \
1486
+
1487
+mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
1488
+pcm_test_deps=$(echo pcm_{{a,mu}law,u8,s8,{s{16,24,32},f{32,64}}{be,le},s24daud,zork}_{en,de}coder)
1489
+
1399 1490
 # default parameters
1400 1491
 
1401 1492
 logfile="config.log"
... ...
@@ -1521,13 +1612,21 @@ INDEV_LIST=$(find_things    indev    _IN      libavdevice/alldevices.c)
1521 1521
 PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c)
1522 1522
 FILTER_LIST=$(find_things   filter   FILTER   libavfilter/allfilters.c)
1523 1523
 
1524
+find_tests(){
1525
+    map 'echo ${v}_test' $(ls "$source_path"/tests/ref/$1)
1526
+}
1527
+
1528
+ACODEC_TESTS=$(find_tests acodec)
1529
+VCODEC_TESTS=$(find_tests vsynth1)
1530
+LAVF_TESTS=$(find_tests lavf)
1531
+
1524 1532
 for n in $COMPONENT_LIST; do
1525 1533
     v=$(toupper ${n%s})_LIST
1526 1534
     eval enable \$$v
1527 1535
     eval ${n}_if_any="\$$v"
1528 1536
 done
1529 1537
 
1530
-enable $ARCH_EXT_LIST
1538
+enable $ARCH_EXT_LIST $ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS
1531 1539
 
1532 1540
 die_unknown(){
1533 1541
     echo "Unknown option \"$1\"."
... ...
@@ -2753,6 +2852,9 @@ check_deps $CONFIG_LIST       \
2753 2753
            $INDEV_LIST        \
2754 2754
            $OUTDEV_LIST       \
2755 2755
            $PROTOCOL_LIST     \
2756
+           $ACODEC_TESTS      \
2757
+           $VCODEC_TESTS      \
2758
+           $LAVF_TESTS        \
2756 2759
 
2757 2760
 enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
2758 2761
 
... ...
@@ -3023,6 +3125,12 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
3023 3023
                                       $INDEV_LIST        \
3024 3024
                                       $OUTDEV_LIST       \
3025 3025
 
3026
+cat >>config.mak <<EOF
3027
+ACODEC_TESTS=$(print_enabled -n _test $ACODEC_TESTS)
3028
+VCODEC_TESTS=$(print_enabled -n _test $VCODEC_TESTS)
3029
+LAVF_TESTS=$(print_enabled   -n _test $LAVF_TESTS)
3030
+EOF
3031
+
3026 3032
 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
3027 3033
 echo "endif # FFMPEG_CONFIG_MAK" >> config.mak
3028 3034