annotate data/fileio/test/svcore-data-fileio-test.cpp @ 1496:fde8c497373f

Avoid crashing if an effects plugin can't be instantiated and so the output vector is empty in the transformer's run() method
author Chris Cannam
date Mon, 13 Aug 2018 15:25:32 +0100
parents a12fd0456f0c
children 4700b7188f6c
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@1359 16 #include "AudioFileWriterTest.h"
Chris@1345 17 #include "EncodingTest.h"
Chris@1359 18 #include "MIDIFileReaderTest.h"
dev@1430 19 #include "CSVStreamWriterTest.h"
Chris@756 20
Chris@756 21 #include <QtTest>
Chris@756 22
Chris@756 23 #include <iostream>
Chris@756 24
Chris@756 25 int main(int argc, char *argv[])
Chris@756 26 {
Chris@756 27 int good = 0, bad = 0;
Chris@756 28
Chris@1346 29 QString testDir;
Chris@1346 30
Chris@1346 31 #ifdef Q_OS_WIN
Chris@1346 32 // incredible to have to hardcode this, but I just can't figure out how to
Chris@1346 33 // get QMAKE_POST_LINK to add an arg to its command successfully on Windows
Chris@1346 34 testDir = "../sonic-visualiser/svcore/data/fileio/test";
Chris@1346 35 #endif
Chris@1346 36
Chris@1346 37 if (argc > 1) {
Chris@1428 38 SVCERR << "argc = " << argc << endl;
Chris@1346 39 testDir = argv[1];
Chris@1346 40 }
Chris@1346 41
Chris@1346 42 if (testDir != "") {
Chris@1428 43 SVCERR << "Setting test directory base path to \"" << testDir << "\"" << endl;
Chris@1346 44 }
Chris@1346 45
Chris@756 46 QCoreApplication app(argc, argv);
Chris@1392 47 app.setOrganizationName("sonic-visualiser");
Chris@756 48 app.setApplicationName("test-fileio");
Chris@756 49
Chris@756 50 {
Chris@1346 51 AudioFileReaderTest t(testDir);
Chris@1346 52 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1346 53 else ++bad;
Chris@756 54 }
Chris@756 55
Chris@1345 56 {
Chris@1359 57 AudioFileWriterTest t(testDir);
Chris@1359 58 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1359 59 else ++bad;
Chris@1359 60 }
Chris@1359 61
Chris@1359 62 {
Chris@1346 63 EncodingTest t(testDir);
Chris@1346 64 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1346 65 else ++bad;
Chris@1345 66 }
Chris@1345 67
Chris@1359 68 {
Chris@1359 69 MIDIFileReaderTest t(testDir);
Chris@1359 70 if (QTest::qExec(&t, argc, argv) == 0) ++good;
Chris@1359 71 else ++bad;
Chris@1359 72 }
Chris@1359 73
dev@1437 74 {
dev@1437 75 CSVStreamWriterTest t;
dev@1437 76 if (QTest::qExec(&t, argc, argv) == 0) ++good;
dev@1437 77 else ++bad;
dev@1437 78 }
dev@1437 79
Chris@756 80 if (bad > 0) {
Chris@1428 81 SVCERR << "\n********* " << bad << " test suite(s) failed!\n" << endl;
Chris@1429 82 return 1;
Chris@756 83 } else {
Chris@1428 84 SVCERR << "All tests passed" << endl;
Chris@1429 85 return 0;
Chris@756 86 }
Chris@756 87 }