Add some more filter tests (#4897)

This changes the `make coverage` function to use `gcovr` instead of `lcov`, and to have it generate an html file directly at `coverage/index.html` under the build directory

The only thing this changes, other than adding tests, is making the `Expression` class pure virtual. Every derived class should implement each of the functions
This commit is contained in:
pajlada
2023-10-14 10:41:10 +02:00
committed by GitHub
parent ccaedc3987
commit ab3b2d8515
4 changed files with 94 additions and 28 deletions
+4 -4
View File
@@ -679,15 +679,15 @@ endif()
if (CHATTERINO_GENERATE_COVERAGE)
include(CodeCoverage)
append_coverage_compiler_flags_to_target(${LIBRARY_PROJECT})
target_link_libraries(${LIBRARY_PROJECT} PUBLIC gcov)
message(STATUS "project source dir: ${PROJECT_SOURCE_DIR}/src")
setup_target_for_coverage_lcov(
setup_target_for_coverage_gcovr_html(
NAME coverage
EXECUTABLE ./bin/chatterino-test
BASE_DIRECTORY ${PROJECT_SOURCE_DIR}/src
EXECUTABLE ctest
EXCLUDE "/usr/include/*"
EXCLUDE "build-*/*"
EXCLUDE "lib/*"
EXCLUDE "*/ui_*.h"
EXCLUDE "*/moc_*.cpp"
)
endif ()
@@ -2,24 +2,4 @@
namespace chatterino::filters {
QVariant Expression::execute(const ContextMap & /*context*/) const
{
return false;
}
PossibleType Expression::synthesizeType(const TypingContext & /*context*/) const
{
return IllTyped{this, "Not implemented"};
}
QString Expression::debug(const TypingContext & /*context*/) const
{
return "";
}
QString Expression::filterString() const
{
return "";
}
} // namespace chatterino::filters
@@ -16,10 +16,10 @@ class Expression
public:
virtual ~Expression() = default;
virtual QVariant execute(const ContextMap &context) const;
virtual PossibleType synthesizeType(const TypingContext &context) const;
virtual QString debug(const TypingContext &context) const;
virtual QString filterString() const;
virtual QVariant execute(const ContextMap &context) const = 0;
virtual PossibleType synthesizeType(const TypingContext &context) const = 0;
virtual QString debug(const TypingContext &context) const = 0;
virtual QString filterString() const = 0;
};
using ExpressionPtr = std::unique_ptr<Expression>;