xref: /aosp_15_r20/external/flac/test/test_streams.sh (revision 600f14f40d737144c998e2ec7a483122d3776fbc)
1*600f14f4SXin Li#!/bin/sh -e
2*600f14f4SXin Li
3*600f14f4SXin Li#  FLAC - Free Lossless Audio Codec
4*600f14f4SXin Li#  Copyright (C) 2001-2009  Josh Coalson
5*600f14f4SXin Li#  Copyright (C) 2011-2023  Xiph.Org Foundation
6*600f14f4SXin Li#
7*600f14f4SXin Li#  This file is part the FLAC project.  FLAC is comprised of several
8*600f14f4SXin Li#  components distributed under different licenses.  The codec libraries
9*600f14f4SXin Li#  are distributed under Xiph.Org's BSD-like license (see the file
10*600f14f4SXin Li#  COPYING.Xiph in this distribution).  All other programs, libraries, and
11*600f14f4SXin Li#  plugins are distributed under the GPL (see COPYING.GPL).  The documentation
12*600f14f4SXin Li#  is distributed under the Gnu FDL (see COPYING.FDL).  Each file in the
13*600f14f4SXin Li#  FLAC distribution contains at the top the terms under which it may be
14*600f14f4SXin Li#  distributed.
15*600f14f4SXin Li#
16*600f14f4SXin Li#  Since this particular file is relevant to all components of FLAC,
17*600f14f4SXin Li#  it may be distributed under the Xiph.Org license, which is the least
18*600f14f4SXin Li#  restrictive of those mentioned above.  See the file COPYING.Xiph in this
19*600f14f4SXin Li#  distribution.
20*600f14f4SXin Li
21*600f14f4SXin Li. ./common.sh
22*600f14f4SXin Li
23*600f14f4SXin LiPATH=../src/flac:$PATH
24*600f14f4SXin LiPATH=../src/test_streams:$PATH
25*600f14f4SXin LiPATH=../objs/$BUILD/bin:$PATH
26*600f14f4SXin Li
27*600f14f4SXin Liif [ -z "$FLAC__TEST_LEVEL" ] ; then
28*600f14f4SXin Li	FLAC__TEST_LEVEL=1
29*600f14f4SXin Lifi
30*600f14f4SXin Li
31*600f14f4SXin Liflac${EXE} --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
32*600f14f4SXin Li
33*600f14f4SXin Lirun_flac ()
34*600f14f4SXin Li{
35*600f14f4SXin Li	if [ "$FLAC__TEST_WITH_VALGRIND" = yes ] ; then
36*600f14f4SXin Li		echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=50 flac $*" >>test_streams.valgrind.log
37*600f14f4SXin Li		valgrind --leak-check=yes --show-reachable=yes --num-callers=50 --log-fd=4 flac --no-error-on-compression-fail $* 4>>test_streams.valgrind.log
38*600f14f4SXin Li	else
39*600f14f4SXin Li		flac${EXE} --no-error-on-compression-fail $*
40*600f14f4SXin Li	fi
41*600f14f4SXin Li}
42*600f14f4SXin Li
43*600f14f4SXin Liecho "Generating streams..."
44*600f14f4SXin Liif [ ! -f wacky1.wav ] ; then
45*600f14f4SXin Li	test_streams || die "ERROR: missing files"
46*600f14f4SXin Lifi
47*600f14f4SXin Li
48*600f14f4SXin Li#
49*600f14f4SXin Li# single-file test routines
50*600f14f4SXin Li#
51*600f14f4SXin Li
52*600f14f4SXin Litest_file ()
53*600f14f4SXin Li{
54*600f14f4SXin Li	name=$1
55*600f14f4SXin Li	channels=$2
56*600f14f4SXin Li	bps=$3
57*600f14f4SXin Li	encode_options="$4"
58*600f14f4SXin Li
59*600f14f4SXin Li	echo $ECHO_N "$name (--channels=$channels --bps=$bps $encode_options): encode..." $ECHO_C
60*600f14f4SXin Li	cmd="run_flac --verify --silent --force --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --no-padding $name.raw"
61*600f14f4SXin Li	echo "### ENCODE $name #######################################################" >> ./streams.log
62*600f14f4SXin Li	echo "###    cmd=$cmd" >> ./streams.log
63*600f14f4SXin Li	$cmd 2>>./streams.log || die "ERROR during encode of $name"
64*600f14f4SXin Li
65*600f14f4SXin Li	echo $ECHO_N "decode..." $ECHO_C
66*600f14f4SXin Li	cmd="run_flac --silent --force --endian=little --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac"
67*600f14f4SXin Li	echo "### DECODE $name #######################################################" >> ./streams.log
68*600f14f4SXin Li	echo "###    cmd=$cmd" >> ./streams.log
69*600f14f4SXin Li	$cmd 2>>./streams.log || die "ERROR during decode of $name"
70*600f14f4SXin Li
71*600f14f4SXin Li	ls -1l $name.raw >> ./streams.log
72*600f14f4SXin Li	ls -1l $name.flac >> ./streams.log
73*600f14f4SXin Li	ls -1l $name.cmp >> ./streams.log
74*600f14f4SXin Li
75*600f14f4SXin Li	echo $ECHO_N "compare..." $ECHO_C
76*600f14f4SXin Li	cmp $name.raw $name.cmp || die "ERROR during compare of $name"
77*600f14f4SXin Li
78*600f14f4SXin Li	echo OK
79*600f14f4SXin Li}
80*600f14f4SXin Li
81*600f14f4SXin Litest_file_piped ()
82*600f14f4SXin Li{
83*600f14f4SXin Li	name=$1
84*600f14f4SXin Li	channels=$2
85*600f14f4SXin Li	bps=$3
86*600f14f4SXin Li	encode_options="$4"
87*600f14f4SXin Li
88*600f14f4SXin Li	if [ "$(env | grep -ic '^comspec=')" != 0 ] ; then
89*600f14f4SXin Li		is_win=yes
90*600f14f4SXin Li	else
91*600f14f4SXin Li		is_win=no
92*600f14f4SXin Li	fi
93*600f14f4SXin Li
94*600f14f4SXin Li	echo $ECHO_N "$name: encode via pipes..." $ECHO_C
95*600f14f4SXin Li	if [ $is_win = yes ] ; then
96*600f14f4SXin Li		cmd="run_flac --verify --silent --force --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --no-padding --stdout $name.raw"
97*600f14f4SXin Li		echo "### ENCODE $name #######################################################" >> ./streams.log
98*600f14f4SXin Li		echo "###    cmd=$cmd" >> ./streams.log
99*600f14f4SXin Li		$cmd 1>$name.flac 2>>./streams.log || die "ERROR during encode of $name"
100*600f14f4SXin Li	else
101*600f14f4SXin Li		cmd="run_flac --verify --silent --force --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --no-padding --stdout -"
102*600f14f4SXin Li		echo "### ENCODE $name #######################################################" >> ./streams.log
103*600f14f4SXin Li		echo "###    cmd=$cmd" >> ./streams.log
104*600f14f4SXin Li		$cmd < $name.raw 1>$name.flac 2>>./streams.log || die "ERROR during encode of $name"
105*600f14f4SXin Li	fi
106*600f14f4SXin Li	echo $ECHO_N "decode via pipes..." $ECHO_C
107*600f14f4SXin Li	if [ $is_win = yes ] ; then
108*600f14f4SXin Li		cmd="run_flac --silent --force --endian=little --sign=signed --decode --force-raw-format --stdout $name.flac"
109*600f14f4SXin Li		echo "### DECODE $name #######################################################" >> ./streams.log
110*600f14f4SXin Li		echo "###    cmd=$cmd" >> ./streams.log
111*600f14f4SXin Li		$cmd 1>$name.cmp 2>>./streams.log || die "ERROR during decode of $name"
112*600f14f4SXin Li	else
113*600f14f4SXin Li		cmd="run_flac --silent --force --endian=little --sign=signed --decode --force-raw-format --stdout -"
114*600f14f4SXin Li		echo "### DECODE $name #######################################################" >> ./streams.log
115*600f14f4SXin Li		echo "###    cmd=$cmd" >> ./streams.log
116*600f14f4SXin Li		$cmd < $name.flac 1>$name.cmp 2>>./streams.log || die "ERROR during decode of $name"
117*600f14f4SXin Li	fi
118*600f14f4SXin Li	ls -1l $name.raw >> ./streams.log
119*600f14f4SXin Li	ls -1l $name.flac >> ./streams.log
120*600f14f4SXin Li	ls -1l $name.cmp >> ./streams.log
121*600f14f4SXin Li
122*600f14f4SXin Li	echo $ECHO_N "compare..." $ECHO_C
123*600f14f4SXin Li	cmp $name.raw $name.cmp || die "ERROR during compare of $name"
124*600f14f4SXin Li
125*600f14f4SXin Li	echo OK
126*600f14f4SXin Li}
127*600f14f4SXin Li
128*600f14f4SXin Litest_corrupted_file ()
129*600f14f4SXin Li{
130*600f14f4SXin Li	name=$1
131*600f14f4SXin Li	channels=$2
132*600f14f4SXin Li	bps=$3
133*600f14f4SXin Li	encode_options="$4"
134*600f14f4SXin Li
135*600f14f4SXin Li	echo $ECHO_N "$name (--channels=$channels --bps=$bps $encode_options): encode..." $ECHO_C
136*600f14f4SXin Li	cmd="run_flac --verify --silent --no-padding --force --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --no-padding $name.raw"
137*600f14f4SXin Li	echo "### ENCODE $name #######################################################" >> ./streams.log
138*600f14f4SXin Li	echo "###    cmd=$cmd" >> ./streams.log
139*600f14f4SXin Li	$cmd 2>>./streams.log || die "ERROR during encode of $name"
140*600f14f4SXin Li
141*600f14f4SXin Li	filesize=$(wc -c < $name.flac)
142*600f14f4SXin Li	bs=$((filesize/13))
143*600f14f4SXin Li
144*600f14f4SXin Li	# Overwrite with 'garbagegarbagegarbage....'
145*600f14f4SXin Li	yes garbage 2>/dev/null | dd of=$name.flac conv=notrunc bs=$bs seek=1 count=2 2>> ./streams.log
146*600f14f4SXin Li	# Overwrite with 0x00
147*600f14f4SXin Li	dd if=/dev/zero of=$name.flac conv=notrunc bs=$bs seek=4 count=2 2>> ./streams.log
148*600f14f4SXin Li	# Overwrite with 0xFF
149*600f14f4SXin Li	tr '\0' '\377' < /dev/zero | dd of=$name.flac conv=notrunc bs=$bs seek=7 count=2 2>> ./streams.log
150*600f14f4SXin Li	# Remove section
151*600f14f4SXin Li	cp $name.flac $name.tmp.flac
152*600f14f4SXin Li	dd if=$name.tmp.flac of=$name.flac bs=$bs skip=12 seek=10 2>> ./streams.log
153*600f14f4SXin Li
154*600f14f4SXin Li	echo $ECHO_N "decode..." $ECHO_C
155*600f14f4SXin Li	cmd="run_flac --silent --decode-through-errors --force --endian=little --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac"
156*600f14f4SXin Li	echo "### DECODE $name.corrupt #######################################################" >> ./streams.log
157*600f14f4SXin Li	echo "###    cmd=$cmd" >> ./streams.log
158*600f14f4SXin Li	$cmd 2>>./streams.log || die "ERROR during decode of $name"
159*600f14f4SXin Li
160*600f14f4SXin Li	ls -1l $name.raw >> ./streams.log
161*600f14f4SXin Li	ls -1l $name.flac >> ./streams.log
162*600f14f4SXin Li	ls -1l $name.cmp >> ./streams.log
163*600f14f4SXin Li
164*600f14f4SXin Li	echo $ECHO_N "compare..." $ECHO_C
165*600f14f4SXin Li	if [ "$(wc -c < $name.raw)" -ne "$(wc -c < $name.cmp)" ]; then
166*600f14f4SXin Li		die "ERROR, length of decoded file not equal to length of original"
167*600f14f4SXin Li	fi
168*600f14f4SXin Li
169*600f14f4SXin Li	echo OK
170*600f14f4SXin Li}
171*600f14f4SXin Li
172*600f14f4SXin Liif [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
173*600f14f4SXin Li	max_lpc_order=32
174*600f14f4SXin Lielse
175*600f14f4SXin Li	max_lpc_order=16
176*600f14f4SXin Lifi
177*600f14f4SXin Li
178*600f14f4SXin Liecho "Testing noise through pipes..."
179*600f14f4SXin Litest_file_piped noise 1 8 "-0"
180*600f14f4SXin Li
181*600f14f4SXin Liecho "Testing small files..."
182*600f14f4SXin Litest_file test01 1 16 "-0 -l $max_lpc_order --lax -m -e -p"
183*600f14f4SXin Litest_file test02 2 16 "-0 -l $max_lpc_order --lax -m -e -p"
184*600f14f4SXin Litest_file test03 1 16 "-0 -l $max_lpc_order --lax -m -e -p"
185*600f14f4SXin Litest_file test04 2 16 "-0 -l $max_lpc_order --lax -m -e -p"
186*600f14f4SXin Li
187*600f14f4SXin Lifor bps in 8 16 24 32 ; do
188*600f14f4SXin Li	echo "Testing $bps-bit full-scale deflection streams..."
189*600f14f4SXin Li	for b in 01 02 03 04 05 06 07 ; do
190*600f14f4SXin Li		test_file fsd$bps-$b 1 $bps "-0 -l $max_lpc_order --lax -m -e -p"
191*600f14f4SXin Li	done
192*600f14f4SXin Lidone
193*600f14f4SXin Li
194*600f14f4SXin Liecho "Testing 16-bit wasted-bits-per-sample streams..."
195*600f14f4SXin Lifor b in 01 ; do
196*600f14f4SXin Li	test_file wbps16-$b 1 16 "-0 -l $max_lpc_order --lax -m -e -p"
197*600f14f4SXin Lidone
198*600f14f4SXin Li
199*600f14f4SXin Lifor bps in 8 16 24 32; do
200*600f14f4SXin Li	echo "Testing $bps-bit sine wave streams..."
201*600f14f4SXin Li	for b in 00 ; do
202*600f14f4SXin Li		test_file sine${bps}-$b 1 $bps "-0 -l $max_lpc_order --lax -m -e --sample-rate=48000"
203*600f14f4SXin Li	done
204*600f14f4SXin Li	for b in 01 ; do
205*600f14f4SXin Li		test_file sine${bps}-$b 1 $bps "-0 -l $max_lpc_order --lax -m -e --sample-rate=96000"
206*600f14f4SXin Li	done
207*600f14f4SXin Li	for b in 02 03 04 ; do
208*600f14f4SXin Li		test_file sine${bps}-$b 1 $bps "-0 -l $max_lpc_order --lax -m -e"
209*600f14f4SXin Li	done
210*600f14f4SXin Li	for b in 10 11 ; do
211*600f14f4SXin Li		test_file sine${bps}-$b 2 $bps "-0 -l $max_lpc_order --lax -m -e --sample-rate=48000"
212*600f14f4SXin Li	done
213*600f14f4SXin Li	for b in 12 ; do
214*600f14f4SXin Li		test_file sine${bps}-$b 2 $bps "-0 -l $max_lpc_order --lax -m -e --sample-rate=96000"
215*600f14f4SXin Li	done
216*600f14f4SXin Li	for b in 13 14 15 16 17 18 19 ; do
217*600f14f4SXin Li		test_file sine${bps}-$b 2 $bps "-0 -l $max_lpc_order --lax -m -e"
218*600f14f4SXin Li	done
219*600f14f4SXin Lidone
220*600f14f4SXin Li
221*600f14f4SXin Liecho "Testing blocksize variations..."
222*600f14f4SXin Lifor disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
223*600f14f4SXin Li	for blocksize in 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
224*600f14f4SXin Li		for lpc_order in 0 1 2 3 4 5 7 8 9 15 16 17 31 32 ; do
225*600f14f4SXin Li			if [ $lpc_order = 0 ] || [ $lpc_order -le $blocksize ] ; then
226*600f14f4SXin Li				test_file noise8m32 1 8 "-8 -p -e -l $lpc_order --lax --blocksize=$blocksize $disable"
227*600f14f4SXin Li			fi
228*600f14f4SXin Li		done
229*600f14f4SXin Li	done
230*600f14f4SXin Lidone
231*600f14f4SXin Li
232*600f14f4SXin Liecho "Testing blocksize variations with subdivide apodization..."
233*600f14f4SXin Lifor blocksize in 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
234*600f14f4SXin Li	for lpc_order in 0 1 2 3 4 5 7 8 9 15 16 17 31 32 ; do
235*600f14f4SXin Li		if [ $lpc_order = 0 ] || [ $lpc_order -le $blocksize ] ; then
236*600f14f4SXin Li			test_file noise8m32 1 8 "-8 -p -e -A \"subdivide_tukey(32)\" -l $lpc_order --lax --blocksize=$blocksize"
237*600f14f4SXin Li		fi
238*600f14f4SXin Li	done
239*600f14f4SXin Lidone
240*600f14f4SXin Li
241*600f14f4SXin Liecho "Testing some frame header variations..."
242*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax -b $max_lpc_order"
243*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax -b 65535"
244*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=9"
245*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=90"
246*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=90000"
247*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=9"
248*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=90"
249*600f14f4SXin Litest_file sine16-01 1 16 "-0 -l $max_lpc_order -m -e -p --lax --sample-rate=90000"
250*600f14f4SXin Li
251*600f14f4SXin Liecho "Testing option variations..."
252*600f14f4SXin Lifor f in 00 01 02 03 04 ; do
253*600f14f4SXin Li	for disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
254*600f14f4SXin Li		if [ -z "$disable" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
255*600f14f4SXin Li			for opt in 0 1 2 4 5 6 8 ; do
256*600f14f4SXin Li				for extras in '' '-p' '-e' ; do
257*600f14f4SXin Li					if [ -z "$extras" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
258*600f14f4SXin Li						test_file sine16-$f 1 16 "-$opt $extras $disable"
259*600f14f4SXin Li					fi
260*600f14f4SXin Li				done
261*600f14f4SXin Li			done
262*600f14f4SXin Li			if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
263*600f14f4SXin Li				test_file sine16-$f 1 16 "-b 16384 -m -r 8 -l $max_lpc_order --lax -e -p $disable"
264*600f14f4SXin Li			fi
265*600f14f4SXin Li		fi
266*600f14f4SXin Li	done
267*600f14f4SXin Lidone
268*600f14f4SXin Li
269*600f14f4SXin Lifor f in 10 11 12 13 14 15 16 17 18 19 ; do
270*600f14f4SXin Li	for disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
271*600f14f4SXin Li		if [ -z "$disable" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
272*600f14f4SXin Li			for opt in 0 1 2 4 5 6 8 ; do
273*600f14f4SXin Li				for extras in '' '-p' '-e' ; do
274*600f14f4SXin Li					if [ -z "$extras" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
275*600f14f4SXin Li						test_file sine16-$f 2 16 "-$opt $extras $disable"
276*600f14f4SXin Li					fi
277*600f14f4SXin Li				done
278*600f14f4SXin Li			done
279*600f14f4SXin Li			if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
280*600f14f4SXin Li				test_file sine16-$f 2 16 "-b 16384 -m -r 8 -l $max_lpc_order --lax -e -p $disable"
281*600f14f4SXin Li			fi
282*600f14f4SXin Li		fi
283*600f14f4SXin Li	done
284*600f14f4SXin Lidone
285*600f14f4SXin Li
286*600f14f4SXin Liecho "Testing corruption handling..."
287*600f14f4SXin Lifor bps in 8 16 24 ; do
288*600f14f4SXin Li	for f in 00 01 02 03 04 10 11 12 13 14 15 16 17 18 19; do
289*600f14f4SXin Li		for disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
290*600f14f4SXin Li			if [ -z "$disable" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
291*600f14f4SXin Li				for opt in 0 1 2 4 5 6 8 ; do
292*600f14f4SXin Li					for extras in '' '-p' '-e' ; do
293*600f14f4SXin Li						if [ -z "$extras" -o "$FLAC__TEST_LEVEL" -gt 0 ] && { [ "$bps" -eq 16 -a "$f" -lt 15 ] || [ "$FLAC__TEST_LEVEL" -gt 1 ]; } ; then
294*600f14f4SXin Li							if [ "$f" -lt 10 ] ; then
295*600f14f4SXin Li								test_corrupted_file sine$bps-$f 1 $bps "-$opt $extras $disable"
296*600f14f4SXin Li							else
297*600f14f4SXin Li								test_corrupted_file sine$bps-$f 2 $bps "-$opt $extras $disable"
298*600f14f4SXin Li							fi
299*600f14f4SXin Li						fi
300*600f14f4SXin Li					done
301*600f14f4SXin Li				done
302*600f14f4SXin Li			fi
303*600f14f4SXin Li		done
304*600f14f4SXin Li	done
305*600f14f4SXin Lidone
306*600f14f4SXin Li
307*600f14f4SXin Liecho "Testing noise..."
308*600f14f4SXin Lifor disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
309*600f14f4SXin Li	if [ -z "$disable" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
310*600f14f4SXin Li		for channels in 1 2 4 8 ; do
311*600f14f4SXin Li			if [ $channels -le 2 ] || [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
312*600f14f4SXin Li				for bps in 8 16 24 32; do
313*600f14f4SXin Li					for opt in 0 1 2 3 4 5 6 7 8 ; do
314*600f14f4SXin Li						for extras in '' '-p' '-e' ; do
315*600f14f4SXin Li                                                        if { [ -z "$extras" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ]; } && { [ "$extras" != '-p' ] || [ "$opt" -gt 2 ]; } ; then
316*600f14f4SXin Li								for blocksize in '' '--lax -b 32' '--lax -b 32768' '--lax -b 65535' ; do
317*600f14f4SXin Li									if [ -z "$blocksize" ] || [ "$FLAC__TEST_LEVEL" -gt 0 ] ; then
318*600f14f4SXin Li										test_file noise $channels $bps "-$opt $extras $blocksize $disable"
319*600f14f4SXin Li									fi
320*600f14f4SXin Li								done
321*600f14f4SXin Li							fi
322*600f14f4SXin Li						done
323*600f14f4SXin Li					done
324*600f14f4SXin Li					if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
325*600f14f4SXin Li						test_file noise $channels $bps "-b 16384 -m -r 8 -l $max_lpc_order --lax -e -p $disable"
326*600f14f4SXin Li					fi
327*600f14f4SXin Li				done
328*600f14f4SXin Li			fi
329*600f14f4SXin Li		done
330*600f14f4SXin Li	fi
331*600f14f4SXin Lidone
332