PchManager: Ensure that the build dependency collector is cleared

Change-Id: I7c09117673e34a88f4711a99d8e89406683246f2
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Marco Bubke
2019-01-21 17:37:16 +01:00
parent 093673e9cf
commit 36edaf9380
2 changed files with 35 additions and 1 deletions

View File

@@ -57,7 +57,11 @@ BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &pro
collect(); collect();
return std::move(m_buildDependency); auto buildDependency = std::move(m_buildDependency);
clear();
return buildDependency;
} }
void BuildDependencyCollector::collect() void BuildDependencyCollector::collect()

View File

@@ -667,4 +667,34 @@ TEST_F(BuildDependencyCollector, Create)
id(TESTDATA_DIR id(TESTDATA_DIR
"/builddependencycollector/system/indirect_system2.h")))))); "/builddependencycollector/system/indirect_system2.h"))))));
} }
TEST_F(BuildDependencyCollector, Clear)
{
using ClangBackEnd::IncludeSearchPathType;
ClangBackEnd::BuildDependencyCollector collector{filePathCache};
ClangBackEnd::ProjectPartContainer projectPart{
"project1",
{},
{},
{{TESTDATA_DIR "/builddependencycollector/system", 1, IncludeSearchPathType::System}},
{
{TESTDATA_DIR "/builddependencycollector/project", 1, IncludeSearchPathType::User},
{TESTDATA_DIR "/builddependencycollector/external", 2, IncludeSearchPathType::User},
},
{
id(TESTDATA_DIR "/builddependencycollector/project/header1.h"),
id(TESTDATA_DIR "/builddependencycollector/project/header2.h"),
id(TESTDATA_DIR "/builddependencycollector/project/missingfile.h"),
id(TESTDATA_DIR "/builddependencycollector/project/macros.h"),
},
{},
Utils::Language::Cxx,
Utils::LanguageVersion::CXX11,
Utils::LanguageExtension::None};
collector.create(projectPart);
auto buildDependency = collector.create(projectPart);
ASSERT_THAT(buildDependency.includes, IsEmpty());
}
} // namespace } // namespace