Mercurial > hg > svcore
comparison data/fileio/test/EncodingTest.h @ 1698:dbd13eb7dad1
Add tests for audio file readers presented with empty or nonsense input
author | Chris Cannam |
---|---|
date | Fri, 03 May 2019 13:33:53 +0100 |
parents | ae9849c0815f |
children | 83cb6e9d769b |
comparison
equal
deleted
inserted
replaced
1690:ea1aa24ebf89 | 1698:dbd13eb7dad1 |
---|---|
19 // test of audio codecs. | 19 // test of audio codecs. |
20 | 20 |
21 #include "../AudioFileReaderFactory.h" | 21 #include "../AudioFileReaderFactory.h" |
22 #include "../AudioFileReader.h" | 22 #include "../AudioFileReader.h" |
23 #include "../WavFileWriter.h" | 23 #include "../WavFileWriter.h" |
24 | |
25 #include "UnsupportedFormat.h" | |
24 | 26 |
25 #include <cmath> | 27 #include <cmath> |
26 | 28 |
27 #include <QObject> | 29 #include <QObject> |
28 #include <QtTest> | 30 #include <QtTest> |
130 | 132 |
131 // Ensure that we can open all the files | 133 // Ensure that we can open all the files |
132 | 134 |
133 QFETCH(QString, audiofile); | 135 QFETCH(QString, audiofile); |
134 | 136 |
137 QStringList fileAndExt = audiofile.split("."); | |
138 QString extension = fileAndExt[1]; | |
139 | |
135 if (!AudioFileReaderFactory::isSupported(encodingDir + "/" + | 140 if (!AudioFileReaderFactory::isSupported(encodingDir + "/" + |
136 audiofile)) { | 141 audiofile)) { |
142 if (isLegitimatelyUnsupported(extension)) { | |
137 #if ( QT_VERSION >= 0x050000 ) | 143 #if ( QT_VERSION >= 0x050000 ) |
138 QSKIP("Known unsupported file, skipping"); | 144 QSKIP("Known unsupported file, skipping"); |
139 #else | 145 #else |
140 QSKIP("Known unsupported file, skipping", SkipSingle); | 146 QSKIP("Known unsupported file, skipping", SkipSingle); |
141 #endif | 147 #endif |
148 } | |
142 } | 149 } |
143 | 150 |
144 AudioFileReaderFactory::Parameters params; | 151 AudioFileReaderFactory::Parameters params; |
145 AudioFileReader *reader = | 152 AudioFileReader *reader = |
146 AudioFileReaderFactory::createReader | 153 AudioFileReaderFactory::createReader |
161 // that the title matches whatever is in our mapping structure | 168 // that the title matches whatever is in our mapping structure |
162 // defined at the top | 169 // defined at the top |
163 | 170 |
164 QFETCH(QString, audiofile); | 171 QFETCH(QString, audiofile); |
165 | 172 |
173 QStringList fileAndExt = audiofile.split("."); | |
174 QString file = fileAndExt[0]; | |
175 QString extension = fileAndExt[1]; | |
176 | |
166 AudioFileReaderFactory::Parameters params; | 177 AudioFileReaderFactory::Parameters params; |
167 AudioFileReader *reader = | 178 AudioFileReader *reader = |
168 AudioFileReaderFactory::createReader | 179 AudioFileReaderFactory::createReader |
169 (encodingDir + "/" + audiofile, params); | 180 (encodingDir + "/" + audiofile, params); |
170 | 181 |
171 if (!reader) { | 182 if (!reader) { |
183 if (isLegitimatelyUnsupported(extension)) { | |
172 #if ( QT_VERSION >= 0x050000 ) | 184 #if ( QT_VERSION >= 0x050000 ) |
173 QSKIP("Unsupported file, skipping"); | 185 QSKIP("Unsupported file, skipping"); |
174 #else | 186 #else |
175 QSKIP("Unsupported file, skipping", SkipSingle); | 187 QSKIP("Unsupported file, skipping", SkipSingle); |
176 #endif | 188 #endif |
177 } | 189 } |
178 | 190 } |
179 QStringList fileAndExt = audiofile.split("."); | 191 |
180 QString file = fileAndExt[0]; | 192 QVERIFY(reader != nullptr); |
181 QString extension = fileAndExt[1]; | |
182 | 193 |
183 if (extension == "wav") { | 194 if (extension == "wav") { |
184 | 195 |
185 // Nothing | 196 // Nothing |
186 | 197 |
187 delete reader; | 198 delete reader; |
188 | 199 |
189 } else { | 200 } else { |
190 | 201 |
191 //#if (!defined (HAVE_OGGZ) || !defined(HAVE_FISHSOUND)) | |
192 // if (extension == "ogg") { | |
193 // QSKIP("Lack native Ogg Vorbis reader, so won't be getting metadata"); | |
194 // } | |
195 //#endif | |
196 | |
197 auto blah = reader->getInterleavedFrames(0, 10); | 202 auto blah = reader->getInterleavedFrames(0, 10); |
198 | 203 |
199 QString title = reader->getTitle(); | 204 QString title = reader->getTitle(); |
200 QVERIFY(title != QString()); | 205 QVERIFY(title != QString()); |
201 | 206 |
259 | 264 |
260 if (extension == "wav") { | 265 if (extension == "wav") { |
261 return; | 266 return; |
262 } | 267 } |
263 | 268 |
264 //#if (!defined (HAVE_OGGZ) || !defined(HAVE_FISHSOUND)) | |
265 // if (extension == "ogg") { | |
266 // QSKIP("Lack native Ogg Vorbis reader, so won't be getting metadata"); | |
267 // } | |
268 //#endif | |
269 | |
270 AudioFileReaderFactory::Parameters params; | 269 AudioFileReaderFactory::Parameters params; |
271 AudioFileReader *reader = | 270 AudioFileReader *reader = |
272 AudioFileReaderFactory::createReader | 271 AudioFileReaderFactory::createReader |
273 (encodingDir + "/" + audiofile, params); | 272 (encodingDir + "/" + audiofile, params); |
274 | 273 |
275 if (!reader) { | 274 if (!reader) { |
275 if (isLegitimatelyUnsupported(extension)) { | |
276 #if ( QT_VERSION >= 0x050000 ) | 276 #if ( QT_VERSION >= 0x050000 ) |
277 QSKIP("Unsupported file, skipping"); | 277 QSKIP("Unsupported file, skipping"); |
278 #else | 278 #else |
279 QSKIP("Unsupported file, skipping", SkipSingle); | 279 QSKIP("Unsupported file, skipping", SkipSingle); |
280 #endif | 280 #endif |
281 } | 281 } |
282 } | |
283 | |
284 QVERIFY(reader != nullptr); | |
282 | 285 |
283 QString title = reader->getTitle(); | 286 QString title = reader->getTitle(); |
284 QVERIFY(title != QString()); | 287 QVERIFY(title != QString()); |
285 | 288 |
286 for (int useTemporary = 0; useTemporary <= 1; ++useTemporary) { | 289 for (int useTemporary = 0; useTemporary <= 1; ++useTemporary) { |