[flac-dev] [PATCH] test_compression.sh
Jan Stary
hans at stare.cz
Wed Dec 3 14:27:40 PST 2014
* Use `mktemp` instead of playing with date(1).
* Use -f instead of removing the file every time.
* "echo ERROR; exit 1" is what die() is for.
* Some cosmetic renamings ('k' to 'comp' for compression etc).
* Remove the MacOSX comment. It's not MacOSX specific,
and it's not a problem anyway. The number behaves just right.
* Remove the $((${size}+10)). It's not needed, and it's a lie.
In fact, the actual test FAILs (369513 with -5 vs 369516 with -6),
but this +10 hides it!
Two more things not addressed in this diff:
1.
The input test file (noisy-sine.wav) needs to be present already,
probably as an artifact of some previous test. So ./test_compression
does not work standalone. I am leaving this till I figure out the right
uniform way for all the test* to have their test files generated.
2.
The 'wc -c' needs to actually read the whole file.
Not much work with noisy-sine.wav, but when we test with big files?
Why not "ls -l | awk '{print$5}'" ?
Put it in a function in common.sh, probably.
Jan
--- test_compression.sh.orig Wed Dec 3 22:53:11 2014
+++ test_compression.sh Wed Dec 3 23:01:16 2014
@@ -23,24 +23,22 @@ PATH=`pwd`/../src/flac:$PATH
echo "Using FLAC binary :" $(which flac)
-date=`date "+%Y%m%dT%H%M%S"`
-fname="comp${date}.flac"
+ofile=`mktemp`.$$
+ifile="noisy-sine.wav"
-last_k=0
-last_size=$(wc -c < noisy-sine.wav)
+prevcomp=0
+prevsize=`wc -c < $ifile`
+echo "Original file size $prevsize bytes."
-echo "Original file size ${last_size} bytes."
+for comp in 0 1 2 3 4 5 6 7 8 ; do
+ flac${EXE} -f -$comp --silent $ifile -o $ofile
+ size=`wc -c < $ofile`
+ echo Compression level $comp, file size $size bytes.
+ if test $prevsize -lt $size ; then
+ die "Error: level $prevcomp produces smaller file than $comp"
+ fi
+ prevsize=$size
+ prevcomp=$comp
+done
-for k in 0 1 2 3 4 5 6 7 8 ; do
- flac${EXE} -${k} --silent noisy-sine.wav -o ${fname}
- size=$(wc -c < ${fname})
- echo "Compression level ${k}, file size ${size} bytes."
- if test ${last_size} -lt ${size} ; then
- echo "Error : Compression ${last_k} size ${last_size} >= compression ${k} size ${size}."
- exit 1
- fi
- # Need this because OSX's 'wc -c' returns a number with leading whitespace.
- last_size=$((${size}+10))
- last_k=${k}
- rm -f ${fname}
- done
+rm -f $ofile
More information about the flac-dev
mailing list