2022-08-19 15:59:36 +02:00
|
|
|
// Copyright (C) 2016 The Qt Company Ltd.
|
2022-12-21 10:12:09 +01:00
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
2016-11-15 15:38:12 +01:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "googletest.h"
|
|
|
|
|
|
|
|
|
|
using testing::PrintToString;
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
|
|
MATCHER_P5(HasDiagnosticMessage, errorTypeText, startLine, startColumn, endLine, endColumn,
|
|
|
|
|
std::string(negation ? "isn't " : "is ")
|
|
|
|
|
+ "{" + PrintToString(errorTypeText)
|
|
|
|
|
+ ": (" + PrintToString(startLine)
|
|
|
|
|
+ ", " + PrintToString(startColumn)
|
|
|
|
|
+ "), (" + PrintToString(endLine)
|
|
|
|
|
+ ", " + PrintToString(endColumn)
|
|
|
|
|
+ ")}"
|
|
|
|
|
)
|
|
|
|
|
{
|
2018-04-08 01:20:42 +03:00
|
|
|
if (!arg.empty() && arg.front().messages.empty()) {
|
2016-11-15 15:38:12 +01:00
|
|
|
*result_listener << "no messages";
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-08 01:20:42 +03:00
|
|
|
auto message = arg.front().messages.front();
|
|
|
|
|
auto sourceRange = message.sourceRange;
|
2016-11-15 15:38:12 +01:00
|
|
|
|
|
|
|
|
return message.errorTypeText() == errorTypeText
|
2018-04-08 01:20:42 +03:00
|
|
|
&& sourceRange.start.line == uint(startLine)
|
|
|
|
|
&& sourceRange.start.column == uint(startColumn)
|
|
|
|
|
&& sourceRange.end.line == uint(endLine)
|
|
|
|
|
&& sourceRange.end.column == uint(endColumn);
|
2016-11-15 15:38:12 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MATCHER_P5(HasDiagnosticContext, contextTypeText, startLine, startColumn, endLine, endColumn,
|
|
|
|
|
std::string(negation ? "isn't " : "is ")
|
|
|
|
|
+ "{" + PrintToString(contextTypeText)
|
|
|
|
|
+ ": (" + PrintToString(startLine)
|
|
|
|
|
+ ", " + PrintToString(startColumn)
|
|
|
|
|
+ "), (" + PrintToString(endLine)
|
|
|
|
|
+ ", " + PrintToString(endColumn)
|
|
|
|
|
+ ")}"
|
|
|
|
|
)
|
|
|
|
|
{
|
2018-04-08 01:20:42 +03:00
|
|
|
if (!arg.empty() && arg.front().messages.empty()) {
|
2016-11-15 15:38:12 +01:00
|
|
|
*result_listener << "no context";
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-08 01:20:42 +03:00
|
|
|
auto context = arg.front().contexts.front();
|
|
|
|
|
auto sourceRange = context.sourceRange;
|
2016-11-15 15:38:12 +01:00
|
|
|
|
|
|
|
|
return context.contextTypeText() == contextTypeText
|
2018-04-08 01:20:42 +03:00
|
|
|
&& sourceRange.start.line == uint(startLine)
|
|
|
|
|
&& sourceRange.start.column == uint(startColumn)
|
|
|
|
|
&& sourceRange.end.line == uint(endLine)
|
|
|
|
|
&& sourceRange.end.column == uint(endColumn);
|
2016-11-15 15:38:12 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|