Added highlight of calls within condition statements in loops

This commit is contained in:
Bartek Kryza
2022-12-12 22:55:24 +01:00
parent d7c13edbf9
commit 91a9aa861d
5 changed files with 168 additions and 70 deletions

View File

@@ -15,18 +15,31 @@ struct B {
int b2() const { return 4; }
};
struct C {
int c1() { return 1; }
int c2() { return 2; }
int c3() { return 3; }
int c4() { return c5(); }
int c5() { return 5; }
std::vector<int> &contents() { return contents_; }
std::vector<int> contents_;
};
int tmain()
{
A a;
std::vector<B> b;
C c;
int i = 10;
while (i--) {
while (i -= c.c4()) {
int j = a.a3();
do {
for (int l = a.a2(); l > 0; l--)
for (int l = a.a2(); l > c.c1(); l -= c.c2())
a.a1();
} while (j--);
} while (j -= c.c3());
}
int result = 0;
@@ -34,6 +47,10 @@ int tmain()
result += bi.b2();
}
for (const auto &ci : c.contents()) {
result += ci;
}
return b.front().b2() + result;
}
}

View File

@@ -36,12 +36,27 @@ TEST_CASE("t20021", "[test-case][sequence]")
// Check if all calls exist
REQUIRE_THAT(puml, HasCall(_A("tmain()"), _A("A"), "a1()"));
REQUIRE_THAT(puml, HasCall(_A("tmain()"), _A("A"), "a2()"));
REQUIRE_THAT(
puml, HasCallInControlCondition(_A("tmain()"), _A("A"), "a2()"));
REQUIRE_THAT(puml, HasCall(_A("tmain()"), _A("A"), "a3()"));
REQUIRE_THAT(puml, !HasCall(_A("tmain()"), _A("B"), "b1()"));
REQUIRE_THAT(puml, HasCall(_A("tmain()"), _A("B"), "b2()"));
REQUIRE_THAT(
puml, HasCallInControlCondition(_A("tmain()"), _A("C"), "c1()"));
REQUIRE_THAT(
puml, HasCallInControlCondition(_A("tmain()"), _A("C"), "c2()"));
// TODO: Why is this not working?
// REQUIRE_THAT(
// puml, HasCallInControlCondition(_A("tmain()"), _A("C"), "c3()"));
REQUIRE_THAT(
puml, HasCallInControlCondition(_A("tmain()"), _A("C"), "c4()"));
REQUIRE_THAT(puml, HasCall(_A("C"), _A("C"), "c5()"));
REQUIRE_THAT(
puml, HasCallInControlCondition(_A("tmain()"), _A("C"), "contents()"));
save_puml(
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
}