Initial testing of the preprocessor.

This commit is contained in:
Roberto Raggi
2009-03-02 11:30:43 +01:00
parent fd22788d9e
commit f4e875b9bb
5 changed files with 58 additions and 1 deletions
+15
View File
@@ -481,6 +481,21 @@ void Preprocessor::popState()
_savedStates.removeLast();
}
QByteArray Preprocessor::operator()(const QByteArray &filename,
const QByteArray &source)
{
QByteArray preprocessed;
operator()(filename, source, &preprocessed);
return preprocessed;
}
QByteArray Preprocessor::operator()(const QByteArray &source)
{
QByteArray preprocessed;
operator()(source, &preprocessed);
return preprocessed;
}
void Preprocessor::operator () (const QByteArray &filename,
const QByteArray &source,
QByteArray *result)
+5
View File
@@ -181,6 +181,11 @@ namespace CPlusPlus {
public:
Preprocessor(Client *client, Environment &env);
QByteArray operator()(const QByteArray &filename,
const QByteArray &source);
QByteArray operator()(const QByteArray &source);
void operator()(const QByteArray &filename,
const QByteArray &source,
QByteArray *result);
+1 -1
View File
@@ -1,3 +1,3 @@
TEMPLATE = subdirs
SUBDIRS = shared ast semantic lookup
SUBDIRS = shared ast semantic lookup preprocessor
CONFIG += ordered
@@ -0,0 +1,9 @@
TEMPLATE = app
CONFIG += qt warn_on console depend_includepath
QT = core testlib
TARGET = tst_$$TARGET
DEFINES += CPLUSPLUS_WITH_NAMESPACE
include(../../../../src/libs/cplusplus/cplusplus-lib.pri)
SOURCES += tst_preprocessor.cpp
@@ -0,0 +1,28 @@
#include <QtTest>
#include <pp.h>
CPLUSPLUS_USE_NAMESPACE
class tst_Preprocessor: public QObject
{
Q_OBJECT
private Q_SLOTS:
void pp_with_no_client();
};
void tst_Preprocessor::pp_with_no_client()
{
using namespace CPlusPlus;
Client *client = 0; // no client.
Environment env;
Preprocessor preprocess(client, env);
QByteArray preprocessed = preprocess("#define foo(a,b) a + b\nfoo(1, 2)\n");
QByteArray expected = "1 + 2";
QCOMPARE(preprocessed.trimmed(), expected);
}
QTEST_APPLESS_MAIN(tst_Preprocessor)
#include "tst_preprocessor.moc"