Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help satisfy gMock tests #174

Open
realies opened this issue Sep 9, 2022 · 3 comments
Open

Help satisfy gMock tests #174

realies opened this issue Sep 9, 2022 · 3 comments

Comments

@realies
Copy link

realies commented Sep 9, 2022

Recently audiowaveform was failing to build inside audiowaveform-docker's Dockerfile because of illegal cxx syntax. Building using cxx standard version 14 made it go through, although there are still issues with gMock tests that I would really like to resolve. I'm not sure if the errors are related to a similar cxx standard mismatch issue, or if the LAME library or other dependencies are causing tests to fail. Does anyone have any tips on how to debug or satisfy the following tests?

Dockerfile
FROM alpine:edge as builder
ENV COMMIT de4df58
RUN apk add --no-cache autoconf automake g++ gcc libtool make nasm ncurses-dev && \
	wget https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
	tar -xf lame-3.100.tar.gz && \
	cd lame-3.100 && \
	# fix for parallel builds
	mkdir -p libmp3lame/i386/.libs && \
	# fix for pic build with new nasm
	sed -i -e '/define sp/s/+/ + /g' libmp3lame/i386/nasm.h && \
	aclocal && automake --force --add-missing && \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--enable-nasm \
		--disable-mp3x \
		--disable-shared \
		--with-pic && \
	make -j $(nproc) && \
	make test && \
	make install
RUN apk add --no-cache autoconf automake g++ gcc libtool gettext git make && \
	git clone https://github.com/xiph/opus && \
	cd opus && \
	./autogen.sh && \
	./configure \
		--prefix=/usr \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--enable-custom-modes && \
	make -j $(nproc) && \
	make check && \
	make install
RUN apk add --no-cache cmake g++ gcc git samurai && \
	git clone https://github.com/xiph/ogg && \
	cd ogg && \
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=False \
		-DCMAKE_BUILD_TYPE=Release \
		$CMAKE_CROSSOPTS && \
	cmake --build build -j $(nproc) && \
	cmake --build build --target test -j $(nproc) && \
	cmake --install build
RUN apk add --no-cache autoconf automake libtool g++ gcc gettext git !libiconv make pkgconfig && \
	git clone https://github.com/xiph/flac && \
	cd flac && \
	./autogen.sh && \
	./configure \
		--prefix=/usr \
		--enable-shared=no \
		--enable-ogg \
		--disable-rpath \
		--with-pic && \
	make -j $(nproc) && \
	make check || true && \
	make install
RUN apk add --no-cache alsa-lib-dev cmake git flac-dev libvorbis-dev linux-headers python3 samurai && \
	git clone https://github.com/libsndfile/libsndfile && \
	cd libsndfile && \
	cmake -B build -G Ninja \
		-DBUILD_SHARED_LIBS=OFF \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DENABLE_MPEG=ON && \
	cmake --build build -j $(nproc) && \
	cd build && \
	CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E write_read_test_sd2 && \
	cd .. && \
	cmake --install build
RUN apk add --no-cache cmake g++ gcc git samurai zlib-dev && \
	git clone https://github.com/tenacityteam/libid3tag && \
	cd libid3tag && \
	cmake -B build -G Ninja \
		-DBUILD_SHARED_LIBS=OFF \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DENABLE_TESTS=YES \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib && \
	cmake --build build -j $(nproc) && \
	cd build && \
	CTEST_OUTPUT_ON_FAILURE=TRUE ctest && \
	cd .. && \
	cmake --install build
RUN apk add --no-cache boost-dev boost-static cmake g++ gcc gd-dev git libgd libmad-dev libpng-dev libpng-static libvorbis-static make zlib-dev zlib-static && \
	git clone -n https://github.com/bbc/audiowaveform.git && \
	cd audiowaveform && \
	git checkout ${COMMIT} && \
	git clone https://github.com/google/googletest && \
	mkdir build && \
	cd build && \
	cmake -DCMAKE_CXX_STANDARD=14 -D ENABLE_TESTS=1 -D BUILD_STATIC=1 .. && \
	make -j $(nproc) && \
	/audiowaveform/build/audiowaveform_tests && \
	make install && \
	strip /usr/local/bin/audiowaveform
