diff --git a/src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt index c82d8b765..120c07dae 100644 --- a/src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt @@ -53,23 +53,26 @@ if(CORRADE_TARGET_EMSCRIPTEN) emscripten_embed_file(WavAudioImporterTest invalidFactChunk.wav "/invalidFactChunk.wav") emscripten_embed_file(WavAudioImporterTest mono8.wav "/mono8.wav") - emscripten_embed_file(WavAudioImporterTest mono8.wav "/mono8junk.wav") - + emscripten_embed_file(WavAudioImporterTest mono8.wav "/mono8.wav") + emscripten_embed_file(WavAudioImporterTest mono8junk.wav "/mono8junk.wav") emscripten_embed_file(WavAudioImporterTest mono8ALaw.wav "/mono8ALaw.wav") emscripten_embed_file(WavAudioImporterTest mono8MuLaw.wav "/mono8MuLaw.wav") emscripten_embed_file(WavAudioImporterTest mono16.wav "/mono16.wav") + emscripten_embed_file(WavAudioImporterTest mono24.wav "/mono24.wav") + emscripten_embed_file(WavAudioImporterTest stereo4.wav "/stereo4.wav") emscripten_embed_file(WavAudioImporterTest stereo8.wav "/stereo8.wav") emscripten_embed_file(WavAudioImporterTest stereo8ALaw.wav "/stereo8ALaw.wav") emscripten_embed_file(WavAudioImporterTest stereo8MuLaw.wav "/stereo8MuLaw.wav") emscripten_embed_file(WavAudioImporterTest stereo12.wav "/stereo12.wav") emscripten_embed_file(WavAudioImporterTest stereo16.wav "/stereo16.wav") emscripten_embed_file(WavAudioImporterTest stereo24.wav "/stereo24.wav") + emscripten_embed_file(WavAudioImporterTest stereo32.wav "/stereo32.wav") emscripten_embed_file(WavAudioImporterTest mono32f.wav "/mono32f.wav") emscripten_embed_file(WavAudioImporterTest stereo32f.wav "/stereo32f.wav") - emscripten_embed_file(WavAudioImporterTest stereo64f.wav "/stereo64f.wav") - emscripten_embed_file(WavAudioImporterTest surround616.wav "/surround616.wav") + emscripten_embed_file(WavAudioImporterTest surround51Channel16.wav "/surround51Channel16.wav") + emscripten_embed_file(WavAudioImporterTest surround71Channel24.wav "/surround71Channel24.wav") endif() diff --git a/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp b/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp index ca19d63b4..12fc34f8c 100644 --- a/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp +++ b/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp @@ -45,29 +45,34 @@ class WavImporterTest: public TestSuite::Tester { void wrongSignature(); void unsupportedFormat(); void unsupportedChannelCount(); + void invalidPadding(); void invalidLength(); void invalidDataChunk(); void invalidFactChunk(); + void mono4(); void mono8(); void mono8junk(); void mono8ALaw(); void mono8MuLaw(); void mono16(); + void stereo4(); void stereo8(); void stereo8ALaw(); void stereo8MuLaw(); void stereo12(); void stereo16(); void stereo24(); + void stereo32(); void mono32f(); void stereo32f(); void stereo64f(); void surround51Channel16(); + void surround71Channel24(); void debugAudioFormat(); }; @@ -77,28 +82,34 @@ WavImporterTest::WavImporterTest() { &WavImporterTest::wrongSignature, &WavImporterTest::unsupportedFormat, &WavImporterTest::unsupportedChannelCount, + &WavImporterTest::invalidPadding, &WavImporterTest::invalidLength, &WavImporterTest::invalidDataChunk, &WavImporterTest::invalidFactChunk, + &WavImporterTest::mono4, &WavImporterTest::mono8, &WavImporterTest::mono8junk, &WavImporterTest::mono8ALaw, &WavImporterTest::mono8MuLaw, &WavImporterTest::mono16, + &WavImporterTest::stereo4, &WavImporterTest::stereo8, &WavImporterTest::stereo8ALaw, &WavImporterTest::stereo8MuLaw, &WavImporterTest::stereo12, &WavImporterTest::stereo16, &WavImporterTest::stereo24, + &WavImporterTest::stereo32, &WavImporterTest::mono32f, &WavImporterTest::stereo32f, &WavImporterTest::stereo64f, + &WavImporterTest::surround51Channel16, + &WavImporterTest::surround71Channel24, &WavImporterTest::debugAudioFormat}); } @@ -178,6 +189,15 @@ void WavImporterTest::invalidFactChunk() { TestSuite::Compare::Container); } +void WavImporterTest::mono4() { + std::ostringstream out; + Error redirectError{&out}; + + WavImporter importer; + CORRADE_VERIFY(!importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono4.wav"))); + CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): unsupported format Audio::WavAudioFormat(0x2)\n"); +} + void WavImporterTest::mono8() { WavImporter importer; CORRADE_VERIFY(importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono8.wav"))); @@ -238,6 +258,15 @@ void WavImporterTest::mono16() { TestSuite::Compare::Container); } +void WavImporterTest::stereo4() { + std::ostringstream out; + Error redirectError{&out}; + + WavImporter importer; + CORRADE_VERIFY(!importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo4.wav"))); + CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): unsupported format Audio::WavAudioFormat(0x2)\n"); +} + void WavImporterTest::stereo8() { WavImporter importer; CORRADE_VERIFY(importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8.wav"))); @@ -306,6 +335,16 @@ void WavImporterTest::stereo24() { CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): PCM with unsupported channel count 2 with 24 bits per sample\n"); } +void WavImporterTest::stereo32() { + std::ostringstream out; + Error redirectError{&out}; + + WavImporter importer; + + CORRADE_VERIFY(!importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo32.wav"))); + CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): PCM with unsupported channel count 2 with 32 bits per sample\n"); +} + void WavImporterTest::mono32f() { WavImporter importer; CORRADE_VERIFY(importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono32f.wav"))); @@ -359,6 +398,16 @@ void WavImporterTest::surround51Channel16() { CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): unsupported format Audio::WavAudioFormat::Extensible\n"); } +void WavImporterTest::surround71Channel24() { + std::ostringstream out; + Error redirectError{&out}; + + WavImporter importer; + + CORRADE_VERIFY(!importer.openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "surround71Channel24.wav"))); + CORRADE_COMPARE(out.str(), "Audio::WavImporter::openData(): unsupported format Audio::WavAudioFormat::Extensible\n"); +} + void WavImporterTest::debugAudioFormat() { std::ostringstream out; diff --git a/src/MagnumPlugins/WavAudioImporter/Test/mono24.wav b/src/MagnumPlugins/WavAudioImporter/Test/mono24.wav new file mode 100644 index 000000000..5d733ec46 Binary files /dev/null and b/src/MagnumPlugins/WavAudioImporter/Test/mono24.wav differ diff --git a/src/MagnumPlugins/WavAudioImporter/Test/mono4.wav b/src/MagnumPlugins/WavAudioImporter/Test/mono4.wav new file mode 100644 index 000000000..c7577a9e7 Binary files /dev/null and b/src/MagnumPlugins/WavAudioImporter/Test/mono4.wav differ diff --git a/src/MagnumPlugins/WavAudioImporter/Test/stereo32.wav b/src/MagnumPlugins/WavAudioImporter/Test/stereo32.wav new file mode 100644 index 000000000..009dc66fb Binary files /dev/null and b/src/MagnumPlugins/WavAudioImporter/Test/stereo32.wav differ diff --git a/src/MagnumPlugins/WavAudioImporter/Test/stereo4.wav b/src/MagnumPlugins/WavAudioImporter/Test/stereo4.wav new file mode 100644 index 000000000..a11034614 Binary files /dev/null and b/src/MagnumPlugins/WavAudioImporter/Test/stereo4.wav differ diff --git a/src/MagnumPlugins/WavAudioImporter/Test/surround71Channel24.wav b/src/MagnumPlugins/WavAudioImporter/Test/surround71Channel24.wav new file mode 100644 index 000000000..a9419a4f3 Binary files /dev/null and b/src/MagnumPlugins/WavAudioImporter/Test/surround71Channel24.wav differ