Page MenuHomePhabricator

No OneTemporary

diff --git a/sqliter.pro b/sqliter.pro
new file mode 100644
--- /dev/null
+++ b/sqliter.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ sqliter \
+ tests
diff --git a/sqliter/sqliter.cpp b/sqliter/sqliter.cpp
new file mode 100644
--- /dev/null
+++ b/sqliter/sqliter.cpp
@@ -0,0 +1,6 @@
+#include "sqliter.h"
+
+
+Sqliter::Sqliter()
+{
+}
diff --git a/sqliter/sqliter.h b/sqliter/sqliter.h
new file mode 100644
--- /dev/null
+++ b/sqliter/sqliter.h
@@ -0,0 +1,13 @@
+#ifndef SQLITER_H
+#define SQLITER_H
+
+#include "sqliter_global.h"
+
+class SQLITERSHARED_EXPORT Sqliter
+{
+
+public:
+ Sqliter();
+};
+
+#endif // SQLITER_H
diff --git a/sqliter/sqliter.pro b/sqliter/sqliter.pro
new file mode 100644
--- /dev/null
+++ b/sqliter/sqliter.pro
@@ -0,0 +1,35 @@
+ #-------------------------------------------------
+#
+# Project created by QtCreator 2018-03-22T16:38:23
+#
+#-------------------------------------------------
+
+QT -= gui
+
+TARGET = sqliter
+TEMPLATE = lib
+
+DEFINES += SQLITER_LIBRARY
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which has been marked as deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+# You can also make your code fail to compile if you use deprecated APIs.
+# In order to do so, uncomment the following line.
+# You can also select to disable deprecated APIs only up to a certain version of Qt.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ sqliter.cpp
+
+HEADERS += \
+ sqliter.h \
+ sqliter_global.h
+
+unix {
+ target.path = /usr/lib
+ INSTALLS += target
+}
diff --git a/sqliter/sqliter_global.h b/sqliter/sqliter_global.h
new file mode 100644
--- /dev/null
+++ b/sqliter/sqliter_global.h
@@ -0,0 +1,12 @@
+#ifndef SQLITER_GLOBAL_H
+#define SQLITER_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#if defined(SQLITER_LIBRARY)
+# define SQLITERSHARED_EXPORT Q_DECL_EXPORT
+#else
+# define SQLITERSHARED_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // SQLITER_GLOBAL_H
diff --git a/tests/sqrtest.cpp b/tests/sqrtest.cpp
new file mode 100644
--- /dev/null
+++ b/tests/sqrtest.cpp
@@ -0,0 +1,100 @@
+#include <QSqlDatabase>
+#include <QSqlQuery>
+#include <QString>
+#include <QtTest>
+
+class SqliterTest : public QObject
+{
+ Q_OBJECT
+
+public:
+ SqliterTest() = default;
+
+private Q_SLOTS:
+ void initTestCase();
+ void testUpperDefault();
+ void testLowerDefault();
+ void testUpperR();
+ void testLowerR();
+};
+
+void SqliterTest::initTestCase()
+{
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
+ db.setDatabaseName(":memory:");
+ QVERIFY(db.open());
+ QSqlQuery q;
+ QVERIFY(q.exec("CREATE TABLE tt1 (id INTEGER PRIMARY KEY, t TEXT)"));
+ QVERIFY(db.transaction());
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (1, 'One')")));
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (2, 'two')")));
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (3, 'THREE')")));
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (4, 'Четыре')")));
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (5, 'пять')")));
+ QVERIFY(q.exec(QStringLiteral("INSERT INTO tt1 (id, t) VALUES (6, 'ШЕСТЬ')")));
+ QVERIFY(db.commit());
+}
+
+void SqliterTest::testUpperDefault()
+{
+ QStringList list;
+ QSqlQuery q;
+ QVERIFY(q.exec("SELECT UPPER(t) FROM tt1 ORDER BY id"));
+ while (q.next())
+ list.append(q.value(0).toString());
+ QVERIFY(list[0] == "ONE");
+ QVERIFY(list[1] == "TWO");
+ QVERIFY(list[2] == "THREE");
+ QVERIFY(list[3] == "Четыре");
+ QVERIFY(list[4] == "пять");
+ QVERIFY(list[5] == "ШЕСТЬ");
+}
+
+void SqliterTest::testLowerDefault()
+{
+ QStringList list;
+ QSqlQuery q;
+ QVERIFY(q.exec("SELECT LOWER(t) FROM tt1 ORDER BY id"));
+ while (q.next())
+ list.append(q.value(0).toString());
+ QVERIFY(list[0] == "one");
+ QVERIFY(list[1] == "two");
+ QVERIFY(list[2] == "three");
+ QVERIFY(list[3] == "Четыре");
+ QVERIFY(list[4] == "пять");
+ QVERIFY(list[5] == "ШЕСТЬ");
+}
+
+void SqliterTest::testUpperR()
+{
+ QStringList list;
+ QSqlQuery q;
+ QVERIFY(q.exec("SELECT UPPER(t) FROM tt1 ORDER BY id"));
+ while (q.next())
+ list.append(q.value(0).toString());
+ QVERIFY(list[0] == "ONE");
+ QVERIFY(list[1] == "TWO");
+ QVERIFY(list[2] == "THREE");
+ QVERIFY(list[3] == "ЧЕТЫРЕ");
+ QVERIFY(list[4] == "ПЯТЬ");
+ QVERIFY(list[5] == "ШЕСТЬ");
+}
+
+void SqliterTest::testLowerR()
+{
+ QStringList list;
+ QSqlQuery q;
+ QVERIFY(q.exec("SELECT LOWER(t) FROM tt1 ORDER BY id"));
+ while (q.next())
+ list.append(q.value(0).toString());
+ QVERIFY(list[0] == "one");
+ QVERIFY(list[1] == "two");
+ QVERIFY(list[2] == "three");
+ QVERIFY(list[3] == "четыре");
+ QVERIFY(list[4] == "пять");
+ QVERIFY(list[5] == "шесть");
+}
+
+QTEST_APPLESS_MAIN(SqliterTest)
+
+#include "sqrtest.moc"
diff --git a/tests/tests.pro b/tests/tests.pro
new file mode 100644
--- /dev/null
+++ b/tests/tests.pro
@@ -0,0 +1,32 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2018-03-22T16:40:26
+#
+#-------------------------------------------------
+
+TEMPLATE = app
+TARGET = sqrtest
+
+QT += testlib sql
+QT -= gui
+
+CONFIG += console
+CONFIG -= app_bundle
+
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which has been marked as deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+# You can also make your code fail to compile if you use deprecated APIs.
+# In order to do so, uncomment the following line.
+# You can also select to disable deprecated APIs only up to a certain version of Qt.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+
+SOURCES += \
+ sqrtest.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD/\\\"

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jul 29, 5:38 AM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
139598

Event Timeline