annotate base/test/TestStringBits.h @ 1211:5a1198083d9a piper

Pull out model creation into the transformer thread run(), so that all communications with the plugin server happen on a single thread. Then make the model accessor wait for them to be created (which still happens right at the start of processing) before returning.
author Chris Cannam
date Mon, 17 Oct 2016 14:18:23 +0100
parents eecf544bed92
children 64ef24ebb19c
rev   line source
Chris@1022 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@1022 2
Chris@1022 3 /*
Chris@1022 4 Sonic Visualiser
Chris@1022 5 An audio file viewer and annotation editor.
Chris@1022 6 Centre for Digital Music, Queen Mary, University of London.
Chris@1022 7
Chris@1022 8 This program is free software; you can redistribute it and/or
Chris@1022 9 modify it under the terms of the GNU General Public License as
Chris@1022 10 published by the Free Software Foundation; either version 2 of the
Chris@1022 11 License, or (at your option) any later version. See the file
Chris@1022 12 COPYING included with this distribution for more information.
Chris@1022 13 */
Chris@1022 14
Chris@1022 15 #ifndef TEST_STRINGBITS_H
Chris@1022 16 #define TEST_STRINGBITS_H
Chris@1022 17
Chris@1022 18 #include "../StringBits.h"
Chris@1022 19
Chris@1022 20 #include <QObject>
Chris@1022 21 #include <QStringList>
Chris@1022 22 #include <QtTest>
Chris@1022 23
Chris@1022 24 #include <iostream>
Chris@1022 25
Chris@1022 26 using namespace std;
Chris@1022 27
Chris@1022 28 class TestStringBits : public QObject
Chris@1022 29 {
Chris@1022 30 Q_OBJECT
Chris@1022 31
Chris@1022 32 private:
Chris@1022 33 void testSplitQuoted(QString in, QStringList out) {
Chris@1022 34 // Only suitable where the output strings do not have
Chris@1022 35 // consecutive spaces in them
Chris@1022 36 QCOMPARE(StringBits::splitQuoted(in, ' '), out);
Chris@1022 37 QString in2(in);
Chris@1022 38 in2.replace(' ', ',');
Chris@1022 39 QStringList out2;
Chris@1022 40 foreach (QString o, out) {
Chris@1022 41 out2 << o.replace(' ', ',');
Chris@1022 42 }
Chris@1022 43 QCOMPARE(StringBits::splitQuoted(in2, ','), out2);
Chris@1022 44 }
Chris@1022 45
Chris@1022 46 private slots:
Chris@1022 47 void simple() {
Chris@1022 48 QString in = "a b c d";
Chris@1022 49 QStringList out;
Chris@1022 50 out << "a" << "b" << "c" << "d";
Chris@1022 51 testSplitQuoted(in, out);
Chris@1022 52 }
Chris@1022 53
Chris@1022 54 void dquoted() {
Chris@1022 55 QString in = "a \"b c\" d";
Chris@1022 56 QStringList out;
Chris@1022 57 out << "a" << "b c" << "d";
Chris@1022 58 testSplitQuoted(in, out);
Chris@1022 59 }
Chris@1022 60
Chris@1022 61 void drunon() {
Chris@1022 62 QString in = "a \"b c\"d e";
Chris@1022 63 QStringList out;
Chris@1022 64 out << "a" << "b cd" << "e";
Chris@1022 65 testSplitQuoted(in, out);
Chris@1022 66 }
Chris@1022 67
Chris@1022 68 void squoted() {
Chris@1022 69 QString in = "a 'b c' d";
Chris@1022 70 QStringList out;
Chris@1022 71 out << "a" << "b c" << "d";
Chris@1022 72 testSplitQuoted(in, out);
Chris@1022 73 }
Chris@1022 74
Chris@1022 75 void srunon() {
Chris@1022 76 QString in = "a 'b c'd e";
Chris@1022 77 QStringList out;
Chris@1022 78 out << "a" << "b cd" << "e";
Chris@1022 79 testSplitQuoted(in, out);
Chris@1022 80 }
Chris@1022 81
Chris@1022 82 void dempty() {
Chris@1022 83 QString in = "\"\" \"\" \"\"";
Chris@1022 84 QStringList out;
Chris@1022 85 out << "" << "" << "";
Chris@1022 86 testSplitQuoted(in, out);
Chris@1022 87 }
Chris@1022 88
Chris@1022 89 void sempty() {
Chris@1022 90 QString in = "'' '' ''";
Chris@1022 91 QStringList out;
Chris@1022 92 out << "" << "" << "";
Chris@1022 93 testSplitQuoted(in, out);
Chris@1022 94 }
Chris@1022 95
Chris@1022 96 void descaped() {
Chris@1022 97 QString in = "a \"b c\\\" d\"";
Chris@1022 98 QStringList out;
Chris@1022 99 out << "a" << "b c\" d";
Chris@1022 100 testSplitQuoted(in, out);
Chris@1022 101 }
Chris@1022 102
Chris@1022 103 void sescaped() {
Chris@1022 104 QString in = "a 'b c\\' d'";
Chris@1022 105 QStringList out;
Chris@1022 106 out << "a" << "b c' d";
Chris@1022 107 testSplitQuoted(in, out);
Chris@1022 108 }
Chris@1022 109
Chris@1022 110 void dnested() {
Chris@1022 111 QString in = "a \"b c' d\"";
Chris@1022 112 QStringList out;
Chris@1022 113 out << "a" << "b c' d";
Chris@1022 114 testSplitQuoted(in, out);
Chris@1022 115 }
Chris@1022 116
Chris@1022 117 void snested() {
Chris@1022 118 QString in = "a 'b c\" d'";
Chris@1022 119 QStringList out;
Chris@1022 120 out << "a" << "b c\" d";
Chris@1022 121 testSplitQuoted(in, out);
Chris@1022 122 }
Chris@1022 123
Chris@1022 124 void snested2() {
Chris@1022 125 QString in = "aa 'bb cc\" dd'";
Chris@1022 126 QStringList out;
Chris@1022 127 out << "aa" << "bb cc\" dd";
Chris@1022 128 testSplitQuoted(in, out);
Chris@1022 129 }
Chris@1022 130
Chris@1022 131 void qquoted() {
Chris@1022 132 QString in = "a'a 'bb' \\\"cc\" dd\\\"";
Chris@1022 133 QStringList out;
Chris@1022 134 out << "a'a" << "bb" << "\"cc\"" << "dd\"";
Chris@1022 135 testSplitQuoted(in, out);
Chris@1022 136 }
Chris@1022 137
Chris@1022 138 void multispace() {
Chris@1022 139 QString in = " a'a \\' 'bb' ' \\\"cc\" ' dd\\\" '";
Chris@1022 140 QStringList out;
Chris@1022 141 out << "a'a" << "'" << "bb" << " \"cc\" " << "dd\"" << "'";
Chris@1022 142 QCOMPARE(StringBits::splitQuoted(in, ' '), out);
Chris@1022 143
Chris@1022 144 QString in2 = ",,a'a,\\',,,,,,,,,'bb',,,,',,,,,,\\\"cc\",',dd\\\",'";
Chris@1022 145 QStringList out2;
Chris@1022 146 out2 << "" << "" << "a'a" << "'" << "" << "" << "" << "" << "" << ""
Chris@1022 147 << "" << "" << "bb" << "" << "" << "" << ",,,,,,\"cc\","
Chris@1022 148 << "dd\"" << "'";
Chris@1022 149 QCOMPARE(StringBits::splitQuoted(in2, ','), out2);
Chris@1022 150 }
Chris@1022 151 };
Chris@1022 152
Chris@1022 153 #endif
Chris@1022 154
Chris@1022 155 /* r928
Chris@1022 156 Config: Using QtTest library 5.3.2, Qt 5.3.2
Chris@1022 157 PASS : TestStringBits::initTestCase()
Chris@1022 158 PASS : TestStringBits::simple()
Chris@1022 159 PASS : TestStringBits::dquoted()
Chris@1022 160 PASS : TestStringBits::squoted()
Chris@1022 161 PASS : TestStringBits::descaped()
Chris@1022 162 FAIL! : TestStringBits::sescaped() Compared lists have different sizes.
Chris@1022 163 Actual (StringBits::splitQuoted(in, ' ')) size: 3
Chris@1022 164 Expected (out) size: 2
Chris@1022 165 Loc: [o/../TestStringBits.h(65)]
Chris@1022 166 PASS : TestStringBits::dnested()
Chris@1022 167 PASS : TestStringBits::snested()
Chris@1022 168 PASS : TestStringBits::snested2()
Chris@1022 169 PASS : TestStringBits::qquoted()
Chris@1022 170 FAIL! : TestStringBits::multispace() Compared lists differ at index 1.
Chris@1022 171 Actual (StringBits::splitQuoted(in, ' ')): " "
Chris@1022 172 Expected (out): "'"
Chris@1022 173 Loc: [o/../TestStringBits.h(100)]
Chris@1022 174 FAIL! : TestStringBits::qcommas() Compared lists have different sizes.
Chris@1022 175 Actual (StringBits::splitQuoted(in, ',')) size: 4
Chris@1022 176 Expected (out) size: 3
Chris@1022 177 Loc: [o/../TestStringBits.h(107)]
Chris@1022 178 PASS : TestStringBits::cleanupTestCase()
Chris@1022 179 Totals: 10 passed, 3 failed, 0 skipped
Chris@1022 180 */
Chris@1022 181
Chris@1022 182 /*curr
Chris@1022 183 PASS : TestStringBits::initTestCase()
Chris@1022 184 PASS : TestStringBits::simple()
Chris@1022 185 PASS : TestStringBits::dquoted()
Chris@1022 186 PASS : TestStringBits::squoted()
Chris@1022 187 PASS : TestStringBits::descaped()
Chris@1022 188 FAIL! : TestStringBits::sescaped() Compared lists have different sizes.
Chris@1022 189 Actual (StringBits::splitQuoted(in, ' ')) size: 3
Chris@1022 190 Expected (out) size: 2
Chris@1022 191 Loc: [o/../TestStringBits.h(65)]
Chris@1022 192 PASS : TestStringBits::dnested()
Chris@1022 193 PASS : TestStringBits::snested()
Chris@1022 194 PASS : TestStringBits::snested2()
Chris@1022 195 PASS : TestStringBits::qquoted()
Chris@1022 196 FAIL! : TestStringBits::multispace() Compared lists have different sizes.
Chris@1022 197 Actual (StringBits::splitQuoted(in, ' ')) size: 5
Chris@1022 198 Expected (out) size: 6
Chris@1022 199 Loc: [o/../TestStringBits.h(100)]
Chris@1022 200 PASS : TestStringBits::qcommas()
Chris@1022 201 PASS : TestStringBits::cleanupTestCase()
Chris@1022 202 Totals: 11 passed, 2 failed, 0 skipped
Chris@1022 203 */