forked from qt-creator/qt-creator
Clang: Support second translation unit
A TranslationUnit is owned by TranslationUnits now. TranslationUnits allows to add another TranslationUnit and to update/query the recently and previously parsed translation unit. This does not change any behavior yet. Change-Id: I8a2f0cc05d3e51bf739dd5d7c4da14b54147f3ab Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -33,6 +33,7 @@ using ClangBackEnd::TranslationUnitUpdater;
|
||||
using ClangBackEnd::TranslationUnitUpdateInput;
|
||||
using ClangBackEnd::TranslationUnitUpdateResult;
|
||||
|
||||
using testing::Eq;
|
||||
using testing::Gt;
|
||||
|
||||
namespace {
|
||||
@@ -42,7 +43,8 @@ class TranslationUnitUpdater : public ::testing::Test
|
||||
protected:
|
||||
void TearDown() override;
|
||||
|
||||
::TranslationUnitUpdater createUpdater(const TranslationUnitUpdateInput &input);
|
||||
::TranslationUnitUpdater createUpdater(const TranslationUnitUpdateInput &input,
|
||||
const Utf8String &translationUnitId = Utf8String());
|
||||
|
||||
enum ReparseMode { SetReparseNeeded, DoNotSetReparseNeeded };
|
||||
TranslationUnitUpdateInput createInput(ReparseMode reparseMode = DoNotSetReparseNeeded);
|
||||
@@ -73,6 +75,16 @@ TEST_F(TranslationUnitUpdater, ReparsesIfNeeded)
|
||||
ASSERT_TRUE(result.hasReparsed());
|
||||
}
|
||||
|
||||
TEST_F(TranslationUnitUpdater, PropagatesTranslationUnitId)
|
||||
{
|
||||
const Utf8String translationUnitId = Utf8StringLiteral("myId");
|
||||
::TranslationUnitUpdater updater = createUpdater(createInput(SetReparseNeeded), translationUnitId);
|
||||
|
||||
TranslationUnitUpdateResult result = updater.update(::TranslationUnitUpdater::UpdateMode::AsNeeded);
|
||||
|
||||
ASSERT_THAT(result.translationUnitId, Eq(translationUnitId));
|
||||
}
|
||||
|
||||
TEST_F(TranslationUnitUpdater, UpdatesParseTimePoint)
|
||||
{
|
||||
::TranslationUnitUpdater updater = createUpdater(createInput());
|
||||
@@ -111,9 +123,10 @@ void TranslationUnitUpdater::TearDown()
|
||||
}
|
||||
|
||||
::TranslationUnitUpdater
|
||||
TranslationUnitUpdater::createUpdater(const TranslationUnitUpdateInput &input)
|
||||
TranslationUnitUpdater::createUpdater(const TranslationUnitUpdateInput &input,
|
||||
const Utf8String &translationUnitId)
|
||||
{
|
||||
return ::TranslationUnitUpdater(cxIndex, cxTranslationUnit, input);
|
||||
return ::TranslationUnitUpdater(translationUnitId, cxIndex, cxTranslationUnit, input);
|
||||
}
|
||||
|
||||
TranslationUnitUpdateInput
|
||||
|
||||
Reference in New Issue
Block a user