ppc chroma mess workaround (real bug is that the motion compensation code assumes...
[libav.git] / tests / regression.sh
CommitLineData
51133a7d
FB
1#!/bin/sh
2#
3# automatic regression test for ffmpeg
4#
5#
6#set -x
6e023978
RS
7# Even in the 21st century some diffs are not supporting -u.
8diff -u $0 $0 > /dev/null 2>&1
9if [ $? -eq 0 ]; then
10 diff_cmd="diff -u"
11else
12 diff_cmd="diff"
13fi
14
51133a7d
FB
15set -e
16
5bcfd1ad
FB
17datadir="./data"
18
19logfile="$datadir/ffmpeg.regression"
a12eea30 20outfile="$datadir/a-"
89d5dfd5 21
51133a7d
FB
22# tests to do
23if [ "$1" = "mpeg4" ] ; then
24 do_mpeg4=y
25elif [ "$1" = "mpeg" ] ; then
26 do_mpeg=y
7481e919
FB
27elif [ "$1" = "ac3" ] ; then
28 do_ac3=y
89d5dfd5
FB
29elif [ "$1" = "libavtest" ] ; then
30 do_libav=y
5bcfd1ad 31 logfile="$datadir/libav.regression"
a12eea30 32 outfile="$datadir/b-"
51133a7d
FB
33else
34 do_mpeg=y
922bc38d 35 do_mpeg2=y
6ebd933b 36 do_msmpeg4v2=y
51133a7d 37 do_msmpeg4=y
6ebd933b 38 do_wmv1=y
e23d5712 39 do_wmv2=y
51133a7d 40 do_h263=y
6e2d5f1a 41 do_h263p=y
51133a7d 42 do_mpeg4=y
e23d5712 43 do_huffyuv=y
51133a7d 44 do_mjpeg=y
3b37408b 45 do_ljpeg=y
64a7a8af 46 do_rv10=y
51133a7d
FB
47 do_mp2=y
48 do_ac3=y
311be1fb 49 do_g726=y
f02ab814
MN
50 do_adpcm_ima_wav=y
51 do_adpcm_ms=y
1dbb6d90
MN
52 do_rc=y
53 do_mpeg4adv=y
be408b67 54 do_mpeg4nr=y
cfadadec 55 do_mpeg1b=y
9ca9fce1 56 do_asv1=y
8d876a43 57 do_asv2=y
bbdd42d3 58 do_flv=y
f3203047 59 do_ffv1=y
7ebfc0ea 60 do_error=y
51133a7d
FB
61fi
62
63
64# various files
3aca208a 65ffmpeg="../ffmpeg_g"
67cbe681 66tiny_psnr="./tiny_psnr"
51133a7d 67reffile="$2"
5bcfd1ad 68benchfile="$datadir/ffmpeg.bench"
6afd3b92 69raw_src="$3/%d.pgm"
5bcfd1ad 70raw_dst="$datadir/out.yuv"
67cbe681 71raw_ref="$datadir/ref.yuv"
51133a7d 72pcm_src="asynth1.sw"
5bcfd1ad
FB
73pcm_dst="$datadir/out.wav"
74
75# create the data directory if it does not exists
76mkdir -p $datadir
51133a7d 77
3f027ca7 78do_ffmpeg()
51133a7d
FB
79{
80 f="$1"
81 shift
affd55a1
RS
82 echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $*
83 $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$
19a11db2 84 egrep -v "^(Stream|Press|Input|Output|frame| Stream| Duration)" /tmp/ffmpeg$$ || true
e31c1c30 85 rm -f /tmp/ffmpeg$$
3f027ca7 86 md5sum -b $f >> $logfile
67cbe681
MN
87 if [ $f = $raw_dst ] ; then
88 $tiny_psnr $f $raw_ref >> $logfile
89 fi
90cee0c3 90 expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp
5bcfd1ad 91 echo `cat $datadir/bench2.tmp` $f >> $benchfile
51133a7d
FB
92}
93
3f027ca7 94do_ffmpeg_crc()
89d5dfd5
FB
95{
96 f="$1"
97 shift
2ad1516a 98 echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc
affd55a1 99 $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc > /tmp/ffmpeg$$ 2>&1
19a11db2 100 egrep -v "^(Stream|Press|Input|Output|frame| Stream| Duration)" /tmp/ffmpeg$$ || true
affd55a1
RS
101 rm -f /tmp/ffmpeg$$
102 echo "$f `cat $datadir/ffmpeg.crc`" >> $logfile
89d5dfd5 103}
51133a7d 104
67cbe681
MN
105do_ffmpeg_nocheck()
106{
107 f="$1"
108 shift
affd55a1
RS
109 echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $*
110 $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$
19a11db2 111 egrep -v "^(Stream|Press|Input|Output|frame| Stream| Duration)" /tmp/ffmpeg$$ || true
affd55a1 112 rm -f /tmp/ffmpeg$$
67cbe681
MN
113 expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp
114 echo `cat $datadir/bench2.tmp` $f >> $benchfile
115}
116
51133a7d
FB
117echo "ffmpeg regression test" > $logfile
118echo "ffmpeg benchmarks" > $benchfile
119
120###################################
67cbe681
MN
121# generate reference for quality check
122do_ffmpeg_nocheck $raw_ref -y -f pgmyuv -i $raw_src -an -f rawvideo $raw_ref
123
124###################################
51133a7d
FB
125if [ -n "$do_mpeg" ] ; then
126# mpeg1 encoding
127file=${outfile}mpeg1.mpg
89d5dfd5 128do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpeg1video $file
51133a7d
FB
129
130# mpeg1 decoding
89d5dfd5 131do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
922bc38d
MN
132fi
133
134###################################
135if [ -n "$do_mpeg2" ] ; then
136# mpeg2 encoding
83dddc4a
FB
137file=${outfile}mpeg2.mpg
138do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -vcodec mpeg2video -f mpeg1video $file
139
140# mpeg2 decoding
141do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
142
143# mpeg2 encoding interlaced
144file=${outfile}mpeg2i.mpg
69768b77 145do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -vcodec mpeg2video -f mpeg1video -ildct -ilme $file
51133a7d
FB
146
147# mpeg2 decoding
922bc38d 148do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
51133a7d
FB
149fi
150
151###################################
6ebd933b
MN
152if [ -n "$do_msmpeg4v2" ] ; then
153# msmpeg4 encoding
154file=${outfile}msmpeg4v2.avi
155do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4v2 $file
156
157# msmpeg4v2 decoding
158do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
159fi
160
161###################################
51133a7d
FB
162if [ -n "$do_msmpeg4" ] ; then
163# msmpeg4 encoding
164file=${outfile}msmpeg4.avi
165do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4 $file
166
167# msmpeg4 decoding
168do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
169fi
170
171###################################
6ebd933b
MN
172if [ -n "$do_wmv1" ] ; then
173# wmv1 encoding
174file=${outfile}wmv1.avi
175do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv1 $file
176
177# wmv1 decoding
178do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
179fi
180
181###################################
e23d5712
MN
182if [ -n "$do_wmv2" ] ; then
183# wmv2 encoding
184file=${outfile}wmv2.avi
185do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv2 $file
186
187# wmv2 decoding
188do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
189fi
190
191###################################
51133a7d
FB
192if [ -n "$do_h263" ] ; then
193# h263 encoding
194file=${outfile}h263.avi
195do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263 $file
196
6e2d5f1a
MN
197# h263 decoding
198do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
199fi
200
201###################################
202if [ -n "$do_h263p" ] ; then
203# h263p encoding
204file=${outfile}h263p.avi
d7d24282 205do_ffmpeg $file -y -qscale 2 -umv -aiv -aic -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263p -ps 300 $file
6e2d5f1a 206
51133a7d
FB
207# h263p decoding
208do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
209fi
210
211###################################
212if [ -n "$do_mpeg4" ] ; then
213# mpeg4
28c70622 214file=${outfile}odivx.mp4
d3985de7 215do_ffmpeg $file -y -4mv -hq -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
51133a7d
FB
216
217# mpeg4 decoding
218do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
219fi
220
221###################################
e629ab68
RD
222if [ -n "$do_huffyuv" ] ; then
223# huffyuv
224file=${outfile}huffyuv.avi
225do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec huffyuv -strict -1 $file
226
227# huffyuv decoding
228do_ffmpeg $raw_dst -y -i $file -f rawvideo -strict -1 $raw_dst
229fi
230
231###################################
1dbb6d90
MN
232if [ -n "$do_rc" ] ; then
233# mpeg4 rate control
234file=${outfile}mpeg4-rc.avi
235do_ffmpeg $file -y -b 400 -bf 2 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
236
237# mpeg4 rate control decoding
238do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
239fi
240
241###################################
242if [ -n "$do_mpeg4adv" ] ; then
243# mpeg4
244file=${outfile}mpeg4-adv.avi
c0baa56a 245do_ffmpeg $file -y -qscale 9 -4mv -hq -part -ps 200 -aic -trell -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
1dbb6d90
MN
246
247# mpeg4 decoding
248do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
249fi
250
251###################################
7ebfc0ea
MN
252if [ -n "$do_error" ] ; then
253# damaged mpeg4
254file=${outfile}error-mpeg4-adv.avi
255do_ffmpeg $file -y -qscale 7 -4mv -mbd 2 -part -ps 250 -error 10 -aic -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
256
257# damaged mpeg4 decoding
258do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
259fi
260
261###################################
be408b67
MN
262if [ -n "$do_mpeg4nr" ] ; then
263# noise reduction
264file=${outfile}error-mpeg4-nr.avi
265do_ffmpeg $file -y -qscale 8 -4mv -mbd 2 -nr 200 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
266
267# mpeg4 decoding
268do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
269fi
270
271###################################
cfadadec
MN
272if [ -n "$do_mpeg1b" ] ; then
273# mpeg1
274file=${outfile}mpeg1b.mpg
83dddc4a 275do_ffmpeg $file -y -qscale 8 -bf 3 -ps 200 -f pgmyuv -i $raw_src -an -vcodec mpeg1video -f mpeg1video $file
cfadadec
MN
276
277# mpeg1 decoding
278do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
279fi
280
281###################################
51133a7d
FB
282if [ -n "$do_mjpeg" ] ; then
283# mjpeg
284file=${outfile}mjpeg.avi
285do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mjpeg $file
286
287# mjpeg decoding
288do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
289fi
290
291###################################
3b37408b
MN
292if [ -n "$do_ljpeg" ] ; then
293# ljpeg
294file=${outfile}ljpeg.avi
295do_ffmpeg $file -y -f pgmyuv -i $raw_src -an -vcodec ljpeg $file
296
297# ljpeg decoding
298do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
299fi
300
301###################################
51133a7d
FB
302if [ -n "$do_rv10" ] ; then
303# rv10 encoding
304file=${outfile}rv10.rm
305do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an $file
306
307# rv10 decoding
308do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
309fi
310
311###################################
9ca9fce1
MN
312if [ -n "$do_asv1" ] ; then
313# asv1 encoding
314file=${outfile}asv1.avi
315do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv1 $file
316
317# asv1 decoding
318do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
319fi
320
321###################################
8d876a43
MN
322if [ -n "$do_asv2" ] ; then
323# asv2 encoding
324file=${outfile}asv2.avi
325do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv2 $file
326
327# asv2 decoding
328do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
329fi
330
331###################################
bbdd42d3
MN
332if [ -n "$do_flv" ] ; then
333# flv encoding
334file=${outfile}flv.flv
335do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec flv $file
336
337# flv decoding
338do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
339fi
340
341###################################
f3203047
MN
342if [ -n "$do_ffv1" ] ; then
343# ffv1 encoding
344file=${outfile}ffv1.avi
345do_ffmpeg $file -y -strict -1 -f pgmyuv -i $raw_src -an -vcodec ffv1 $file
346
347# ffv1 decoding
348do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
349fi
350
351###################################
51133a7d
FB
352if [ -n "$do_mp2" ] ; then
353# mp2 encoding
354file=${outfile}mp2.mp2
355do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src $file
356
357# mp2 decoding
358do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
359fi
360
361###################################
362if [ -n "$do_ac3" ] ; then
363# ac3 encoding
364file=${outfile}ac3.rm
365do_ffmpeg $file -y -ab 128 -ac 2 -f s16le -i $pcm_src -vn $file
366
367# ac3 decoding
3c300082 368#do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
51133a7d
FB
369fi
370
89d5dfd5 371###################################
311be1fb
MN
372if [ -n "$do_g726" ] ; then
373# g726 encoding
374file=${outfile}g726.wav
375do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src -ab 32 -ac 1 -ar 8000 -acodec g726 $file
376
377# g726 decoding
378do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
379fi
380
381###################################
f02ab814
MN
382if [ -n "$do_adpcm_ima_wav" ] ; then
383# encoding
384file=${outfile}adpcm_ima.wav
385do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src -acodec adpcm_ima_wav $file
386
387# decoding
388do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
389fi
390
391###################################
392if [ -n "$do_adpcm_ms" ] ; then
393# encoding
394file=${outfile}adpcm_ms.wav
395do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src -acodec adpcm_ms $file
396
397# decoding
398do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
399fi
400
401###################################
89d5dfd5
FB
402# libav testing
403###################################
404
405if [ -n "$do_libav" ] ; then
406
407# avi
408file=${outfile}libav.avi
409do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
410do_ffmpeg_crc $file -i $file
411
412# asf
413file=${outfile}libav.asf
414do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
415do_ffmpeg_crc $file -i $file
416
417# rm
418file=${outfile}libav.rm
419do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
420# broken
421#do_ffmpeg_crc $file -i $file
422
423# mpegps
424file=${outfile}libav.mpg
425do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
426do_ffmpeg_crc $file -i $file
427
428# swf (decode audio only)
429file=${outfile}libav.swf
d0c30ca5
FB
430do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
431do_ffmpeg_crc $file -i $file
89d5dfd5
FB
432
433# ffm
434file=${outfile}libav.ffm
435do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
d0c30ca5 436do_ffmpeg_crc $file -i $file
89d5dfd5 437
bbdd42d3
MN
438# flv
439file=${outfile}libav.flv
440do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
441do_ffmpeg_crc $file -i $file
442
c280f2d7
MN
443# mov
444#file=${outfile}libav.mov
445#do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
446#do_ffmpeg_crc $file -i $file
447
448# nut
449file=${outfile}libav.nut
450do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
451do_ffmpeg_crc $file -i $file
452
453# XXX: need mpegts tests (add bitstreams or add output capability in ffmpeg)
89d5dfd5
FB
454
455####################
456# streamed images
457# mjpeg
affd55a1
RS
458#file=${outfile}libav.mjpeg
459#do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file
460#do_ffmpeg_crc $file -i $file
89d5dfd5 461
7481e919
FB
462# pbmpipe
463file=${outfile}libav.pbm
464do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
465do_ffmpeg_crc $file -f imagepipe -i $file
466
89d5dfd5 467# pgmpipe
7481e919
FB
468file=${outfile}libav.pgm
469do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
470do_ffmpeg_crc $file -f imagepipe -i $file
89d5dfd5
FB
471
472# ppmpipe
7481e919
FB
473file=${outfile}libav.ppm
474do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
475do_ffmpeg_crc $file -f imagepipe -i $file
89d5dfd5
FB
476
477# gif
478file=${outfile}libav.gif
7481e919
FB
479do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file
480#do_ffmpeg_crc $file -i $file
481
482# yuv4mpeg
483file=${outfile}libav.yuv4mpeg
484do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file
485#do_ffmpeg_crc $file -i $file
89d5dfd5
FB
486
487####################
488# image formats
489# pgm (we do not do md5 on image files yet)
490file=${outfile}libav%d.pgm
491$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
492do_ffmpeg_crc $file -i $file
493
494# ppm (we do not do md5 on image files yet)
495file=${outfile}libav%d.ppm
496$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
497do_ffmpeg_crc $file -i $file
498
d0c30ca5 499# jpeg (we do not do md5 on image files yet)
affd55a1
RS
500#file=${outfile}libav%d.jpg
501#$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
502#do_ffmpeg_crc $file -i $file
d0c30ca5 503
89d5dfd5
FB
504####################
505# audio only
506
507# wav
508file=${outfile}libav.wav
509do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
510do_ffmpeg_crc $file -i $file
511
512# alaw
513file=${outfile}libav.al
514do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
515do_ffmpeg_crc $file -i $file
516
517# mulaw
518file=${outfile}libav.ul
519do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
520do_ffmpeg_crc $file -i $file
521
522# au
523file=${outfile}libav.au
524do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
525do_ffmpeg_crc $file -i $file
526
affd55a1
RS
527####################
528# pix_fmt conversions
529conversions="yuv420p yuv422p yuv444p yuv422 yuv410p yuv411p yuvj420p \
530 yuvj422p yuvj444p rgb24 bgr24 rgba32 rgb565 rgb555 gray monow \
531 monob pal8"
532for pix_fmt in $conversions ; do
533 file=${outfile}libav-${pix_fmt}.yuv
534 do_ffmpeg_nocheck $file -r 1 -t 1 -y -f pgmyuv -i $raw_src \
535 -f rawvideo -s 352x288 -pix_fmt $pix_fmt $raw_dst
536 do_ffmpeg $file -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $raw_dst \
537 -f rawvideo -s 352x288 -pix_fmt yuv444p $file
538done
539
89d5dfd5
FB
540fi
541
542
51133a7d 543
6e023978 544if $diff_cmd $logfile $reffile ; then
51133a7d
FB
545 echo
546 echo Regression test succeeded.
547 exit 0
548else
549 echo
550 echo Regression test: Error.
551 exit 1
552fi