diff --git a/tests/t40003/.clang-uml b/tests/t40003/.clang-uml new file mode 100644 index 00000000..f3c8de66 --- /dev/null +++ b/tests/t40003/.clang-uml @@ -0,0 +1,21 @@ +compilation_database_dir: .. +output_directory: puml +diagrams: + t40003_include: + type: include + # Provide the files to parse in order to look + # for #include directives + glob: + - ../../tests/t40003/**/*.cc + - ../../tests/t40003/**/*.h + # Render the paths relative to this directory + relative_to: ../../tests/t40003 + include: + # Include only files belonging to these paths + dependants: + - ../../tests/t40003/include/dependants/t1.h + dependencies: + - ../../tests/t40003/src/dependencies/t2.cc + plantuml: + before: + - "' t40003 test include diagram" \ No newline at end of file diff --git a/tests/t40003/include/dependants/t1.h b/tests/t40003/include/dependants/t1.h new file mode 100644 index 00000000..90b87ca7 --- /dev/null +++ b/tests/t40003/include/dependants/t1.h @@ -0,0 +1,5 @@ +#pragma once + +namespace clanguml::t40003::dependants { +void t1() {} +} \ No newline at end of file diff --git a/tests/t40003/include/dependants/t2.h b/tests/t40003/include/dependants/t2.h new file mode 100644 index 00000000..4885e63a --- /dev/null +++ b/tests/t40003/include/dependants/t2.h @@ -0,0 +1,7 @@ +#pragma once + +#include "t1.h" + +namespace clanguml::t40003::dependants { +void t2() { t1(); } +} \ No newline at end of file diff --git a/tests/t40003/include/dependants/t3.h b/tests/t40003/include/dependants/t3.h new file mode 100644 index 00000000..69ed45ab --- /dev/null +++ b/tests/t40003/include/dependants/t3.h @@ -0,0 +1,7 @@ +#pragma once + +#include "t2.h" + +namespace clanguml::t40003::dependants { +void t3() { t2(); } +} \ No newline at end of file diff --git a/tests/t40003/include/dependants/t4.h b/tests/t40003/include/dependants/t4.h new file mode 100644 index 00000000..4f73137a --- /dev/null +++ b/tests/t40003/include/dependants/t4.h @@ -0,0 +1,5 @@ +#pragma once + +namespace clanguml::t40003::dependants { +void t4() { } +} \ No newline at end of file diff --git a/tests/t40003/include/dependencies/t1.h b/tests/t40003/include/dependencies/t1.h new file mode 100644 index 00000000..6485c4d4 --- /dev/null +++ b/tests/t40003/include/dependencies/t1.h @@ -0,0 +1,5 @@ +#pragma once + +namespace clanguml::t40003::dependencies { +void t1() {} +} \ No newline at end of file diff --git a/tests/t40003/include/dependencies/t2.h b/tests/t40003/include/dependencies/t2.h new file mode 100644 index 00000000..c887e1e8 --- /dev/null +++ b/tests/t40003/include/dependencies/t2.h @@ -0,0 +1,7 @@ +#pragma once + +#include "t1.h" + +namespace clanguml::t40003::dependencies { +void t2() {t1();} +} \ No newline at end of file diff --git a/tests/t40003/include/dependencies/t3.h b/tests/t40003/include/dependencies/t3.h new file mode 100644 index 00000000..327a0b56 --- /dev/null +++ b/tests/t40003/include/dependencies/t3.h @@ -0,0 +1,7 @@ +#pragma once + +#include "t2.h" + +namespace clanguml::t40003::dependencies { +void t3() {t2();} +} \ No newline at end of file diff --git a/tests/t40003/include/dependencies/t5.h b/tests/t40003/include/dependencies/t5.h new file mode 100644 index 00000000..599aeabe --- /dev/null +++ b/tests/t40003/include/dependencies/t5.h @@ -0,0 +1,5 @@ +#pragma once + +namespace clanguml::t40003::dependencies { +void t5() { } +} \ No newline at end of file diff --git a/tests/t40003/src/dependants/t1.cc b/tests/t40003/src/dependants/t1.cc new file mode 100644 index 00000000..5755bdb3 --- /dev/null +++ b/tests/t40003/src/dependants/t1.cc @@ -0,0 +1,10 @@ +#include "../../include/dependants/t3.h" +#include "../../include/dependants/t4.h" + +namespace clanguml::t40003::dependants { +void t() +{ + t3(); + t4(); +} +} \ No newline at end of file diff --git a/tests/t40003/src/dependencies/t2.cc b/tests/t40003/src/dependencies/t2.cc new file mode 100644 index 00000000..24db7644 --- /dev/null +++ b/tests/t40003/src/dependencies/t2.cc @@ -0,0 +1,10 @@ +#include "../../include/dependencies/t3.h" +#include "../../include/dependencies/t5.h" + +namespace clanguml::t40003::dependencies { +void t() +{ + t3(); + t5(); +} +} \ No newline at end of file diff --git a/tests/t40003/test_case.h b/tests/t40003/test_case.h new file mode 100644 index 00000000..db337b60 --- /dev/null +++ b/tests/t40003/test_case.h @@ -0,0 +1,48 @@ +/** +* tests/t40003/test_case.cc +* +* Copyright (c) 2021-2022 Bartek Kryza +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +TEST_CASE("t40003", "[test-case][package]") +{ + auto [config, db] = load_config("t40003"); + + auto diagram = config.diagrams["t40003_include"]; + + REQUIRE(diagram->name == "t40003_include"); + + auto model = generate_include_diagram(db, diagram); + + REQUIRE(model->name() == "t40003_include"); + + auto puml = generate_include_puml(diagram, *model); + + AliasMatcher _A(puml); + + REQUIRE_THAT(puml, StartsWith("@startuml")); + REQUIRE_THAT(puml, EndsWith("@enduml\n")); + + REQUIRE_THAT(puml, IsFolder("dependants")); + REQUIRE_THAT(puml, IsFolder("dependencies")); + + REQUIRE_THAT(puml, !IsFile("t4.h")); + REQUIRE_THAT(puml, !IsFile("t5.h")); + + + + save_puml( + "./" + config.output_directory() + "/" + diagram->name + ".puml", puml); +} diff --git a/tests/test_cases.cc b/tests/test_cases.cc index 46ce797b..7e78b34f 100644 --- a/tests/test_cases.cc +++ b/tests/test_cases.cc @@ -249,6 +249,7 @@ using namespace clanguml::test::matchers; // #include "t40001/test_case.h" #include "t40002/test_case.h" +#include "t40003/test_case.h" // // Other tests (e.g. configuration file)