[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevelop/buildtools/managers/qmake/tests
From:       Andreas Pakulat <apaku () gmx ! de>
Date:       2007-03-15 20:07:03
Message-ID: 1173989223.161343.6622.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 642911 by apaku:

Add a new test to check wether lineending is parsed properly
Check the output of writeToString with the expected result to make sure the AST writes back properly


 M  +52 -6     parsetest.cpp  
 M  +2 -0      parsetest.h  


--- trunk/KDE/kdevelop/buildtools/managers/qmake/tests/parsetest.cpp #642910:642911
@@ -46,6 +46,7 @@
 #include "parsetest.h"
 #include "qmakedriver.h"
 #include "qmakeast.h"
+#include <QDebug>
 
 QTEST_MAIN( ParseTest )
 
@@ -59,17 +60,22 @@
 void ParseTest::successSimpleProject()
 {
     QFETCH( QString, project );
+    QFETCH( QString, output );
     QMake::ProjectAST* a = new QMake::ProjectAST();
     int ret = QMake::Driver::parseString( project, a );
+    QVERIFY( ret == 0 );
+    QString writeback;
+    a->writeToString( writeback );
+    QVERIFY( writeback == output );
     delete a;
-    QVERIFY( ret == 0 );
 }
 
 void ParseTest::successSimpleProject_data()
 {
     QTest::addColumn<QString>( "project" );
-    QTest::newRow( "row1" ) << "VAR = VALUE\n"
-        "func1(arg1)\n";
+    QTest::addColumn<QString>( "output" );
+    QTest::newRow( "row1" ) << "VAR = VALUE\nfunc1(arg1)\n"
+        << "VAR = VALUE\nfunc1(arg1)\n";
 }
 
 void ParseTest::failSimpleProject()
@@ -77,8 +83,8 @@
     QFETCH( QString, project );
     QMake::ProjectAST* a = new QMake::ProjectAST();
     int ret = QMake::Driver::parseString( project, a );
+    QVERIFY( ret != 0 );
     delete a;
-    QVERIFY( ret != 0 );
 }
 
 void ParseTest::failSimpleProject_data()
@@ -87,18 +93,45 @@
     QTest::newRow( "row1" ) << "VAR =";
 }
 
+void ParseTest::lineEnding()
+{
+    QFETCH( QString, project );
+    QFETCH( QString, output );
+    QMake::ProjectAST* a = new QMake::ProjectAST();
+    int ret = QMake::Driver::parseString( project, a );
+    QVERIFY( ret == 0 );
+    QString writeback;
+    a->writeToString( writeback );
+    QVERIFY( writeback == output );
+    QVERIFY( a->lineEnding() == QMake::ProjectAST::Windows );
+    delete a;
+}
+
+void ParseTest::lineEnding_data()
+{
+    QTest::addColumn<QString>( "project" );
+    QTest::addColumn<QString>( "output" );
+    QTest::newRow( "row1" ) << "VAR = VALUE\r\ncallfunc(FOOBAR)\r!exists(barfoo)\n"
+        << "VAR = VALUE\r\ncallfunc(FOOBAR)\r!exists(barfoo)\n";
+}
+
 void ParseTest::successFullProject()
 {
     QFETCH( QString, project );
+    QFETCH( QString, output );
     QMake::ProjectAST* a = new QMake::ProjectAST();
     int ret = QMake::Driver::parseString( project, a );
+    QVERIFY( ret == 0 );
+    QString writeback;
+    a->writeToString( writeback );
+    QVERIFY( writeback == output );
     delete a;
-    QVERIFY( ret == 0 );
 }
 
 void ParseTest::successFullProject_data()
 {
     QTest::addColumn<QString>( "project" );
+    QTest::addColumn<QString>( "output" );
     QTest::newRow( "row1" ) << "#Comment\n"
         "VARIABLE1 = Value1 Value2\n"
         "VARIABLE2= Value1 Value2\n"
@@ -111,6 +144,19 @@
         "message( foo, bar, $$foobar( foo, $$FOOBAR ), $${FOOBAR}, $(SHELL) ) {  \n"
         "FOO = bar\n"
         "}\n"
+        "!do()\n"
+        << "#Comment\n"
+        "VARIABLE1 = Value1 Value2\n"
+        "VARIABLE2= Value1 Value2\n"
+        "VARIABLE3 =Value1 Value2\n"
+        "VARIABLE4=Value1 Value2\n"
+        "VARIABLE = Value1 Value2 #some comment\n"
+        "VARIABLE = $$Value1 $(Value2) $${Value3} #some comment\n"
+        "VARIABLE = $$Value1 $(Value2) $${Value3} \\\nValue4\n"
+        "message( foo, bar, $$foobar( foo, $$FOOBAR ), $${FOOBAR}, $(SHELL) ) : FO=0\n"
+        "message( foo, bar, $$foobar( foo, $$FOOBAR ), $${FOOBAR}, $(SHELL) ) {  \n"
+        "FOO = bar\n"
+        "}\n"
         "!do()\n";
 }
 
@@ -119,8 +165,8 @@
     QFETCH( QString, project );
     QMake::ProjectAST* a = new QMake::ProjectAST();
     int ret = QMake::Driver::parseString( project, a );
+    QVERIFY( ret != 0);
     delete a;
-    QVERIFY( ret != 0);
 }
 
 void ParseTest::failFullProject_data()
--- trunk/KDE/kdevelop/buildtools/managers/qmake/tests/parsetest.h #642910:642911
@@ -39,6 +39,8 @@
         void successFullProject_data();
         void failFullProject();
         void failFullProject_data();
+        void lineEnding();
+        void lineEnding_data();
 };
 
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic