Autogen: Add test for Q_OS_ macros

This commit is contained in:
Sebastian Holtermann
2018-07-22 19:02:39 +02:00
parent f345135845
commit 7bb70054e4
5 changed files with 180 additions and 0 deletions

View File

@@ -23,6 +23,9 @@ endif()
if(QT_TEST_ALLOW_QT_MACROS)
ADD_AUTOGEN_TEST(MocCMP0071)
endif()
if(NOT QT_TEST_VERSION STREQUAL 4)
ADD_AUTOGEN_TEST(MocOsMacros mocOsMacros)
endif()
ADD_AUTOGEN_TEST(UicInclude uicInclude)
ADD_AUTOGEN_TEST(UicInterface QtAutoUicInterface)
ADD_AUTOGEN_TEST(ObjectLibrary someProgram)

View File

@@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.11)
project(MocOsMacros)
include("../AutogenTest.cmake")
# Tests if moc processes the macro Q_OS_MAC
set(CMAKE_AUTOMOC True)
add_executable(mocOsMacros
main.cpp
TestClass.cpp
TestClass.hpp
)
target_link_libraries(mocOsMacros PRIVATE ${QT_QTCORE_TARGET})
message ( "CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES: ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}" )

View File

@@ -0,0 +1,77 @@
#include "TestClass.hpp"
#include <iostream>
// -- Mac
#ifndef Q_OS_MAC
void TestClass::MacNotDef()
{
std::cout << "MacNotDef\n";
}
#else
void TestClass::MacNotDefElse()
{
std::cout << "MacNotDefElse\n";
}
#endif
#ifdef Q_OS_MAC
void TestClass::MacDef()
{
std::cout << "MacDef\n";
}
#else
void TestClass::MacDefElse()
{
std::cout << "MacDefElse\n";
}
#endif
// -- Unix
#ifndef Q_OS_UNIX
void TestClass::UnixNotDef()
{
std::cout << "UnixNotDef\n";
}
#else
void TestClass::UnixNotDefElse()
{
std::cout << "UnixNotDefElse\n";
}
#endif
#ifdef Q_OS_UNIX
void TestClass::UnixDef()
{
std::cout << "UnixDef\n";
}
#else
void TestClass::UnixDefElse()
{
std::cout << "UnixDefElse\n";
}
#endif
// -- Windows
#ifndef Q_OS_WIN
void TestClass::WindowsNotDef()
{
std::cout << "WindowsNotDef\n";
}
#else
void TestClass::WindowsNotDefElse()
{
std::cout << "WindowsNotDefElse\n";
}
#endif
#ifdef Q_OS_WIN
void TestClass::WindowsDef()
{
std::cout << "WindowsDef\n";
}
#else
void TestClass::WindowsDefElse()
{
std::cout << "WindowsDefElse\n";
}
#endif

View File

@@ -0,0 +1,52 @@
#ifndef TestClass_hpp
#define TestClass_hpp
#include <QObject>
#include <QtGlobal>
class TestClass : public QObject
{
Q_OBJECT
public Q_SLOTS:
// -- Mac
#ifndef Q_OS_MAC
void MacNotDef();
#else
void MacNotDefElse();
#endif
#ifdef Q_OS_MAC
void MacDef();
#else
void MacDefElse();
#endif
// -- Unix
#ifndef Q_OS_UNIX
void UnixNotDef();
#else
void UnixNotDefElse();
#endif
#ifdef Q_OS_UNIX
void UnixDef();
#else
void UnixDefElse();
#endif
// -- Windows
#ifndef Q_OS_WIN
void WindowsNotDef();
#else
void WindowsNotDefElse();
#endif
#ifdef Q_OS_WIN
void WindowsDef();
#else
void WindowsDefElse();
#endif
};
#endif /* TestClass_hpp */

View File

@@ -0,0 +1,32 @@
#include "TestClass.hpp"
#include <QtGlobal>
int main()
{
TestClass a;
#ifdef Q_OS_MAC
a.MacNotDefElse();
a.MacDef();
#else
a.MacNotDef();
a.MacDefElse();
#endif
#ifdef Q_OS_UNIX
a.UnixNotDefElse();
a.UnixDef();
#else
a.UnixNotDef();
a.UnixDefElse();
#endif
#ifdef Q_OS_WIN
a.WindowsNotDefElse();
a.WindowsDef();
#else
a.WindowsNotDef();
a.WindowsDefElse();
#endif
return 0;
}