diff options
author | Jøger Hansegård <joger.hansegard@qt.io> | 2024-03-25 12:13:29 +0100 |
---|---|---|
committer | Jøger Hansegård <joger.hansegard@qt.io> | 2024-03-26 11:19:24 +0100 |
commit | cd8330b98314faf1bbdd069e5c74e0e97765260b (patch) | |
tree | 4c3703c6b3d63c23a84bd64e1432a5bfef239045 /tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp | |
parent | 7b6e01213696c0571464880a1ab355ea5506bb45 (diff) |
Test that QAudioDecoder emits error when source has no audio track
This patch adds a test that verifies that QAudioDecoder is well behaved
when no audio track is present in the input media file.
Task-number: QTBUG-123597
Pick-to: 6.7 6.6 6.5
Change-Id: Iecf745cab3b0cd70506399c06d9a7fdd15d29e8a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Diffstat (limited to 'tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp')
-rw-r--r-- | tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp b/tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp index c209b1d43..1961731b8 100644 --- a/tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp +++ b/tests/auto/integration/qaudiodecoderbackend/tst_qaudiodecoderbackend.cpp @@ -7,10 +7,11 @@ #include "../shared/mediafileselector.h" -#define TEST_FILE_NAME "testdata/test.wav" -#define TEST_UNSUPPORTED_FILE_NAME "testdata/test-unsupported.avi" -#define TEST_CORRUPTED_FILE_NAME "testdata/test-corrupted.wav" -#define TEST_INVALID_SOURCE "invalid" +constexpr char TEST_FILE_NAME[] = "testdata/test.wav"; +constexpr char TEST_UNSUPPORTED_FILE_NAME[] = "testdata/test-unsupported.avi"; +constexpr char TEST_CORRUPTED_FILE_NAME[] = "testdata/test-corrupted.wav"; +constexpr char TEST_INVALID_SOURCE[] = "invalid"; +constexpr char TEST_NO_AUDIO_TRACK[] = "testdata/test-no-audio-track.mp4"; QT_USE_NAMESPACE @@ -42,6 +43,7 @@ private slots: void corruptedFileTest(); void invalidSource(); void deviceTest(); + void play_emitsFormatError_whenMediaHasNoAudioTrack(); private: QUrl testFileUrl(const QString filePath); @@ -921,6 +923,19 @@ void tst_QAudioDecoderBackend::deviceTest() QCOMPARE(d.duration(), qint64(-1)); } +void tst_QAudioDecoderBackend::play_emitsFormatError_whenMediaHasNoAudioTrack() { + QAudioDecoder decoder; + + QSignalSpy errors{ &decoder, qOverload<QAudioDecoder::Error>(&QAudioDecoder::error) }; + + decoder.setSource(testFileUrl(TEST_NO_AUDIO_TRACK)); + decoder.start(); + + QTRY_VERIFY(!errors.empty()); + + QCOMPARE_EQ(decoder.error(), QAudioDecoder::Error::FormatError); +} + QTEST_MAIN(tst_QAudioDecoderBackend) #include "tst_qaudiodecoderbackend.moc" |