annotate data/fileio/test/svcore-data-fileio-test.cpp @ 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 a77fc6da288b
children 83cb6e9d769b
rev   line source
Chris@756 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@879 2 /*
Chris@879 3 Sonic Visualiser
Chris@879 4 An audio file viewer and annotation editor.
Chris@879 5 Centre for Digital Music, Queen Mary, University of London.
Chris@879 6 This file copyright 2013 Chris Cannam.
Chris@879 7
Chris@879 8 This program is free software; you can redistribute it and/or
Chris@879 9 modify it under the terms of the GNU General Public License as
Chris@879 10 published by the Free Software Foundation; either version 2 of the
Chris@879 11 License, or (at your option) any later version. See the file
Chris@879 12 COPYING included with this distribution for more information.
Chris@879 13 */
Chris@756 14
Chris@756 15 #include "AudioFileReaderTest.h"
Chris@1698 16 #include "BogusAudioFileReaderTest.h"
Chris@1359 17 #include "AudioFileWriterTest.h"
Chris@1345 18 #include "EncodingTest.h"
Chris@1359 19 #include "MIDIFileReaderTest.h"
Chris@1524 20 #include "CSVFormatTest.h"
dev@1430 21 #include "CSVStreamWriterTest.h"
Chris@756 22
Chris@1601 23 #include "system/Init.h"
Chris@1601 24
Chris@756 25 #include <QtTest>
Chris@756 26
Chris@756 27 #include <iostream>
Chris@756 28
Chris@756 29 int main(int argc, char *argv[])
Chris@756 30 {
Chris@756 31 int good = 0, bad = 0;
Chris@756 32
Chris@1601 33 svSystemSpecificInitialisation();
Chris@1601 34
Chris@1346 35 QString testDir;
Chris@1346 36
Chris@1346 37 #ifdef Q_OS_WIN
Chris@1346 38 // incredible to have to hardcode this, but I just can't figure out how to
Chris@1346 39 // get QMAKE_POST_LINK to add an arg to its command successfully on Windows
Chris@1346 40 testDir = "../sonic-visualiser/svcore/data/fileio/test";
Chris@1346 41 #endif
Chris@1346 42
Chris@756 43 QCoreApplication app(argc, argv);
Chris@1392 44 app.setOrganizationName("sonic-visualiser");
Chris@1524 45 app.setApplicationName("test-svcore-data-fileio");
Chris@756 46
Chris@1607 47 if (argc == 3 && string(argv[1]) == "--testdir") {
Chris@1607 48 testDir = argv[2];
Chris@1607 49 argc = 1;
Chris@1607 50 }
Chris@1607 51
Chris@1504 52 if (testDir != "") {
Chris@1504 53 SVCERR << "Setting test directory base path to \"" << testDir << "\"" << endl;
Chris@1504 54 }
Chris@1504 55
Chris@756 56 {
Chris@1346 57 AudioFileReaderTest t(testDir);
Chris@1346 58 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1346 59 else ++bad;
Chris@756 60 }
Chris@756 61
Chris@1345 62 {
Chris@1359 63 AudioFileWriterTest t(testDir);
Chris@1359 64 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1359 65 else ++bad;
Chris@1359 66 }
Chris@1359 67
Chris@1359 68 {
Chris@1698 69 BogusAudioFileReaderTest t;
Chris@1698 70 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1698 71 else ++bad;
Chris@1698 72 }
Chris@1698 73
Chris@1698 74 {
Chris@1346 75 EncodingTest t(testDir);
Chris@1346 76 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1346 77 else ++bad;
Chris@1345 78 }
Chris@1345 79
Chris@1359 80 {
Chris@1359 81 MIDIFileReaderTest t(testDir);
Chris@1359 82 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1359 83 else ++bad;
Chris@1359 84 }
Chris@1359 85
dev@1437 86 {
Chris@1524 87 CSVFormatTest t(testDir);
Chris@1524 88 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1524 89 else ++bad;
Chris@1524 90 }
Chris@1524 91
Chris@1524 92 {
dev@1437 93 CSVStreamWriterTest t;
dev@1437 94 if (QTest::qExec(&t, argc, argv) == 0) ++good;
dev@1437 95 else ++bad;
dev@1437 96 }
dev@1437 97
Chris@756 98 if (bad > 0) {
Chris@1524 99 SVCERR << "\n********* " << bad << " test suite(s) failed!\n" << endl;
Chris@1429 100 return 1;
Chris@756 101 } else {
Chris@1524 102 SVCERR << "All tests passed" << endl;
Chris@1429 103 return 0;
Chris@756 104 }
Chris@756 105 }