From b8fe94f78b7778b112ca92c7f943b21ce8d7e6b6 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 14 Feb 2021 23:22:47 +0100 Subject: [PATCH] Preparations for unit tests --- cpputils.pri | 1 + cpputils_src.pri | 13 +++++++++++++ test/cpputilstestutils.cpp | 9 +++++++++ test/cpputilstestutils.h | 28 ++++++++++++++++++++++++++++ test/cpputilstestutils.pri | 1 + test/cpputilstestutils_src.pri | 5 +++++ 6 files changed, 57 insertions(+) create mode 100644 cpputils.pri create mode 100644 cpputils_src.pri create mode 100644 test/cpputilstestutils.cpp create mode 100644 test/cpputilstestutils.h create mode 100644 test/cpputilstestutils.pri create mode 100644 test/cpputilstestutils_src.pri diff --git a/cpputils.pri b/cpputils.pri new file mode 100644 index 0000000..6916033 --- /dev/null +++ b/cpputils.pri @@ -0,0 +1 @@ +INCLUDEPATH += $$PWD/src diff --git a/cpputils_src.pri b/cpputils_src.pri new file mode 100644 index 0000000..60be559 --- /dev/null +++ b/cpputils_src.pri @@ -0,0 +1,13 @@ +HEADERS += \ + $$PWD/src/cleanuphelper.h \ + $$PWD/src/cppflags.h \ + $$PWD/src/cppmacros.h \ + $$PWD/src/cppoverloadutils.h \ + $$PWD/src/cppsignal.h \ + $$PWD/src/cpptypesafeenum.h \ + $$PWD/src/cpputils.h \ + $$PWD/src/delayedconstruction.h \ + $$PWD/src/strutils.h + +SOURCES += \ + $$PWD/src/strutils.cpp diff --git a/test/cpputilstestutils.cpp b/test/cpputilstestutils.cpp new file mode 100644 index 0000000..586228f --- /dev/null +++ b/test/cpputilstestutils.cpp @@ -0,0 +1,9 @@ +#include "cpputilstestutils.h" + +namespace QTest { +template<> +char *toString(const std::string &str) +{ + return ::QTest::toString(QString::fromStdString(str)); +} +} // namespace QTest diff --git a/test/cpputilstestutils.h b/test/cpputilstestutils.h new file mode 100644 index 0000000..2a4299d --- /dev/null +++ b/test/cpputilstestutils.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +Q_DECLARE_METATYPE(std::string) + +// only needed if there is a nameclash between std::string *::toString(const T &) and template char *QTest::toString(const T &) +#define FIXEDCOMPARE(actual, expected) \ +do {\ + if (!fixedCompare(actual, expected, #actual, #expected, __FILE__, __LINE__))\ + return;\ +} while (false) + +namespace { +template +inline bool fixedCompare(T1 const &t1, T2 const &t2, const char *actual, const char *expected, + const char *file, int line) +{ + return QTest::compare_helper(t1 == t2, "Compared values are not the same", + ::QTest::toString(t1), ::QTest::toString(t2), actual, expected, file, line); +} +} + +namespace QTest { +template<> +char *toString(const std::string &str); +} // namespace QTest diff --git a/test/cpputilstestutils.pri b/test/cpputilstestutils.pri new file mode 100644 index 0000000..aba082d --- /dev/null +++ b/test/cpputilstestutils.pri @@ -0,0 +1 @@ +INCLUDEPATH += $$PWD diff --git a/test/cpputilstestutils_src.pri b/test/cpputilstestutils_src.pri new file mode 100644 index 0000000..cbaefe1 --- /dev/null +++ b/test/cpputilstestutils_src.pri @@ -0,0 +1,5 @@ +HEADERS += \ + $$PWD/cpputilstestutils.h + +SOURCES += \ + $$PWD/cpputilstestutils.cpp