auto generate md file for supported data types [skip ci]

This commit is contained in:
Hamed Masafi 2019-06-19 18:02:30 +04:30
parent ec449b0c8f
commit 35eb05ab8e
6 changed files with 9 additions and 157 deletions

View File

@ -1 +1,3 @@
#QT -= gui #QT -= gui
DEFINES += DOC_PATH=\\\"$$PWD/../../doc\\\"

View File

@ -8,6 +8,5 @@ SUBDIRS += \
tst_quuid \ tst_quuid \
tst_generators \ tst_generators \
tst_upgrades \ tst_upgrades \
tst_json \ tst_json
tst_supported_datatypes

View File

@ -139,7 +139,12 @@ void GeneratorsTest::cleanupTestCase()
.arg(i.key(), i.value().sqlite, i.value().mysql, .arg(i.key(), i.value().sqlite, i.value().mysql,
i.value().psql, i.value().mssql)); i.value().psql, i.value().mssql));
} }
qDebug() << p.toStdString().c_str();
QFile file(DOC_PATH "/datatypes.md");
if (file.open(QIODevice::WriteOnly)) {
file.write(p.toUtf8());
file.close();
}
} }
QTEST_MAIN(GeneratorsTest) QTEST_MAIN(GeneratorsTest)

View File

@ -1,98 +0,0 @@
#include <QtTest>
#include <QDebug>
#include <QSqlError>
#include <QElapsedTimer>
#include <tablemodel.h>
#include "tst_supported_datatypes.h"
#include "generators/sqlitegenerator.h"
#include "generators/postgresqlgenerator.h"
#include "generators/mysqlgenerator.h"
#include "generators/sqlservergenerator.h"
SupportedDataTypesTest::SupportedDataTypesTest(QObject *parent) : QObject(parent)
{
types
<< QMetaType::Bool
<< QMetaType::QBitArray
<< QMetaType::QByteArray
<< QMetaType::QDate
<< QMetaType::QDateTime
<< QMetaType::QTime
<< QMetaType::Double
<< QMetaType::Float
<< QMetaType::SChar
<< QMetaType::Char
<< QMetaType::UChar
<< QMetaType::Short
<< QMetaType::UShort
<< QMetaType::Int
<< QMetaType::UInt
<< QMetaType::Long
<< QMetaType::ULong
<< QMetaType::LongLong
<< QMetaType::ULongLong
<< QMetaType::QChar
<< QMetaType::QUrl
<< QMetaType::QJsonArray
<< QMetaType::QJsonValue
<< QMetaType::QJsonObject
<< QMetaType::QJsonDocument
<< QMetaType::QPoint
<< QMetaType::QPointF
<< QMetaType::QSize
<< QMetaType::QSizeF
<< QMetaType::QLine
<< QMetaType::QLineF
<< QMetaType::QRect
<< QMetaType::QRectF
<< QMetaType::QPolygon
<< QMetaType::QPolygonF
<< QMetaType::QStringList
<< QMetaType::QColor
<< QMetaType::QUuid
<< QMetaType::QString;
}
void SupportedDataTypesTest::initTestCase()
{
Nut::SqliteGenerator sqlite;
Nut::SqlServerGenerator mssql;
Nut::PostgreSqlGenerator pgsql;
Nut::MySqlGenerator mysql;
Nut::FieldModel *field = new Nut::FieldModel;
foreach (QMetaType::Type type, types) {
field->type = type;
result.append(Result(
type,
mssql.fieldType(field),
sqlite.fieldType(field),
pgsql.fieldType(field),
mysql.fieldType(field)
));
}
}
void SupportedDataTypesTest::cleanupTestCase()
{
qDebug() << DOC_PATH;
QString md("| Type | Sqlite | MySql | Postgresql| Ms Sql server |\n");
md.append("|--------|--------|--------|--------|--------|\n");
foreach (Result r, result)
md.append(QString("| %1 | %2 | %3 | %4 | %5 |\n")
.arg(QMetaType::typeName(r.type), r.sqlite, r.mysql, r.pgsql, r.mssql));
QFile file(DOC_PATH "/datatypes.md");
if (file.open(QIODevice::WriteOnly)) {
file.write(md.toUtf8());
file.close();
}
}
QTEST_MAIN(SupportedDataTypesTest)

View File

@ -1,38 +0,0 @@
#ifndef MAINTEST_H
#define MAINTEST_H
#include <QtCore/QObject>
#include <QtCore/qglobal.h>
class SupportedDataTypesTest : public QObject
{
Q_OBJECT
QList<QMetaType::Type> types;
struct Result
{
QMetaType::Type type;
QString mssql;
QString sqlite;
QString pgsql;
QString mysql;
Result(QMetaType::Type type, QString mssql, QString sqlite,
QString pgsql, QString mysql)
: type(type), mssql(mssql), sqlite(sqlite), pgsql(pgsql), mysql(mysql)
{}
};
QList<Result> result;
public:
explicit SupportedDataTypesTest(QObject *parent = nullptr);
signals:
private slots:
void initTestCase();
void cleanupTestCase();
};
#endif // MAINTEST_H

View File

@ -1,18 +0,0 @@
QT += testlib sql gui
TARGET = tst_datatypes
TEMPLATE = app
CONFIG += warn_on c++11
DEFINES += DOC_PATH=\\\"$$PWD/../../doc\\\"
include(../common/nut-lib.pri)
SOURCES += \
tst_supported_datatypes.cpp
HEADERS += \
tst_supported_datatypes.h
include($$PWD/../../ci-test-init.pri)