summaryrefslogtreecommitdiffstats
path: root/tests/auto/qwavedecoder
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-11-09 20:42:00 +0100
committerMichael Goddard <michael.goddard@nokia.com>2011-11-10 04:15:38 +0100
commit1d76e399c5d9277895786c6edc2cec76f99d0531 (patch)
treef56640988d767202cc8f449ff78ad26ff739d314 /tests/auto/qwavedecoder
parent1e542df82fbcc4e3a8f75537af204f83827a4587 (diff)
repo is dead. everything merged to qtmultimedia.HEADmaster
Change-Id: Id6de29b7c1e96aed16be8251195c744f68a2d46b Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto/qwavedecoder')
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/empty.wav0
-rwxr-xr-xtests/auto/qwavedecoder/data/gendata.sh68
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wavbin22094 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wavbin44180 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wavbin8080 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_8_44100.wavbin11069 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_8_8000.wavbin2044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wavbin44144 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wavbin8044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wavbin88280 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wavbin16080 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_8_44100.wavbin22094 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_8_8000.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/nosampledata.wavbin44 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/notawav.wav1
-rw-r--r--tests/auto/qwavedecoder/data/onebyte.wav1
-rw-r--r--tests/auto/qwavedecoder/qwavedecoder.pro12
-rw-r--r--tests/auto/qwavedecoder/tst_qwavedecoder.cpp327
22 files changed, 0 insertions, 409 deletions
diff --git a/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav
deleted file mode 100644
index b6eac4d..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav
deleted file mode 100644
index 2f0da13..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav
deleted file mode 100644
index b14a53c..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/empty.wav b/tests/auto/qwavedecoder/data/empty.wav
deleted file mode 100644
index e69de29..0000000
--- a/tests/auto/qwavedecoder/data/empty.wav
+++ /dev/null
diff --git a/tests/auto/qwavedecoder/data/gendata.sh b/tests/auto/qwavedecoder/data/gendata.sh
deleted file mode 100755
index 0dd82ce..0000000
--- a/tests/auto/qwavedecoder/data/gendata.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-#############################################################################
-##
-## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
-##
-## This file is the build configuration utility of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## GNU Lesser General Public License Usage
-## This file may be used under the terms of the GNU Lesser General Public
-## License version 2.1 as published by the Free Software Foundation and
-## appearing in the file LICENSE.LGPL included in the packaging of this
-## file. Please review the following information to ensure the GNU Lesser
-## General Public License version 2.1 requirements will be met:
-## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-##
-## In addition, as a special exception, Nokia gives you certain additional
-## rights. These rights are described in the Nokia Qt LGPL Exception
-## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU General
-## Public License version 3.0 as published by the Free Software Foundation
-## and appearing in the file LICENSE.GPL included in the packaging of this
-## file. Please review the following information to ensure the GNU General
-## Public License version 3.0 requirements will be met:
-## http://www.gnu.org/copyleft/gpl.html.
-##
-## Other Usage
-## Alternatively, this file may be used in accordance with the terms and
-## conditions contained in a signed written agreement between you and Nokia.
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-# Generate some simple test data. Uses "sox".
-
-endian=""
-endian_extn=""
-
-for channel in 1 2; do
- if [ $channel -eq 1 ]; then
- endian="little"
- endian_extn="le"
- fi
-
- if [ $channel -eq 2 ]; then
- endian="big"
- endian_extn="be"
- fi
- for samplebits in 8 16 32; do
- for samplerate in 44100 8000; do
- if [ $samplebits -ne 8 ]; then
- sox -n --endian "${endian}" -c ${channel} -b ${samplebits} -r ${samplerate} isawav_${channel}_${samplebits}_${samplerate}_${endian_extn}.wav synth 0.25 sine 300-3300
- else
- sox -n -c ${channel} -b ${samplebits} -r ${samplerate} isawav_${channel}_${samplebits}_${samplerate}.wav synth 0.25 sine 300-3300
- fi
- done
- done
-done
-
diff --git a/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav b/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav
deleted file mode 100644
index 88b1a83..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav b/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav
deleted file mode 100644
index 83a4059..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav b/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav
deleted file mode 100644
index 9c437b1..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav b/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav
deleted file mode 100644
index f90a8bc..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav b/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav
deleted file mode 100644
index 7d10829..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav b/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav
deleted file mode 100644
index 76c08e8..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav b/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav
deleted file mode 100644
index ca0cd42..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav b/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav
deleted file mode 100644
index 3a68459..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav b/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav
deleted file mode 100644
index f1aaf29..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav b/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav
deleted file mode 100644
index c10c208..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav b/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav
deleted file mode 100644
index befd02b..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav b/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav
deleted file mode 100644
index ce8b0d0..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/nosampledata.wav b/tests/auto/qwavedecoder/data/nosampledata.wav
deleted file mode 100644
index 8dbde95..0000000
--- a/tests/auto/qwavedecoder/data/nosampledata.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/notawav.wav b/tests/auto/qwavedecoder/data/notawav.wav
deleted file mode 100644
index 36a20ea..0000000
--- a/tests/auto/qwavedecoder/data/notawav.wav
+++ /dev/null
@@ -1 +0,0 @@
-Ceci n'est pas une wav file
diff --git a/tests/auto/qwavedecoder/data/onebyte.wav b/tests/auto/qwavedecoder/data/onebyte.wav
deleted file mode 100644
index d00491f..0000000
--- a/tests/auto/qwavedecoder/data/onebyte.wav
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/tests/auto/qwavedecoder/qwavedecoder.pro b/tests/auto/qwavedecoder/qwavedecoder.pro
deleted file mode 100644
index db3f264..0000000
--- a/tests/auto/qwavedecoder/qwavedecoder.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = tst_qwavedecoder
-HEADERS += ../../../src/multimedia/effects/qwavedecoder_p.h
-SOURCES += tst_qwavedecoder.cpp \
- ../../../src/multimedia/effects/qwavedecoder_p.cpp
-
-QT += multimedia-private testlib network
-CONFIG += no_private_qt_headers_warning testcase
-
-data.files = data/*
-data.path = data
-DEPLOYMENT += data
-
diff --git a/tests/auto/qwavedecoder/tst_qwavedecoder.cpp b/tests/auto/qwavedecoder/tst_qwavedecoder.cpp
deleted file mode 100644
index c91ae7c..0000000
--- a/tests/auto/qwavedecoder/tst_qwavedecoder.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/multimedia
-
-#include <QtTest/QtTest>
-#include <private/qwavedecoder_p.h>
-
-#include <QNetworkAccessManager>
-#include <QNetworkRequest>
-#include <QNetworkReply>
-
-#ifndef QTRY_COMPARE
-#define QTRY_COMPARE(__expr, __expected) \
- do { \
- const int __step = 50; \
- const int __timeout = 1000; \
- if (!(__expr)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeout && !((__expr) == (__expected)); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QCOMPARE(__expr, __expected); \
- } while (0)
-#endif
-
-
-class tst_QWaveDecoder : public QObject
-{
- Q_OBJECT
-public:
- enum Corruption {
- None = 1,
- NotAWav = 2,
- NoSampleData = 4,
- FormatDescriptor = 8,
- FormatString = 16,
- DataDescriptor = 32
- };
-
-public slots:
-
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
-
- void file_data();
- void file();
-
- void http_data() {file_data();}
- void http();
-
- void readAllAtOnce();
- void readPerByte();
-};
-
-void tst_QWaveDecoder::init()
-{
-}
-
-void tst_QWaveDecoder::cleanup()
-{
-}
-
-void tst_QWaveDecoder::initTestCase()
-{
-}
-
-void tst_QWaveDecoder::cleanupTestCase()
-{
-}
-
-void tst_QWaveDecoder::file_data()
-{
- QTest::addColumn<QString>("file");
- QTest::addColumn<tst_QWaveDecoder::Corruption>("corruption");
- QTest::addColumn<int>("channels");
- QTest::addColumn<int>("samplesize");
- QTest::addColumn<int>("samplerate");
- QTest::addColumn<QAudioFormat::Endian>("byteorder");
-
- QTest::newRow("File is empty") << QString("empty.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("File is one byte") << QString("onebyte.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("File is not a wav(text)") << QString("notawav.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("Wav file has no sample data") << QString("nosampledata.wav") << tst_QWaveDecoder::NoSampleData << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt fmt chunk descriptor") << QString("corrupt_fmtdesc_1_16_8000.le.wav") << tst_QWaveDecoder::FormatDescriptor << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt fmt string") << QString("corrupt_fmtstring_1_16_8000.le.wav") << tst_QWaveDecoder::FormatString << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt data chunk descriptor") << QString("corrupt_datadesc_1_16_8000.le.wav") << tst_QWaveDecoder::DataDescriptor << -1 << -1 << -1 << QAudioFormat::LittleEndian;
-
- QTest::newRow("File isawav_1_8_8000.wav") << QString("isawav_1_8_8000.wav") << tst_QWaveDecoder::None << 1 << 8 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_8_44100.wav") << QString("isawav_1_8_44100.wav") << tst_QWaveDecoder::None << 1 << 8 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_8_8000.wav") << QString("isawav_2_8_8000.wav") << tst_QWaveDecoder::None << 2 << 8 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_8_44100.wav") << QString("isawav_2_8_44100.wav") << tst_QWaveDecoder::None << 2 << 8 << 44100 << QAudioFormat::LittleEndian;
-
- QTest::newRow("File isawav_1_16_8000_le.wav") << QString("isawav_1_16_8000_le.wav") << tst_QWaveDecoder::None << 1 << 16 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_16_44100_le.wav") << QString("isawav_1_16_44100_le.wav") << tst_QWaveDecoder::None << 1 << 16 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_16_8000_be.wav") << QString("isawav_2_16_8000_be.wav") << tst_QWaveDecoder::None << 2 << 16 << 8000 << QAudioFormat::BigEndian;
- QTest::newRow("File isawav_2_16_44100_be.wav") << QString("isawav_2_16_44100_be.wav") << tst_QWaveDecoder::None << 2 << 16 << 44100 << QAudioFormat::BigEndian;
-
- // 32 bit waves are not supported
- QTest::newRow("File isawav_1_32_8000_le.wav") << QString("isawav_1_32_8000_le.wav") << tst_QWaveDecoder::FormatDescriptor << 1 << 32 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_32_44100_le.wav") << QString("isawav_1_32_44100_le.wav") << tst_QWaveDecoder::FormatDescriptor << 1 << 32 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_32_8000_be.wav") << QString("isawav_2_32_8000_be.wav") << tst_QWaveDecoder::FormatDescriptor << 2 << 32 << 8000 << QAudioFormat::BigEndian;
- QTest::newRow("File isawav_2_32_44100_be.wav") << QString("isawav_2_32_44100_be.wav") << tst_QWaveDecoder::FormatDescriptor << 2 << 32 << 44100 << QAudioFormat::BigEndian;
-}
-
-void tst_QWaveDecoder::file()
-{
- QFETCH(QString, file);
- QFETCH(tst_QWaveDecoder::Corruption, corruption);
- QFETCH(int, channels);
- QFETCH(int, samplesize);
- QFETCH(int, samplerate);
- QFETCH(QAudioFormat::Endian, byteorder);
-
- QFile stream;
- stream.setFileName(QString("data/") + file);
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
- QSignalSpy parsingErrorSpy(&waveDecoder, SIGNAL(parsingError()));
-
- if (corruption == NotAWav) {
- QSKIP("Not all failures detected correctly yet", SkipSingle);
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == NoSampleData) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() == 0);
- QVERIFY(waveDecoder.duration() == 0);
- } else if (corruption == FormatDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == FormatString) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(!waveDecoder.audioFormat().isValid());
- } else if (corruption == DataDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(waveDecoder.size() == 0);
- } else if (corruption == None) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() > 0);
- QVERIFY(waveDecoder.duration() == 250);
- QAudioFormat format = waveDecoder.audioFormat();
- QVERIFY(format.isValid());
- QVERIFY(format.channels() == channels);
- QVERIFY(format.sampleSize() == samplesize);
- QVERIFY(format.sampleRate() == samplerate);
- if (format.sampleSize() != 8) {
- QVERIFY(format.byteOrder() == byteorder);
- }
- }
-
- stream.close();
-}
-
-void tst_QWaveDecoder::http()
-{
- QFETCH(QString, file);
- QFETCH(tst_QWaveDecoder::Corruption, corruption);
- QFETCH(int, channels);
- QFETCH(int, samplesize);
- QFETCH(int, samplerate);
- QFETCH(QAudioFormat::Endian, byteorder);
-
- QFile stream;
- stream.setFileName(QString("data/") + file);
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QNetworkAccessManager nam;
-
- QNetworkReply *reply = nam.get(QNetworkRequest(QUrl::fromLocalFile(QString::fromLatin1("data/") + file)));
-
- QWaveDecoder waveDecoder(reply);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
- QSignalSpy parsingErrorSpy(&waveDecoder, SIGNAL(parsingError()));
-
- if (corruption == NotAWav) {
- QSKIP("Not all failures detected correctly yet", SkipSingle);
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == NoSampleData) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() == 0);
- QVERIFY(waveDecoder.duration() == 0);
- } else if (corruption == FormatDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == FormatString) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(!waveDecoder.audioFormat().isValid());
- } else if (corruption == DataDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(waveDecoder.size() == 0);
- } else if (corruption == None) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() > 0);
- QVERIFY(waveDecoder.duration() == 250);
- QAudioFormat format = waveDecoder.audioFormat();
- QVERIFY(format.isValid());
- QVERIFY(format.channels() == channels);
- QVERIFY(format.sampleSize() == samplesize);
- QVERIFY(format.sampleRate() == samplerate);
- if (format.sampleSize() != 8) {
- QVERIFY(format.byteOrder() == byteorder);
- }
- }
-
- delete reply;
-}
-
-void tst_QWaveDecoder::readAllAtOnce()
-{
- QFile stream;
- stream.setFileName(QString("data/isawav_2_8_44100.wav"));
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
-
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QVERIFY(waveDecoder.size() > 0);
-
- QByteArray buffer;
- buffer.resize(waveDecoder.size());
-
- qint64 readSize = waveDecoder.read(buffer.data(), waveDecoder.size());
- QVERIFY(readSize == waveDecoder.size());
-
- readSize = waveDecoder.read(buffer.data(), 1);
- QVERIFY(readSize == 0);
-
- stream.close();
-}
-
-void tst_QWaveDecoder::readPerByte()
-{
- QFile stream;
- stream.setFileName(QString("data/isawav_2_8_44100.wav"));
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
-
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QVERIFY(waveDecoder.size() > 0);
-
- qint64 readSize = 0;
- char buf;
- for (int ii = 0; ii < waveDecoder.size(); ++ii)
- readSize += waveDecoder.read(&buf, 1);
- QVERIFY(readSize == waveDecoder.size());
- QVERIFY(waveDecoder.read(&buf,1) == 0);
-
- stream.close();
-}
-
-Q_DECLARE_METATYPE(tst_QWaveDecoder::Corruption)
-Q_DECLARE_METATYPE(QAudioFormat::Endian)
-
-QTEST_MAIN(tst_QWaveDecoder)
-
-#include "tst_qwavedecoder.moc"
-