annotate data/fileio/test/svcore-data-fileio-test.cpp @ 1456:904e031c9c76

Fix hangs due to nested mutex lockers (as a result of emitting signals from within a locked section)
author Chris Cannam
date Tue, 24 Apr 2018 10:01:34 +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 }