Test module type support
[reactos.git] / reactos / tools / rbuild / tests / moduletest.cpp
1 #include "test.h"
2
3 using std::string;
4
5 void ModuleTest::Run()
6 {
7 string projectFilename ( RBUILD_BASE "tests/data/module.xml" );
8 Project project ( projectFilename );
9 ARE_EQUAL(2, project.modules.size());
10
11 Module& module1 = *project.modules[0];
12 IS_TRUE(module1.type == BuildTool);
13 ARE_EQUAL(2, module1.non_if_data.files.size());
14 ARE_EQUAL("dir1" SSEP "file1.c", module1.non_if_data.files[0]->name);
15 ARE_EQUAL("dir1" SSEP "file2.c", module1.non_if_data.files[1]->name);
16
17 ARE_EQUAL(0, module1.non_if_data.libraries.size());
18
19 Module& module2 = *project.modules[1];
20 IS_TRUE(module2.type == KernelModeDLL);
21 ARE_EQUAL(2, module2.non_if_data.files.size());
22 ARE_EQUAL("dir2" SSEP "file3.c", module2.non_if_data.files[0]->name);
23 ARE_EQUAL("dir2" SSEP "file4.c", module2.non_if_data.files[1]->name);
24
25 ARE_EQUAL(1, module2.non_if_data.libraries.size());
26 Library& library1 = *module2.non_if_data.libraries[0];
27 ARE_EQUAL("module1", library1.name);
28
29 ARE_EQUAL(1, module2.dependencies.size());
30 Dependency& module1dependency = *module2.dependencies[0];
31 IS_NOT_NULL(module1dependency.dependencyModule);
32 ARE_EQUAL("module1", module1dependency.dependencyModule->name);
33 }