changeset 1476:5afbac960a30 plugin-path-config

Environment var tests (beginnings of)
author Chris Cannam
date Thu, 07 Jun 2018 16:18:42 +0100
parents bd1a2cacd1e7
children b60cb1637634
files data/model/test/svcore-data-model-test.cpp system/test/TestEnv.h system/test/files.pri system/test/svcore-system-test.cpp
diffstat 4 files changed, 142 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/data/model/test/svcore-data-model-test.cpp	Thu Jun 07 15:35:04 2018 +0100
+++ b/data/model/test/svcore-data-model-test.cpp	Thu Jun 07 16:18:42 2018 +0100
@@ -34,10 +34,10 @@
     }
 
     if (bad > 0) {
-    SVCERR << "\n********* " << bad << " test suite(s) failed!\n" << endl;
+        SVCERR << "\n********* " << bad << " test suite(s) failed!\n" << endl;
         return 1;
     } else {
-    SVCERR << "All tests passed" << endl;
+        SVCERR << "All tests passed" << endl;
         return 0;
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/system/test/TestEnv.h	Thu Jun 07 16:18:42 2018 +0100
@@ -0,0 +1,94 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Sonic Visualiser
+    An audio file viewer and annotation editor.
+    Centre for Digital Music, Queen Mary, University of London.
+    
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  See the file
+    COPYING included with this distribution for more information.
+*/
+
+#ifndef TEST_ENV_H
+#define TEST_ENV_H
+
+#include "../System.h"
+
+#include <QObject>
+#include <QtTest>
+#include <QDir>
+
+#include <iostream>
+
+using namespace std;
+
+const std::string utf8_name_sprkt = "\343\202\271\343\203\235\343\203\274\343\202\257\343\201\256\345\257\272\351\231\242";
+
+class TestEnv : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void getAbsent()
+    {
+        string value = "blather";
+        bool rv = getEnvUtf8("nonexistent_environment_variable_I_sincerely_hope_including_a_missspellling_just_to_be_sure",
+                             value);
+        QCOMPARE(rv, false);
+        QCOMPARE(value, "");
+    }
+    
+    void roundTripAsciiAscii()
+    {
+        bool rv = false;
+        rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_A", "EXPECTED_VALUE");
+        QCOMPARE(rv, true);
+        string value;
+        rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_A", value);
+        QCOMPARE(rv, true);
+        QCOMPARE(value, "EXPECTED_VALUE");
+    }
+    
+    void roundTripAsciiUtf8()
+    {
+        bool rv = false;
+        rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_U", utf8_name_sprkt);
+        QCOMPARE(rv, true);
+        string value;
+        rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_U", value);
+        QCOMPARE(rv, true);
+        QCOMPARE(value, utf8_name_sprkt);
+    }
+    
+    void roundTripUtf8Ascii()
+    {
+        bool rv = false;
+        rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", "EXPECTED_VALUE");
+        QCOMPARE(rv, true);
+        string value;
+        rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", value);
+        QCOMPARE(rv, true);
+        QCOMPARE(value, "EXPECTED_VALUE");
+    }
+
+    void roundTripUtf8Utf8()
+    {
+        bool rv = false;
+        rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", utf8_name_sprkt);
+        QCOMPARE(rv, true);
+        string value;
+        rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", value);
+        QCOMPARE(rv, true);
+        QCOMPARE(value, utf8_name_sprkt);
+    }
+};
+
+#endif
+
+    
+
+    
+        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/system/test/files.pri	Thu Jun 07 16:18:42 2018 +0100
@@ -0,0 +1,5 @@
+TEST_HEADERS = \
+	     TestEnv.h
+	     
+TEST_SOURCES += \
+	     svcore-system-test.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/system/test/svcore-system-test.cpp	Thu Jun 07 16:18:42 2018 +0100
@@ -0,0 +1,41 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+/*
+    Sonic Visualiser
+    An audio file viewer and annotation editor.
+    Centre for Digital Music, Queen Mary, University of London.
+    
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  See the file
+    COPYING included with this distribution for more information.
+*/
+
+#include "TestEnv.h"
+
+#include <QtTest>
+
+#include <iostream>
+
+int main(int argc, char *argv[])
+{
+    int good = 0, bad = 0;
+
+    QCoreApplication app(argc, argv);
+    app.setOrganizationName("sonic-visualiser");
+    app.setApplicationName("test-svcore-system");
+
+    {
+        TestEnv t;
+        if (QTest::qExec(&t, argc, argv) == 0) ++good;
+        else ++bad;
+    }
+
+    if (bad > 0) {
+        SVCERR << "\n********* " << bad << " test suite(s) failed!\n" << endl;
+        return 1;
+    } else {
+        SVCERR << "All tests passed" << endl;
+        return 0;
+    }
+}