Add project and module tests.
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/makefile
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/test.h
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp
Added: branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/module.xml
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/project.xml
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/moduletest.cpp
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/projecttest.cpp
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/makefile
--- branches/xmlbuildsystem/reactos/tools/rbuild/makefile
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/makefile
2005-01-04 21:29:09 UTC (rev 12801)
@@ -13,7 +13,9 @@
OBJECTS = $(BASE_OBJECTS) rbuild.o
-TESTS = tests/moduletest.o
+TESTS = \
+ tests/moduletest.o \
+ tests/projecttest.o
TEST_OBJECTS = $(BASE_OBJECTS) $(TESTS) tests/alltests.o
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.cpp
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.cpp
2005-01-04 21:29:09 UTC (rev 12801)
@@ -58,7 +58,8 @@
}
catch (Exception& ex)
{
- printf ( ex.Message.c_str() );
+ printf ( "%s\n",
+ ex.Message.c_str() );
return 1;
}
}
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/test.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/test.h 2005-01-04
21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/test.h 2005-01-04
21:29:09 UTC (rev 12801)
@@ -14,18 +14,26 @@
void Assert(const char *message, ...);
void IsTrue(bool condition,
const char* file,
- int line );
+ int line);
void IsFalse(bool condition,
const char* file,
- int line );
+ int line);
void AreEqual(int expected,
int actual,
const char* file,
- int line );
+ int line);
+ void AreEqual(string expected,
+ string actual,
+ const char* file,
+ int line);
+ void AreEqual(const char* expected,
+ string actual,
+ const char* file,
+ int line);
void AreNotEqual(int expected,
int actual,
const char* file,
- int line );
+ int line);
private:
void Fail();
};
@@ -35,6 +43,13 @@
#define ARE_EQUAL(expected,actual)
AreEqual(expected,actual,__FILE__,__LINE__)
#define ARE_NOT_EQUAL(expected,actual)
AreNotEqual(expected,actual,__FILE__,__LINE__)
+class ProjectTest : public BaseTest
+{
+public:
+ void Run();
+};
+
+
class ModuleTest : public BaseTest
{
public:
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp
2005-01-04 21:29:09 UTC (rev 12801)
@@ -4,7 +4,7 @@
BaseTest::BaseTest()
{
- Failed = true;
+ Failed = false;
}
BaseTest::~BaseTest()
@@ -61,6 +61,32 @@
}
}
+void BaseTest::AreEqual(string expected,
+ string actual,
+ const char* file,
+ int line)
+{
+ if (actual != expected)
+ {
+ Assert("Expected '%s' was '%s' at %s:%d\n",
+ expected.c_str(),
+ actual.c_str(),
+ file,
+ line);
+ }
+}
+
+void BaseTest::AreEqual(const char* expected,
+ string actual,
+ const char* file,
+ int line)
+{
+ AreEqual(string(expected),
+ actual,
+ file,
+ line);
+}
+
void BaseTest::AreNotEqual(int expected,
int actual,
const char* file,
@@ -103,10 +129,19 @@
GetTests(tests);
for (size_t i = 0; i < tests.size(); i++)
{
- BaseTest& test = *tests[i];
- test.Run();
- if (test.Failed)
+ try
+ {
+ BaseTest& test = *tests[i];
+ test.Run();
+ if (test.Failed)
+ numberOfFailedTests++;
+ }
+ catch (Exception& ex)
+ {
+ printf("%s\n",
+ ex.Message.c_str());
numberOfFailedTests++;
+ }
}
if (numberOfFailedTests > 0)
@@ -119,6 +154,7 @@
private:
void GetTests ( BaseTestList& tests )
{
+ tests.push_back(new ProjectTest());
tests.push_back(new ModuleTest());
}
};
_____
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/module.xml
--- branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/module.xml
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/module.xml
2005-01-04 21:29:09 UTC (rev 12801)
@@ -0,0 +1,14 @@
+<project name="Project">
+ <directory name="dir1">
+ <module name="module1" type="buildtool">
+ <file>file1.c</file>
+ <file>file2.c</file>
+ </module>
+ </directory>
+ <directory name="dir2">
+ <module name="module2" type="buildtool">
+ <file>file3.c</file>
+ <file>file4.c</file>
+ </module>
+ </directory>
+</project>
_____
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/project.xml
--- branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/project.xml
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/project.xml
2005-01-04 21:29:09 UTC (rev 12801)
@@ -0,0 +1,10 @@
+<project name="Project">
+ <directory name="dir1">
+ <module name="module1" type="buildtool">
+ </module>
+ </directory>
+ <directory name="dir2">
+ <module name="module2" type="buildtool">
+ </module>
+ </directory>
+</project>
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/moduletest.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/tests/moduletest.cpp
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/moduletest.cpp
2005-01-04 21:29:09 UTC (rev 12801)
@@ -2,5 +2,17 @@
void ModuleTest::Run()
{
- IS_TRUE(false);
+ string projectFilename ( "tests/data/module.xml" );
+ Project* project = new Project( projectFilename );
+ ARE_EQUAL(2, project->modules.size());
+
+ Module& module1 = *project->modules[0];
+ ARE_EQUAL(2, module1.files.size());
+ ARE_EQUAL("./dir1/file1.c", module1.files[0]->name);
+ ARE_EQUAL("./dir1/file2.c", module1.files[1]->name);
+
+ Module& module2 = *project->modules[1];
+ ARE_EQUAL(2, module2.files.size());
+ ARE_EQUAL("./dir2/file3.c", module2.files[0]->name);
+ ARE_EQUAL("./dir2/file4.c", module2.files[1]->name);
}
_____
Added:
branches/xmlbuildsystem/reactos/tools/rbuild/tests/projecttest.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/tests/projecttest.cpp
2005-01-04 21:25:20 UTC (rev 12800)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/projecttest.cpp
2005-01-04 21:29:09 UTC (rev 12801)
@@ -0,0 +1,8 @@
+#include "test.h"
+
+void ProjectTest::Run()
+{
+ string projectFilename ( "tests/data/project.xml" );
+ Project* project = new Project( projectFilename );
+ ARE_EQUAL(2, project->modules.size());
+}