FROM alpine:edge
RUN apk add --no-cache libstdc++
COPY --from=builder /usr/local/bin/audiowaveform /usr/local/bin/audiowaveform
ENTRYPOINT [ "audiowaveform" ]
CMD [ "--help" ]
gMock output
#12 51.56 Running main() from gmock_main.cc
#12 51.56 [==========] Running 227 tests from 18 test suites.
#12 51.56 [----------] Global test environment set-up.
#12 51.56 [----------] 3 tests from FileFormatTest
#12 51.56 [ RUN      ] FileFormatTest.shouldConvertFromString
#12 51.56 [       OK ] FileFormatTest.shouldConvertFromString (0 ms)
#12 51.56 [ RUN      ] FileFormatTest.shouldConvertToString
#12 51.56 [       OK ] FileFormatTest.shouldConvertToString (3 ms)
#12 51.56 [ RUN      ] FileFormatTest.shouldReturnFileExtension
#12 51.56 [       OK ] FileFormatTest.shouldReturnFileExtension (0 ms)
#12 51.56 [----------] 3 tests from FileFormatTest (3 ms total)
#12 51.56 
#12 51.56 [----------] 2 tests from FileUtilTest
#12 51.56 [ RUN      ] FileUtilTest.shouldReturnTrueIfFilenameIsStdio
#12 51.56 [       OK ] FileUtilTest.shouldReturnTrueIfFilenameIsStdio (0 ms)
#12 51.56 [ RUN      ] FileUtilTest.shouldReturnFalseIfFilenameIsNotStdio
#12 51.56 [       OK ] FileUtilTest.shouldReturnFalseIfFilenameIsNotStdio (0 ms)
#12 51.56 [----------] 2 tests from FileUtilTest (0 ms total)
#12 51.56 
#12 51.56 [----------] 9 tests from GdImageRendererTest
#12 51.56 [ RUN      ] GdImageRendererTest.shouldRenderImageWithAxisLabels
#12 51.57 [       OK ] GdImageRendererTest.shouldRenderImageWithAxisLabels (8 ms)
#12 51.57 [ RUN      ] GdImageRendererTest.shouldRenderImageWithoutAxisLabels
#12 51.58 [       OK ] GdImageRendererTest.shouldRenderImageWithoutAxisLabels (8 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfImageWidthIsLessThanMinimum
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfImageWidthIsLessThanMinimum (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfImageHeightIsLessThanMinimum
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfImageHeightIsLessThanMinimum (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfSampleRateIsZero
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfSampleRateIsZero (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfSampleRateIsNegative
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfSampleRateIsNegative (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfScaleIsZero
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfScaleIsZero (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfScaleIsNegative
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfScaleIsNegative (0 ms)
#12 51.58 [ RUN      ] GdImageRendererTest.shouldReportErrorIfWaveformBufferIsEmpty
#12 51.58 [       OK ] GdImageRendererTest.shouldReportErrorIfWaveformBufferIsEmpty (0 ms)
#12 51.58 [----------] 9 tests from GdImageRendererTest (16 ms total)
#12 51.58 
#12 51.58 [----------] 16 tests from MathUtilTest
#12 51.58 [ RUN      ] MathUtilTest.shouldRoundDownToNearestInteger
#12 51.58 [       OK ] MathUtilTest.shouldRoundDownToNearestInteger (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRoundUpToNearestInteger
#12 51.58 [       OK ] MathUtilTest.shouldRoundUpToNearestInteger (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseInteger
#12 51.58 [       OK ] MathUtilTest.shouldParseInteger (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseIntegerWithPositiveSign
#12 51.58 [       OK ] MathUtilTest.shouldParseIntegerWithPositiveSign (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseNegativeInteger
#12 51.58 [       OK ] MathUtilTest.shouldParseNegativeInteger (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseDecimal
#12 51.58 [       OK ] MathUtilTest.shouldParseDecimal (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseIntegerWithLeadingZeros
#12 51.58 [       OK ] MathUtilTest.shouldParseIntegerWithLeadingZeros (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldParseSmallNumber
#12 51.58 [       OK ] MathUtilTest.shouldParseSmallNumber (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRejectEmptyString
#12 51.58 [       OK ] MathUtilTest.shouldRejectEmptyString (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRejectNonNumber
#12 51.58 [       OK ] MathUtilTest.shouldRejectNonNumber (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRejectNumberPrecededByWhitespace
#12 51.58 [       OK ] MathUtilTest.shouldRejectNumberPrecededByWhitespace (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRejectNumberFollowedByWhitespace
#12 51.58 [       OK ] MathUtilTest.shouldRejectNumberFollowedByWhitespace (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldRejectNumberFollowedByText
#12 51.58 [       OK ] MathUtilTest.shouldRejectNumberFollowedByText (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldMultiplyNumber
#12 51.58 [       OK ] MathUtilTest.shouldMultiplyNumber (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldClampIfAboveUpperLimit
#12 51.58 [       OK ] MathUtilTest.shouldClampIfAboveUpperLimit (0 ms)
#12 51.58 [ RUN      ] MathUtilTest.shouldClampIfBelowLowerLimit
#12 51.58 [       OK ] MathUtilTest.shouldClampIfBelowLowerLimit (0 ms)
#12 51.58 [----------] 16 tests from MathUtilTest (0 ms total)
#12 51.58 
#12 51.58 [----------] 8 tests from Mp3AudioFileReaderTest
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldOpenMp3File
#12 51.58 [       OK ] Mp3AudioFileReaderTest.shouldOpenMp3File (0 ms)
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldReportErrorIfFileNotFound
#12 51.58 [       OK ] Mp3AudioFileReaderTest.shouldReportErrorIfFileNotFound (0 ms)
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldFailToProcessIfFileNotOpen
#12 51.58 [       OK ] Mp3AudioFileReaderTest.shouldFailToProcessIfFileNotOpen (0 ms)
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldProcessStereoMp3File
#12 51.58 [       OK ] Mp3AudioFileReaderTest.shouldProcessStereoMp3File (5 ms)
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldProcessMonoMp3File
#12 51.58 [       OK ] Mp3AudioFileReaderTest.shouldProcessMonoMp3File (2 ms)
#12 51.58 [ RUN      ] Mp3AudioFileReaderTest.shouldProcessMp3FileWithId3Tags
#12 51.59 [       OK ] Mp3AudioFileReaderTest.shouldProcessMp3FileWithId3Tags (0 ms)
#12 51.59 [ RUN      ] Mp3AudioFileReaderTest.shouldAccountForDecodingDelay
#12 51.59 [       OK ] Mp3AudioFileReaderTest.shouldAccountForDecodingDelay (4 ms)
#12 51.59 [ RUN      ] Mp3AudioFileReaderTest.shouldNotProcessFileMoreThanOnce
#12 51.59 [       OK ] Mp3AudioFileReaderTest.shouldNotProcessFileMoreThanOnce (2 ms)
#12 51.59 [----------] 8 tests from Mp3AudioFileReaderTest (16 ms total)
#12 51.59 
#12 51.59 [----------] 67 tests from OptionsTest
#12 51.59 [ RUN      ] OptionsTest.shouldReportErrorIfNoOptionsGiven
#12 51.59 [       OK ] OptionsTest.shouldReportErrorIfNoOptionsGiven (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnFilenamesWithLongArgs
#12 51.59 [       OK ] OptionsTest.shouldReturnFilenamesWithLongArgs (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnFilenamesWithShortArgs
#12 51.59 [       OK ] OptionsTest.shouldReturnFilenamesWithShortArgs (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingInputFilename
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfMissingInputFilename (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingOutputFilename
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfMissingOutputFilename (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnDefaultOptions
#12 51.59 [       OK ] OptionsTest.shouldReturnDefaultOptions (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnStartTimeWithLongArg
#12 51.59 [       OK ] OptionsTest.shouldReturnStartTimeWithLongArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnStartTimeWithShortArg
#12 51.59 [       OK ] OptionsTest.shouldReturnStartTimeWithShortArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidStartTime
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidStartTime (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingStartTime
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfMissingStartTime (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnEndTimeWithLongArg
#12 51.59 [       OK ] OptionsTest.shouldReturnEndTimeWithLongArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnEndTimeWithShortArg
#12 51.59 [       OK ] OptionsTest.shouldReturnEndTimeWithShortArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidEndTime
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidEndTime (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingEndTime
#12 51.59 [       OK ] OptionsTest.shouldDisplayErrorIfMissingEndTime (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnDefaultEndTime
#12 51.59 [       OK ] OptionsTest.shouldReturnDefaultEndTime (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnWidthWithLongArg
#12 51.59 [       OK ] OptionsTest.shouldReturnWidthWithLongArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldReturnWidthWithShortArg
#12 51.59 [       OK ] OptionsTest.shouldReturnWidthWithShortArg (0 ms)
#12 51.59 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidWidth
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidWidth (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingWidth
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfMissingWidth (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnHeightWithLongArg
#12 51.60 [       OK ] OptionsTest.shouldReturnHeightWithLongArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnHeightWithShortArg
#12 51.60 [       OK ] OptionsTest.shouldReturnHeightWithShortArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidHeight
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidHeight (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingHeight
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfMissingHeight (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultAmplitudeScale
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultAmplitudeScale (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnAmplitudeScale
#12 51.60 [       OK ] OptionsTest.shouldReturnAmplitudeScale (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnAutoAmplitudeScale
#12 51.60 [       OK ] OptionsTest.shouldReturnAutoAmplitudeScale (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfAmplitudeScaleInvalid
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfAmplitudeScaleInvalid (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfAmplitudeScaleIsNegative
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfAmplitudeScaleIsNegative (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnZoomWithLongArg
#12 51.60 [       OK ] OptionsTest.shouldReturnZoomWithLongArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnZoomWithShortArg
#12 51.60 [       OK ] OptionsTest.shouldReturnZoomWithShortArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultZoomOption
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultZoomOption (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnAutoZoomOption
#12 51.60 [       OK ] OptionsTest.shouldReturnAutoZoomOption (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidZoom
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidZoom (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfZoomValueTooLarge
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfZoomValueTooLarge (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingZoom
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfMissingZoom (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnPixelsPerSecond
#12 51.60 [       OK ] OptionsTest.shouldReturnPixelsPerSecond (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultPixelsPerSecondOption
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultPixelsPerSecondOption (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidPixelsPerSecond
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidPixelsPerSecond (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingPixelsPerSecond
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfMissingPixelsPerSecond (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfPixelsPerSecondValueTooLarge
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfPixelsPerSecondValueTooLarge (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnBitsWithLongArg
#12 51.60 [       OK ] OptionsTest.shouldReturnBitsWithLongArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnBitsWithShortArg
#12 51.60 [       OK ] OptionsTest.shouldReturnBitsWithShortArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfBitsInvalid
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfBitsInvalid (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidBits
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidBits (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfMissingBits
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfMissingBits (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultBitsOption
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultBitsOption (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisableAxisLabelRendering
#12 51.60 [       OK ] OptionsTest.shouldDisableAxisLabelRendering (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldEnableAxisLabelRendering
#12 51.60 [       OK ] OptionsTest.shouldEnableAxisLabelRendering (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldEnableAxisLabelRenderingByDefault
#12 51.60 [       OK ] OptionsTest.shouldEnableAxisLabelRenderingByDefault (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultPngCompressionLevel
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultPngCompressionLevel (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnPngCompressionLevel
#12 51.60 [       OK ] OptionsTest.shouldReturnPngCompressionLevel (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfInvalidPngCompressionLevel
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfInvalidPngCompressionLevel (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnInputFormat
#12 51.60 [       OK ] OptionsTest.shouldReturnInputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldAcceptInvalidInputFormat
#12 51.60 [       OK ] OptionsTest.shouldAcceptInvalidInputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnOutputFormat
#12 51.60 [       OK ] OptionsTest.shouldReturnOutputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldAcceptInvalidOutputFormat
#12 51.60 [       OK ] OptionsTest.shouldAcceptInvalidOutputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldRequireEitherInputFilenameOrInputFormat
#12 51.60 [       OK ] OptionsTest.shouldRequireEitherInputFilenameOrInputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldRequireEitherOutputFilenameOrOutputFormat
#12 51.60 [       OK ] OptionsTest.shouldRequireEitherOutputFilenameOrOutputFormat (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnHelpFlag
#12 51.60 [       OK ] OptionsTest.shouldReturnHelpFlag (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnVersionFlagWithLongArg
#12 51.60 [       OK ] OptionsTest.shouldReturnVersionFlagWithLongArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnVersionFlagWithShortArg
#12 51.60 [       OK ] OptionsTest.shouldReturnVersionFlagWithShortArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfUnknownLongArg
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfUnknownLongArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldDisplayErrorIfUnknownShortArg
#12 51.60 [       OK ] OptionsTest.shouldDisplayErrorIfUnknownShortArg (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldOutputVersionInfo
#12 51.60 [       OK ] OptionsTest.shouldOutputVersionInfo (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldOutputUsageInfo
#12 51.60 [       OK ] OptionsTest.shouldOutputUsageInfo (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnQuietOption
#12 51.60 [       OK ] OptionsTest.shouldReturnQuietOption (0 ms)
#12 51.60 [ RUN      ] OptionsTest.shouldReturnDefaultQuietOption
#12 51.60 [       OK ] OptionsTest.shouldReturnDefaultQuietOption (0 ms)
#12 51.60 [----------] 67 tests from OptionsTest (6 ms total)
#12 51.60 
#12 51.60 [----------] 49 tests from OptionHandlerTest
#12 51.60 [ RUN      ] OptionHandlerTest.shouldConvertMp3ToWavAudio
#12 51.61 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.61 Value of: test_data[i]
#12 51.61 Expected: is equal to '\xD5' (213)
#12 51.61   Actual: '\xD0' (208) (of type unsigned char)
#12 51.61 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.61 Value of: test_data[i]
#12 51.61 Expected: is equal to '\xD5' (213)
#12 51.61   Actual: '\xD0' (208) (of type unsigned char)
#12 51.62 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.62 Value of: test_data[i]
#12 51.62 Expected: is equal to '\xD5' (213)
#12 51.62   Actual: '\xD0' (208) (of type unsigned char)
#12 51.62 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.62 Value of: test_data[i]
#12 51.62 Expected: is equal to '\xD5' (213)
#12 51.62   Actual: '\xD0' (208) (of type unsigned char)
#12 51.62 [  FAILED  ] OptionHandlerTest.shouldConvertMp3ToWavAudio (24 ms)
#12 51.62 [ RUN      ] OptionHandlerTest.shouldNotConvertWavToMp3Audio
#12 51.63 [       OK ] OptionHandlerTest.shouldNotConvertWavToMp3Audio (5 ms)
#12 51.63 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromWavAudio
#12 51.64 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromWavAudio (9 ms)
#12 51.64 [ RUN      ] OptionHandlerTest.shouldGenerate2ChannelBinaryWaveformDataFromWavAudio
#12 51.65 [       OK ] OptionHandlerTest.shouldGenerate2ChannelBinaryWaveformDataFromWavAudio (9 ms)
#12 51.65 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromFloatingPointWavAudio
#12 51.66 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromFloatingPointWavAudio (9 ms)
#12 51.66 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromMp3Audio
#12 51.67 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.67 Value of: test_data[i]
#12 51.67 Expected: is equal to '\x6' (6)
#12 51.67   Actual: '\x5' (5) (of type unsigned char)
#12 51.67 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.67 Value of: test_data[i]
#12 51.67 Expected: is equal to '\x6' (6)
#12 51.67   Actual: '\x5' (5) (of type unsigned char)
#12 51.68 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.68 Value of: test_data[i]
#12 51.68 Expected: is equal to '\x6' (6)
#12 51.68   Actual: '\x5' (5) (of type unsigned char)
#12 51.69 /audiowaveform/test/OptionHandlerTest.cpp:81: Failure
#12 51.69 Value of: test_data[i]
#12 51.69 Expected: is equal to '\x6' (6)
#12 51.69   Actual: '\x5' (5) (of type unsigned char)
#12 51.69 [  FAILED  ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromMp3Audio (29 ms)
#12 51.69 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromFlacAudio
#12 51.71 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromFlacAudio (17 ms)
#12 51.71 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromOggVorbisAudio
#12 51.74 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromOggVorbisAudio (28 ms)
#12 51.74 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromOpusAudioIfSupported
#12 51.78 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromOpusAudioIfSupported (47 ms)
#12 51.78 [ RUN      ] OptionHandlerTest.shouldNotGenerateBinaryWaveformDataFromOpusAudioIfNotSupported
#12 51.78 [       OK ] OptionHandlerTest.shouldNotGenerateBinaryWaveformDataFromOpusAudioIfNotSupported (0 ms)
#12 51.78 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromWavAudio
#12 51.79 [       OK ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromWavAudio (9 ms)
#12 51.79 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromMp3Audio
#12 51.80 /audiowaveform/test/OptionHandlerTest.cpp:76: Failure
#12 51.80 Value of: test_data.size()
#12 51.80 Expected: is equal to 10691
#12 51.80   Actual: 10690 (of type unsigned long)
#12 51.81 /audiowaveform/test/OptionHandlerTest.cpp:76: Failure
#12 51.81 Value of: test_data.size()
#12 51.81 Expected: is equal to 10691
#12 51.81   Actual: 10690 (of type unsigned long)
#12 51.81 /audiowaveform/test/OptionHandlerTest.cpp:76: Failure
#12 51.81 Value of: test_data.size()
#12 51.81 Expected: is equal to 10691
#12 51.81   Actual: 10690 (of type unsigned long)
#12 51.82 /audiowaveform/test/OptionHandlerTest.cpp:76: Failure
#12 51.82 Value of: test_data.size()
#12 51.82 Expected: is equal to 10691
#12 51.82   Actual: 10690 (of type unsigned long)
#12 51.82 [  FAILED  ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromMp3Audio (29 ms)
#12 51.82 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromFlacAudio
#12 51.84 [       OK ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromFlacAudio (17 ms)
#12 51.84 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromOggVorbisAudio
#12 51.87 [       OK ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromOggVorbisAudio (28 ms)
#12 51.87 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromOpusAudioIfSupported
#12 51.92 [       OK ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromOpusAudioIfSupported (47 ms)
#12 51.92 [ RUN      ] OptionHandlerTest.shouldNotGenerateJsonWaveformDataFromOpusAudioIfNotSupported
#12 51.92 [       OK ] OptionHandlerTest.shouldNotGenerateJsonWaveformDataFromOpusAudioIfNotSupported (0 ms)
#12 51.92 [ RUN      ] OptionHandlerTest.shouldGenerateBinaryWaveformDataWithAutoAmplitudeScale
#12 51.92 [       OK ] OptionHandlerTest.shouldGenerateBinaryWaveformDataWithAutoAmplitudeScale (8 ms)
#12 51.92 [ RUN      ] OptionHandlerTest.shouldGenerateJsonWaveformDataWithAutoAmplitudeScale
#12 51.93 [       OK ] OptionHandlerTest.shouldGenerateJsonWaveformDataWithAutoAmplitudeScale (8 ms)
#12 51.93 [ RUN      ] OptionHandlerTest.shouldConvertBinaryWaveformDataToJson
#12 51.94 [       OK ] OptionHandlerTest.shouldConvertBinaryWaveformDataToJson (6 ms)
#12 51.94 [ RUN      ] OptionHandlerTest.shouldConvert2ChannelBinaryWaveformDataToJson
#12 51.95 [       OK ] OptionHandlerTest.shouldConvert2ChannelBinaryWaveformDataToJson (14 ms)
#12 51.95 [ RUN      ] OptionHandlerTest.shouldConvertBinaryWaveformDataToText
#12 51.96 [       OK ] OptionHandlerTest.shouldConvertBinaryWaveformDataToText (7 ms)
#12 51.96 [ RUN      ] OptionHandlerTest.shouldConvert2ChannelBinaryWaveformDataToText
#12 51.98 [       OK ] OptionHandlerTest.shouldConvert2ChannelBinaryWaveformDataToText (15 ms)
#12 51.98 [ RUN      ] OptionHandlerTest.shouldNotConvertJsonWaveformDataToBinary
#12 51.98 [       OK ] OptionHandlerTest.shouldNotConvertJsonWaveformDataToBinary (5 ms)
#12 51.98 [ RUN      ] OptionHandlerTest.shouldNotConvertJsonWaveformDataToText
#12 51.99 [       OK ] OptionHandlerTest.shouldNotConvertJsonWaveformDataToText (5 ms)
#12 51.99 [ RUN      ] OptionHandlerTest.shouldNotConvertTextWaveformDataToBinary
#12 51.99 [       OK ] OptionHandlerTest.shouldNotConvertTextWaveformDataToBinary (5 ms)
#12 51.99 [ RUN      ] OptionHandlerTest.shouldNotConvertTextWaveformDataToJson
#12 52.00 [       OK ] OptionHandlerTest.shouldNotConvertTextWaveformDataToJson (5 ms)
#12 52.00 [ RUN      ] OptionHandlerTest.shouldRenderSingleChannelWaveformImageWithCorrectAmplitudeScale
#12 52.05 [       OK ] OptionHandlerTest.shouldRenderSingleChannelWaveformImageWithCorrectAmplitudeScale (51 ms)
#12 52.05 [ RUN      ] OptionHandlerTest.shouldRenderTwoChannelWaveformImageWithCorrectAmplitudeScale
#12 52.10 [       OK ] OptionHandlerTest.shouldRenderTwoChannelWaveformImageWithCorrectAmplitudeScale (51 ms)
#12 52.10 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromBinaryWaveformData
#12 52.16 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromBinaryWaveformData (54 ms)
#12 52.16 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromFloatingPointWavAudio
#12 52.21 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromFloatingPointWavAudio (55 ms)
#12 52.21 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromWavAudio
#12 52.27 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromWavAudio (53 ms)
#12 52.27 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromMp3Audio
#12 52.28 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.28 Value of: test_pixel
#12 52.28 Expected: is equal to 4148635
#12 52.28   Actual: 14079702 (of type int)
#12 52.30 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.30 Value of: test_pixel
#12 52.30 Expected: is equal to 4148635
#12 52.30   Actual: 14079702 (of type int)
#12 52.32 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.32 Value of: test_pixel
#12 52.32 Expected: is equal to 4148635
#12 52.32   Actual: 14079702 (of type int)
#12 52.33 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.33 Value of: test_pixel
#12 52.33 Expected: is equal to 4148635
#12 52.33   Actual: 14079702 (of type int)
#12 52.33 [  FAILED  ] OptionHandlerTest.shouldRenderWaveformImageFromMp3Audio (69 ms)
#12 52.33 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromFlacAudio
#12 52.40 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromFlacAudio (61 ms)
#12 52.40 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromOggVorbisAudio
#12 52.47 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromOggVorbisAudio (71 ms)
#12 52.47 [ RUN      ] OptionHandlerTest.shouldRenderWaveformImageFromOpusAudioIfSupported
#12 52.56 [       OK ] OptionHandlerTest.shouldRenderWaveformImageFromOpusAudioIfSupported (92 ms)
#12 52.56 [ RUN      ] OptionHandlerTest.shouldNotRenderWaveformImageFromOpusAudioIfNotSupported
#12 52.56 [       OK ] OptionHandlerTest.shouldNotRenderWaveformImageFromOpusAudioIfNotSupported (0 ms)
#12 52.56 [ RUN      ] OptionHandlerTest.shouldRenderWaveformWithColorScheme
#12 52.61 [       OK ] OptionHandlerTest.shouldRenderWaveformWithColorScheme (51 ms)
#12 52.61 [ RUN      ] OptionHandlerTest.shouldRenderWaveformWithSpecifiedColors
#12 52.67 [       OK ] OptionHandlerTest.shouldRenderWaveformWithSpecifiedColors (62 ms)
#12 52.67 [ RUN      ] OptionHandlerTest.shouldRenderWaveformWithNoAxisLabels
#12 52.73 [       OK ] OptionHandlerTest.shouldRenderWaveformWithNoAxisLabels (51 ms)
#12 52.73 [ RUN      ] OptionHandlerTest.shouldRenderWaveformWithFixedAmplitudeScale
#12 52.78 [       OK ] OptionHandlerTest.shouldRenderWaveformWithFixedAmplitudeScale (50 ms)
#12 52.78 [ RUN      ] OptionHandlerTest.shouldRenderWaveformWithAutoAmplitudeScale
#12 52.83 [       OK ] OptionHandlerTest.shouldRenderWaveformWithAutoAmplitudeScale (51 ms)
#12 52.83 [ RUN      ] OptionHandlerTest.shouldRenderWaveformFitToImageWidthFromMp3
#12 52.84 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.84 Value of: test_pixel
#12 52.84 Expected: is equal to 4148635
#12 52.84   Actual: 14079702 (of type int)
#12 52.86 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.86 Value of: test_pixel
#12 52.86 Expected: is equal to 4148635
#12 52.86   Actual: 14079702 (of type int)
#12 52.87 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.87 Value of: test_pixel
#12 52.87 Expected: is equal to 4148635
#12 52.87   Actual: 14079702 (of type int)
#12 52.89 /audiowaveform/test/OptionHandlerTest.cpp:135: Failure
#12 52.89 Value of: test_pixel
#12 52.89 Expected: is equal to 4148635
#12 52.89   Actual: 14079702 (of type int)
#12 52.89 [  FAILED  ] OptionHandlerTest.shouldRenderWaveformFitToImageWidthFromMp3 (63 ms)
#12 52.89 [ RUN      ] OptionHandlerTest.shouldRenderWaveformFitToImageWidthFromWav
#12 52.92 [       OK ] OptionHandlerTest.shouldRenderWaveformFitToImageWidthFromWav (25 ms)
#12 52.92 [ RUN      ] OptionHandlerTest.shouldNotRenderWaveformImageFromJsonWaveformData
#12 52.92 [       OK ] OptionHandlerTest.shouldNotRenderWaveformImageFromJsonWaveformData (5 ms)
#12 52.92 [ RUN      ] OptionHandlerTest.shouldNotRenderWaveformImageFromTextWaveformData
#12 52.93 [       OK ] OptionHandlerTest.shouldNotRenderWaveformImageFromTextWaveformData (5 ms)
#12 52.93 [ RUN      ] OptionHandlerTest.shouldFailIfZoomIsZeroWithWavAudio
#12 52.93 [       OK ] OptionHandlerTest.shouldFailIfZoomIsZeroWithWavAudio (5 ms)
#12 52.93 [ RUN      ] OptionHandlerTest.shouldFailIfZoomIsZeroWithMp3Audio
#12 52.94 [       OK ] OptionHandlerTest.shouldFailIfZoomIsZeroWithMp3Audio (5 ms)
#12 52.94 [ RUN      ] OptionHandlerTest.shouldFailIfPixelsPerSecondIsZero
#12 52.95 [       OK ] OptionHandlerTest.shouldFailIfPixelsPerSecondIsZero (11 ms)
#12 52.95 [ RUN      ] OptionHandlerTest.shouldFailIfPixelsPerSecondIsNegative
#12 52.96 [       OK ] OptionHandlerTest.shouldFailIfPixelsPerSecondIsNegative (10 ms)
#12 52.96 [----------] 49 tests from OptionHandlerTest (1360 ms total)
#12 52.96 
#12 52.96 [----------] 10 tests from ProgressReporterTest
#12 52.96 [ RUN      ] ProgressReporterTest.shouldDisplayZeroPercentWhenFirstCalled
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:61: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldDisplayZeroPercentWhenFirstCalled (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldUpdatePercentage
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:72: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%\rDone: 50%\rDone: 100%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldUpdatePercentage (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldNotUpdatePercentageIfUnchanged
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:85: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%\rDone: 50%\rDone: 100%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldNotUpdatePercentageIfUnchanged (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldAllowPercentageToDecrease
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:96: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%\rDone: 50%\rDone: 25%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldAllowPercentageToDecrease (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldLimitPercentageAt0
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:105: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldLimitPercentageAt0 (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldLimitPercentageAt100
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:114: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 100%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldLimitPercentageAt100 (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldNotAssumeTotalIs100
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:125: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%\rDone: 5%\rDone: 10%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldNotAssumeTotalIs100 (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldDisplayPercentageAsWholeNumber
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:134: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 49%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldDisplayPercentageAsWholeNumber (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldDisplayZeroIfTotalIsZero
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:143: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 0%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldDisplayZeroIfTotalIsZero (0 ms)
#12 52.96 [ RUN      ] ProgressReporterTest.shouldAllowLargeNumbers
#12 52.96 /audiowaveform/test/ProgressReporterTest.cpp:152: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: is equal to "\rDone: 50%"
#12 52.96   Actual: ""
#12 52.96 [  FAILED  ] ProgressReporterTest.shouldAllowLargeNumbers (0 ms)
#12 52.96 [----------] 10 tests from ProgressReporterTest (0 ms total)
#12 52.96 
#12 52.96 [----------] 6 tests from RgbaTest
#12 52.96 [ RUN      ] RgbaTest.shouldParseColorWithDigits
#12 52.96 [       OK ] RgbaTest.shouldParseColorWithDigits (0 ms)
#12 52.96 [ RUN      ] RgbaTest.shouldParseColorWithTransparency
#12 52.96 [       OK ] RgbaTest.shouldParseColorWithTransparency (0 ms)
#12 52.96 [ RUN      ] RgbaTest.shouldParseColorWithLowerCaseHex
#12 52.96 [       OK ] RgbaTest.shouldParseColorWithLowerCaseHex (0 ms)
#12 52.96 [ RUN      ] RgbaTest.shouldParseColorWithUpperCaseHex
#12 52.96 [       OK ] RgbaTest.shouldParseColorWithUpperCaseHex (0 ms)
#12 52.96 [ RUN      ] RgbaTest.shouldThrowIfEmptyString
#12 52.96 [       OK ] RgbaTest.shouldThrowIfEmptyString (0 ms)
#12 52.96 [ RUN      ] RgbaTest.shouldThrowIfNotAValidColor
#12 52.96 [       OK ] RgbaTest.shouldThrowIfNotAValidColor (0 ms)
#12 52.96 [----------] 6 tests from RgbaTest (0 ms total)
#12 52.96 
#12 52.96 [----------] 10 tests from SndFileAudioFileReaderTest
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldOpenWavFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldOpenWavFile (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldOpenFlacFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldOpenFlacFile (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldReportErrorIfFileNotFound
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldReportErrorIfFileNotFound (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldFailToProcessIfFileNotOpen
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldFailToProcessIfFileNotOpen (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldProcessStereoWavFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldProcessStereoWavFile (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldProcessStereoFlacFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldProcessStereoFlacFile (2 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldProcessMonoWavFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldProcessMonoWavFile (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldProcessMonoFlacFile
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldProcessMonoFlacFile (1 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldNotProcessFileMoreThanOnce
#12 52.96 [       OK ] SndFileAudioFileReaderTest.shouldNotProcessFileMoreThanOnce (0 ms)
#12 52.96 [ RUN      ] SndFileAudioFileReaderTest.shouldReportErrorIfNotAWavFile
#12 52.96 /audiowaveform/test/SndFileAudioFileReaderTest.cpp:294: Failure
#12 52.96 Value of: error.str()
#12 52.96 Expected: (is equal to "Failed to read file: ../test/data/test_file_stereo.mp3\nFile contains data in an unknown format.\n") or (is equal to "Failed to read file: ../test/data/test_file_stereo.mp3\nFormat not recognised.\n")
#12 52.96   Actual: "Failed to read file: ../test/data/test_file_stereo.mp3\nFile contains data in an unimplemented format.\n"
#12 52.96 [  FAILED  ] SndFileAudioFileReaderTest.shouldReportErrorIfNotAWavFile (0 ms)
#12 52.96 [----------] 10 tests from SndFileAudioFileReaderTest (3 ms total)
#12 52.96 
#12 52.96 [----------] 1 test from TimeUtilTest
#12 52.96 [ RUN      ] TimeUtilTest.shouldConvertSecondsToString
#12 52.96 [       OK ] TimeUtilTest.shouldConvertSecondsToString (0 ms)
#12 52.96 [----------] 1 test from TimeUtilTest (0 ms total)
#12 52.96 
#12 52.96 [----------] 3 tests from WavFileWriterTest
#12 52.96 [ RUN      ] WavFileWriterTest.shouldCreateEmptyWavFile
#12 52.96 [       OK ] WavFileWriterTest.shouldCreateEmptyWavFile (0 ms)
#12 52.96 [ RUN      ] WavFileWriterTest.shouldCreateMonoWavFile
#12 52.96 [       OK ] WavFileWriterTest.shouldCreateMonoWavFile (0 ms)
#12 52.96 [ RUN      ] WavFileWriterTest.shouldReportErrorIfUnableToCreateFile
#12 52.96 [       OK ] WavFileWriterTest.shouldReportErrorIfUnableToCreateFile (0 ms)
#12 52.96 [----------] 3 tests from WavFileWriterTest (0 ms total)
#12 52.96 
#12 52.96 [----------] 13 tests from WaveformBufferTest
#12 52.96 [ RUN      ] WaveformBufferTest.shouldConstructWithDefaultState
#12 52.96 [       OK ] WaveformBufferTest.shouldConstructWithDefaultState (0 ms)
#12 52.96 [ RUN      ] WaveformBufferTest.shouldLoad16BitVersion1DataFile
#12 52.96 [       OK ] WaveformBufferTest.shouldLoad16BitVersion1DataFile (0 ms)
#12 52.96 [ RUN      ] WaveformBufferTest.shouldLoad16BitVersion2DataFile
#12 52.96 [       OK ] WaveformBufferTest.shouldLoad16BitVersion2DataFile (0 ms)
#12 52.96 [ RUN      ] WaveformBufferTest.shouldLoad8BitVersion1DataFile
#12 52.97 [       OK ] WaveformBufferTest.shouldLoad8BitVersion1DataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldLoad8BitVersion2DataFile
#12 52.97 [       OK ] WaveformBufferTest.shouldLoad8BitVersion2DataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldNotLoadUnknownVersionDataFile
#12 52.97 [       OK ] WaveformBufferTest.shouldNotLoadUnknownVersionDataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldReportErrorIfSizeMismatch
#12 52.97 [       OK ] WaveformBufferTest.shouldReportErrorIfSizeMismatch (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldReportErrorIfFileNotFound
#12 52.97 [       OK ] WaveformBufferTest.shouldReportErrorIfFileNotFound (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldNotLoadDataFileWithSampleRateBelowMinimum
#12 52.97 [       OK ] WaveformBufferTest.shouldNotLoadDataFileWithSampleRateBelowMinimum (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldNotLoadDataFileWithSamplesPerPixelBelowMinimum
#12 52.97 [       OK ] WaveformBufferTest.shouldNotLoadDataFileWithSamplesPerPixelBelowMinimum (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldNotLoadDataFileWithTooManyChannels
#12 52.97 [       OK ] WaveformBufferTest.shouldNotLoadDataFileWithTooManyChannels (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldNotLoadDataFileWithNotEnoughChannels
#12 52.97 [       OK ] WaveformBufferTest.shouldNotLoadDataFileWithNotEnoughChannels (0 ms)
#12 52.97 [ RUN      ] WaveformBufferTest.shouldLoadDataFileIfSizeIsZero
#12 52.97 [       OK ] WaveformBufferTest.shouldLoadDataFileIfSizeIsZero (0 ms)
#12 52.97 [----------] 13 tests from WaveformBufferTest (0 ms total)
#12 52.97 
#12 52.97 [----------] 10 tests from WaveformBufferSaveTest
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSaveEmptyDataFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSaveEmptyDataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave16BitDataFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave16BitDataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave8BitDataFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave8BitDataFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldReportErrorIfNot8Or16Bits
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldReportErrorIfNot8Or16Bits (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave16BitTextFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave16BitTextFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave16BitTextFileWith2Channels
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave16BitTextFileWith2Channels (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave8BitTextFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave8BitTextFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave8BitTextFileWith2Channels
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave8BitTextFileWith2Channels (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave16BitJsonFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave16BitJsonFile (0 ms)
#12 52.97 [ RUN      ] WaveformBufferSaveTest.shouldSave8BitJsonFile
#12 52.97 [       OK ] WaveformBufferSaveTest.shouldSave8BitJsonFile (0 ms)
#12 52.97 [----------] 10 tests from WaveformBufferSaveTest (0 ms total)
#12 52.97 
#12 52.97 [----------] 4 tests from DurationScaleFactorTest
#12 52.97 [ RUN      ] DurationScaleFactorTest.shouldComputeScaleFactorWithoutNumericOverflow
#12 52.97 [       OK ] DurationScaleFactorTest.shouldComputeScaleFactorWithoutNumericOverflow (0 ms)
#12 52.97 [ RUN      ] DurationScaleFactorTest.shouldThrowIfEndTimeLessThanStartTime
#12 52.97 [       OK ] DurationScaleFactorTest.shouldThrowIfEndTimeLessThanStartTime (0 ms)
#12 52.97 [ RUN      ] DurationScaleFactorTest.shouldThrowIfWidthIsZero
#12 52.97 [       OK ] DurationScaleFactorTest.shouldThrowIfWidthIsZero (0 ms)
#12 52.97 [ RUN      ] DurationScaleFactorTest.shouldThrowIfWidthIsNegative
#12 52.97 [       OK ] DurationScaleFactorTest.shouldThrowIfWidthIsNegative (0 ms)
#12 52.97 [----------] 4 tests from DurationScaleFactorTest (0 ms total)
#12 52.97 
#12 52.97 [----------] 3 tests from PixelsPerSecondScaleFactorTest
#12 52.97 [ RUN      ] PixelsPerSecondScaleFactorTest.shouldThrowIfZero
#12 52.97 [       OK ] PixelsPerSecondScaleFactorTest.shouldThrowIfZero (0 ms)
#12 52.97 [ RUN      ] PixelsPerSecondScaleFactorTest.shouldThrowIfNegative
#12 52.97 [       OK ] PixelsPerSecondScaleFactorTest.shouldThrowIfNegative (0 ms)
#12 52.97 [ RUN      ] PixelsPerSecondScaleFactorTest.shouldNotThrowIfPositive
#12 52.97 [       OK ] PixelsPerSecondScaleFactorTest.shouldNotThrowIfPositive (0 ms)
#12 52.97 [----------] 3 tests from PixelsPerSecondScaleFactorTest (0 ms total)
#12 52.97 
#12 52.97 [----------] 10 tests from WaveformGeneratorTest
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsNegative
#12 52.97 [       OK ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsNegative (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsZero
#12 52.97 [       OK ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsZero (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsOne
#12 52.97 [       OK ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsOne (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldSucceedIfSamplesPerPixelIsTwo
#12 52.97 [       OK ] WaveformGeneratorTest.shouldSucceedIfSamplesPerPixelIsTwo (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldSucceedIfSamplesPerPixelIsLarge
#12 52.97 [       OK ] WaveformGeneratorTest.shouldSucceedIfSamplesPerPixelIsLarge (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldSucceedIfEndTimeGreaterThanStartTime
#12 52.97 [       OK ] WaveformGeneratorTest.shouldSucceedIfEndTimeGreaterThanStartTime (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsTooSmall
#12 52.97 [       OK ] WaveformGeneratorTest.shouldFailIfSamplesPerPixelIsTooSmall (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldSetBufferAttributes
#12 52.97 [       OK ] WaveformGeneratorTest.shouldSetBufferAttributes (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldComputeMaxAndMinValuesFromStereoInput
#12 52.97 [       OK ] WaveformGeneratorTest.shouldComputeMaxAndMinValuesFromStereoInput (0 ms)
#12 52.97 [ RUN      ] WaveformGeneratorTest.shouldComputeMaxAndMinValuesFromMonoInput
#12 52.97 [       OK ] WaveformGeneratorTest.shouldComputeMaxAndMinValuesFromMonoInput (0 ms)
#12 52.97 [----------] 10 tests from WaveformGeneratorTest (0 ms total)
#12 52.97 
#12 52.97 [----------] 3 tests from WaveformRescalerTest
#12 52.97 [ RUN      ] WaveformRescalerTest.shouldRescaleWaveformData
#12 52.97 [       OK ] WaveformRescalerTest.shouldRescaleWaveformData (0 ms)
#12 52.97 [ RUN      ] WaveformRescalerTest.shouldRescale8BitWaveformData
#12 52.97 [       OK ] WaveformRescalerTest.shouldRescale8BitWaveformData (0 ms)
#12 52.97 [ RUN      ] WaveformRescalerTest.shouldRescale16BitWaveformData
#12 52.97 [       OK ] WaveformRescalerTest.shouldRescale16BitWaveformData (0 ms)
#12 52.97 [----------] 3 tests from WaveformRescalerTest (0 ms total)
#12 52.97 
#12 52.97 [----------] Global test environment tear-down
#12 52.97 [==========] 227 tests from 18 test suites ran. (1410 ms total)
#12 52.97 [  PASSED  ] 211 tests.
#12 52.97 [  FAILED  ] 16 tests, listed below:
#12 52.97 [  FAILED  ] OptionHandlerTest.shouldConvertMp3ToWavAudio
#12 52.97 [  FAILED  ] OptionHandlerTest.shouldGenerateBinaryWaveformDataFromMp3Audio
#12 52.97 [  FAILED  ] OptionHandlerTest.shouldGenerateJsonWaveformDataFromMp3Audio
#12 52.97 [  FAILED  ] OptionHandlerTest.shouldRenderWaveformImageFromMp3Audio
#12 52.97 [  FAILED  ] OptionHandlerTest.shouldRenderWaveformFitToImageWidthFromMp3
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldDisplayZeroPercentWhenFirstCalled
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldUpdatePercentage
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldNotUpdatePercentageIfUnchanged
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldAllowPercentageToDecrease
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldLimitPercentageAt0
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldLimitPercentageAt100
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldNotAssumeTotalIs100
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldDisplayPercentageAsWholeNumber
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldDisplayZeroIfTotalIsZero
#12 52.97 [  FAILED  ] ProgressReporterTest.shouldAllowLargeNumbers
#12 52.97 [  FAILED  ] SndFileAudioFileReaderTest.shouldReportErrorIfNotAWavFile
#12 52.97 
#12 52.97 16 FAILED TESTS
@chrisn
Copy link
Member

chrisn commented Sep 9, 2022

The test failures all relate to MP3 decoding, so relate to libmad. For the tests to pass, libmad has to produce the exact same output audio, sample by sample, as it does on my Ubuntu system. I'm not sure why the differences occur though.

To disable the MP3 tests you could pass a flag to audiowaveform_tests:

audiowaveform_tests --gtest_filter=-*Mp3*

As an aside, looking at your Dockerfile you seem to be building the current development version of each dependency, which could lead to unpredictable results. I recommend only using stable release versions. For comparison here are the Dockerfiles I use to cross-compile for Windows. This explains the C++14 issue you found, as I use GoogleTest 1.12.1:

The 1.12.x branch will be the last to support C++11. Future releases will require at least C++14.

@realies
Copy link
Author

realies commented Sep 12, 2022

Thanks for the concise reply, @chrisn! A wild guess from Libera/#alpine-linux:

minimal: Alpine uses musl as its C library. Perhaps that is a factor, e.g. if something like maths precision differs between musl and glibc

Wondering if patching the tests to ensure consistent results or ignoring mp3 tests altogether would be better. Agree that development versions of dependencies can be unpredictable, thinking of releasing a stable tag at some point.

@chrisn
Copy link
Member

chrisn commented Sep 20, 2022

I'd prefer to figure out how to make the tests consistent. That could mean comparing outputs against platform-specific expected output files or introducing a tolerance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants