aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_generator/dummygentest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_generator/dummygentest.cpp')
-rw-r--r--tests/test_generator/dummygentest.cpp102
1 files changed, 51 insertions, 51 deletions
diff --git a/tests/test_generator/dummygentest.cpp b/tests/test_generator/dummygentest.cpp
index 55fe3b45f..3261a3cac 100644
--- a/tests/test_generator/dummygentest.cpp
+++ b/tests/test_generator/dummygentest.cpp
@@ -28,35 +28,32 @@
#include <QtTest/QTest>
#include <QProcess>
-#define HEADER_CONTENTS "struct Dummy {};"
-#define TYPESYSTEM_CONTENTS "<typesystem package='dummy'><value-type name='Dummy'/></typesystem>"
#define GENERATED_CONTENTS "// Generated code for class: Dummy"
-#define GENERATED_FILE "dummy/dummy_generated.txt"
-void DummyGenTest::testCallGenRunnerWithFullPathToDummyGenModule()
+void DummyGenTest::initTestCase()
{
- QTemporaryFile headerFile;
- headerFile.open();
- QCOMPARE(headerFile.write(HEADER_CONTENTS), qint64(sizeof(HEADER_CONTENTS)-1));
- headerFile.close();
-
- QTemporaryFile typesystemFile;
- typesystemFile.open();
- QCOMPARE(typesystemFile.write(TYPESYSTEM_CONTENTS), qint64(sizeof(TYPESYSTEM_CONTENTS)-1));
- typesystemFile.close();
-
- QString generatedFileName = QString("%1/" GENERATED_FILE).arg(QDir::tempPath());
- QFile::remove(generatedFileName);
+ int argc = 0;
+ char* argv[] = {NULL};
+ QCoreApplication app(argc, argv);
+ workDir = QCoreApplication::applicationDirPath();
+
+ headerFilePath = workDir + "/test_global.h";
+ typesystemFilePath = workDir + "/test_typesystem.xml";
+ projectFilePath = workDir + "/dummygentest-project.txt";
+ generatedFilePath = QString("%1/dummy/dummy_generated.txt").arg(QDir::tempPath());
+}
+void DummyGenTest::testCallGenRunnerWithFullPathToDummyGenModule()
+{
QStringList args;
args.append("--generator-set=" DUMMYGENERATOR_BINARY_DIR "/dummy_generator" MODULE_EXTENSION);
args.append(QString("--output-directory=%1").arg(QDir::tempPath()));
- args.append(headerFile.fileName());
- args.append(typesystemFile.fileName());
+ args.append(headerFilePath);
+ args.append(typesystemFilePath);
int result = QProcess::execute("generatorrunner", args);
QCOMPARE(result, 0);
- QFile generatedFile(generatedFileName);
+ QFile generatedFile(generatedFilePath);
generatedFile.open(QIODevice::ReadOnly);
QCOMPARE(generatedFile.readAll().trimmed(), QByteArray(GENERATED_CONTENTS).trimmed());
generatedFile.close();
@@ -66,28 +63,15 @@ void DummyGenTest::testCallGenRunnerWithFullPathToDummyGenModule()
void DummyGenTest::testCallGenRunnerWithNameOfDummyGenModule()
{
- QTemporaryFile headerFile;
- headerFile.open();
- QCOMPARE(headerFile.write(HEADER_CONTENTS), qint64(sizeof(HEADER_CONTENTS)-1));
- headerFile.close();
-
- QTemporaryFile typesystemFile;
- typesystemFile.open();
- QCOMPARE(typesystemFile.write(TYPESYSTEM_CONTENTS), qint64(sizeof(TYPESYSTEM_CONTENTS)-1));
- typesystemFile.close();
-
- QString generatedFileName = QString("%1/" GENERATED_FILE).arg(QDir::tempPath());
- QFile::remove(generatedFileName);
-
QStringList args;
args.append("--generator-set=dummy");
args.append(QString("--output-directory=%1").arg(QDir::tempPath()));
- args.append(headerFile.fileName());
- args.append(typesystemFile.fileName());
+ args.append(headerFilePath);
+ args.append(typesystemFilePath);
int result = QProcess::execute("generatorrunner", args);
QCOMPARE(result, 0);
- QFile generatedFile(generatedFileName);
+ QFile generatedFile(generatedFilePath);
generatedFile.open(QIODevice::ReadOnly);
QCOMPARE(generatedFile.readAll().trimmed(), QByteArray(GENERATED_CONTENTS).trimmed());
generatedFile.close();
@@ -97,27 +81,14 @@ void DummyGenTest::testCallGenRunnerWithNameOfDummyGenModule()
void DummyGenTest::testCallDummyGeneratorExecutable()
{
- QTemporaryFile headerFile;
- headerFile.open();
- QCOMPARE(headerFile.write(HEADER_CONTENTS), qint64(sizeof(HEADER_CONTENTS)-1));
- headerFile.close();
-
- QTemporaryFile typesystemFile;
- typesystemFile.open();
- QCOMPARE(typesystemFile.write(TYPESYSTEM_CONTENTS), qint64(sizeof(TYPESYSTEM_CONTENTS)-1));
- typesystemFile.close();
-
- QString generatedFileName = QString("%1/" GENERATED_FILE).arg(QDir::tempPath());
- QFile::remove(generatedFileName);
-
QStringList args;
args.append(QString("--output-directory=%1").arg(QDir::tempPath()));
- args.append(headerFile.fileName());
- args.append(typesystemFile.fileName());
+ args.append(headerFilePath);
+ args.append(typesystemFilePath);
int result = QProcess::execute(DUMMYGENERATOR_BINARY, args);
QCOMPARE(result, 0);
- QFile generatedFile(generatedFileName);
+ QFile generatedFile(generatedFilePath);
generatedFile.open(QIODevice::ReadOnly);
QCOMPARE(generatedFile.readAll().trimmed(), QByteArray(GENERATED_CONTENTS).trimmed());
generatedFile.close();
@@ -125,6 +96,35 @@ void DummyGenTest::testCallDummyGeneratorExecutable()
QVERIFY(generatedFile.remove());
}
+void DummyGenTest::testProjectFileArgumentsReading()
+{
+ QStringList args(QString("--project-file=%1/dummygentest-project.txt").arg(workDir));
+ int result = QProcess::execute("generatorrunner", args);
+ QCOMPARE(result, 0);
+
+ QFile logFile(workDir + "/dummygen-args.log");
+ logFile.open(QIODevice::ReadOnly);
+ QStringList logContents;
+ while (!logFile.atEnd())
+ logContents << logFile.readLine().trimmed();
+ logContents.sort();
+ QCOMPARE(logContents[0], QString("api-version = 1.2.3"));
+ QCOMPARE(logContents[1], QString("debug = sparse"));
+ QVERIFY(logContents[2].startsWith("dump-arguments = "));
+ QVERIFY(logContents[2].endsWith("dummygen-args.log"));
+ QCOMPARE(logContents[3], QString("generator-set = dummy"));
+ QVERIFY(logContents[4].startsWith("header-file = "));
+ QVERIFY(logContents[4].endsWith("test_global.h"));
+ QCOMPARE(logContents[5], QString("include-paths = /include/path/location1:/include/path/location2"));
+ QCOMPARE(logContents[6], QString("no-suppress-warnings"));
+ QCOMPARE(logContents[7], QString("output-directory = /tmp/output"));
+ QVERIFY(logContents[8].startsWith("project-file = "));
+ QVERIFY(logContents[8].endsWith("dummygentest-project.txt"));
+ QVERIFY(logContents[9].startsWith("typesystem-file = "));
+ QVERIFY(logContents[9].endsWith("test_typesystem.xml"));
+ QCOMPARE(logContents[10], QString("typesystem-paths = /typesystem/path/location1:/typesystem/path/location2"));
+}
+
QTEST_APPLESS_MAIN(DummyGenTest)
#include "dummygentest.moc"